SDK v2 Migration Guide
Gateway SDK v2 is the organization/location rename release.
What changed
LocationsApiis now the primary surface for location records.OrganizationsApiowns organization-scoped resources and credential-profile lifecycle.MerchantsApiremains available as a deprecated compatibility alias.- New code should prefer
organizationIdandlocationIdterminology in app-level models and routes.
Kotlin migration
Replace:
GatewayAdminClient.merchants
With:
GatewayAdminClient.locationsGatewayAdminClient.organizations
Notes:
MerchantsApistill delegates toLocationsApi.- Existing wire-level
merchantIdvalues still identify the concrete location row.
TypeScript migration
Replace:
client.merchants
With:
client.locationsclient.organizations
Notes:
- Compatibility aliases remain available for the current cutover window.
- New org-scoped features should land on
OrganizationsApiorLocationsApi, not onMerchantsApi.
Explicit compatibility promises
Safe statements:
MerchantsApistill delegates to the location-backed runtime path- existing
merchantIdfields still carry the concrete location identifier on the wire - new app state should prefer
organizationIdandlocationIdnaming
Unsafe statements:
- that
MerchantsApiis still the preferred surface for greenfield features - that every wire field has already been renamed away from
merchantId - that downstream apps should keep introducing new
merchant*state just because the compatibility alias still exists
Closeout checklist
- SDK examples prefer
locations/organizationsovermerchants - docs explain where legacy
merchantIdvalues still remain on the wire - compatibility aliases are described as transitional, not normative
Conceptual model
See Organizations and Locations for the access-control and inheritance model behind the rename.
Source-of-truth draft
The longer-form migration draft also lives in-repo at: