Retrieve a location
Returns one location - the complete picture in a single call. Scope: locations:read.
- Identity & place -
name,address,coordinates(the pin),country - Geo notification -
geo_message+geo_message_enabled(fires within ~100 m; radius fixed by the wallet platforms) - Cards here -
cards[]: every enabled card with its stable per-locationsignup_url(render your own QR; signups stampCustomer.signup_location_id) - Team -
team_members[]read-only summary (write path:PATCH /v1/team_members/{id}) - POS -
pos_connectedflag; the mapping itself is dashboard-managed and never editable via API
There are no sub-endpoints to assemble - this object is the whole location.
Authorizations
Your secret API key as a Bearer token: Authorization: Bearer vxn_sk_.... Keys are created and scoped in the dashboard - see Authentication.
Path Parameters
Location identifier (loc_ prefix).
^loc_[A-Za-z0-9]+$Response
Location.
A physical store - the unit of POS bridging, team assignment, geo notifications, and per-location card availability. Locations are created and deleted in the dashboard only (each is a billing unit); the API reads and edits them.
Location identifier, loc_ prefix.
^loc_[A-Za-z0-9]+$"loc_01HW9R4P2ZK7N8MTX1RVLOCS01"
Always "location".
"location"Display name shown in the dashboard, scanner, and transaction attribution.
1 - 60"Demo Coffee - City Center"
Human-readable street address, one line. Writable - see PATCH for the address ↔ coordinates interplay (sending a new address alone re-geocodes the pin server-side).
"Hlavná 12, 811 01 Bratislava, Slovakia"
The pin - drives the wallet-pass geofence and map display. Kept in sync with address by geocoding, or set directly to fine-tune (the API equivalent of dragging the map pin).
Master switch for the geo notification at this location. The message text is kept when you toggle off.
true
Which card templates are active at this location - the writable source of truth behind cards[]. PATCH with SET semantics to toggle cards on/off. Enabling a card also pushes this location's geofence onto that card's wallet passes (Apple Wallet caps geofences at 10 locations per pass).
^crd_[A-Za-z0-9]+$Read-only expansion of enabled_card_ids - only the cards turned ON at this location, each with its per-(card, location) signup_url. The URL is long-lived and never rotates: render your own QR from it for counter cards and window decals. Customers who sign up through it get this location stamped as Customer.signup_location_id. Distinct from the per-customer claim_url (wallet handoff).
Deliberately NOT the full org catalog with on/off flags: embedding every card template in every location response would bloat list calls and go stale as templates are added. To build a toggle UI like the dashboard's, join two clean resources: GET /v1/cards (the full catalog) against this location's enabled_card_ids (the on/off state). To toggle, PATCH enabled_card_ids with the new SET.
Read-only summary of who is assigned here. The write path is PATCH /v1/team_members/{id} with location_ids - one relationship, one owner; this is the location-side read.
True when this location has a live POS bridge - sales at the till flow in automatically as source: "pos" transactions. Boolean by design: the one integration decision this flag serves is "do I need to push transactions via the API, or does the till already report them?". The POS vendor, connection ids, and mapping details are internal (vendor privacy) and dashboard-owned - they are never surfaced or editable via API.
true
The organization's default location (used when a write carries no explicit location_id and the org has exactly one candidate).
true
Read-only lifecycle flag. Deactivating a location is a billing action - dashboard only.
true
Unix seconds.
1735689600
ISO 3166-1 alpha-2, derived from the geocoded address. Null while no address is set.
"SK"
The push text shown on the customer's lock screen when they come near this location (wallet-pass geofencing; the trigger radius is fixed by Apple/Google at roughly 100 m - not configurable). Null = no message configured. Only fires while geo_message_enabled is true.
500"You're near Demo Coffee - your 10th coffee is on us today! ☕"
Unix seconds of last change.
1751500000