1
Collect the street address of every location
A full street address is what makes location-first resolution work. A ZIP code alone still registers, but at low confidence and flagged for review. Include
time_zone for terminals in a part of a state that is not in the state’s primary zone, and mobile: true for terminals that move.2
Call the register endpoint with the partner key
address may be a single string or an object with street, city, state and zip. external_id and each location_id are your identifiers; use them on every transaction afterward.3
Store the merchant key and read each location's resolution
The response contains the merchant key once. Store it; it cannot be retrieved later.Three things to read on each location:
governing_today (what applies to a retail sale right now), pending_rules (what is coming for that state, with countdowns), and resolution.needs_review (whether a human should confirm the address).4
Resolve anything flagged for review
A
zip_mismatch note usually means the merchant’s mailing ZIP differs from the ZIP of the street segment; confirm the address and move on. A zip_fallback or unresolved method means the geocoder could not match the street; correct the address with PATCH /api/v1/partner/merchants/{merchantId}/locations/{locationId} and the location is re-resolved. See Locations and review.Bulk registration
POST /api/v1/partner/merchants/bulk-register accepts up to 500 merchants in one request and returns the registered and failed sets separately. A failure for one merchant does not stop the others.
Admin on behalf of a partner
An admin key can call any/api/v1/partner/* endpoint for a given partner by passing ?partner_id=… or the x-partner-id header.

