Patch Location
PATCH
/api/v1/locations/{id}
Token needs the update ability.
About tokens
Partially updates a Location object (send only the fields to change). Requires the update ability. Send is_active to activate or deactivate the location. Deactivating (is_active: false) is how a store closes: it leaves leaderboards, but its history keeps counting toward network totals and year-over-year benchmarks, so it does not by itself make the location deletable — see Delete Location and deletable_on.
Path parameters
-
idstring (uuid) requiredResource UUID.
Request body application/json
-
namestring -
addressstring nullable -
citystring nullable -
regionstring nullable -
postal_codestring nullable -
countrystring nullable -
timezonestring nullableIANA zone identifier (e.g.America/Chicago). A value marks the zone as set by hand; null hands the location back to automatic detection. -
district_idstring (uuid) nullable -
district_id_2string (uuid) nullable -
location_category_idstring (uuid) nullable -
is_activebooleanActivation state. Omit to leave it unchanged (a location created without it stays pending, and never appears on a leaderboard).trueactivates the location,falsetakes an active one out of service; both are idempotent, and a deactivated location keeps the timestamp of its first deactivation.falseon a location that was never activated leaves it pending rather than marking it deactivated — there is no service to take it out of. Null is rejected — omit the field instead. Tenants that partition leaderboards by location category can only activate a location that has one from the tenant's primary category group, solocation_category_idmust either already be set or be sent alongsideis_active: true. -
external_idstring nullableUnique per tenant. -
datasource_settingsobject nullableSets POS identifiers; never clears them. A provider sent as null, or with a null or blank value, keeps its stored settings.-
quobject-
location_idinteger nullable
-
-
brinkobject-
brink_api_keystring nullableWrite-only. Replaces the stored Brink API key; a null or blank value keeps it. Responses report onlybrink.api_key_set.
-
-
Responses
-
-
dataLocation-
idstring (uuid) -
external_idstring nullable -
namestring -
addressstring nullable -
citystring nullable -
regionstring nullable -
postal_codestring nullable -
countrystring nullable -
timezonestring nullableIANA zone the location's business day runs on. Null until resolved; the tenant timezone applies meanwhile. -
timezone_sourcestring nullableWhere the timezone came from.userwas chosen by a person and is never overwritten by the nightly resolver; the others were detected automatically.userposgooglestate -
is_privateboolean -
is_corporateboolean -
is_activebooleanTrue only for an active location; false for both pending and deactivated ones — seeactivation_status. -
activation_statusstringpendingwas never activated;activecollects metrics and ranks on leaderboards;deactivatedwas taken out of service and stays in historical network totals.pendingactivedeactivated -
deactivated_atstring (date-time) nullableWhen the location was taken out of service. Null unlessactivation_statusisdeactivated. -
is_deletablebooleanWhetherDELETEwill succeed: true for a pending location, a deactivated one that never loaded any sales, labor or custom-metric data, or a deactivated one whose daily history has aged out of reporting retention. -
deletable_onstring (date) nullableFor a deactivated location still inside retention, the date it becomes deletable (always a Jan 1). Null when it is already deletable, active, or pending. -
district_idstring (uuid) nullable -
district_id_2string (uuid) nullable -
location_category_idstring (uuid) nullable -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable -
datasource_settingsobjectPOS identifiers for the location. Credentials are never returned: each one is reported only as{key}_set, true when a value is stored.-
quobject-
location_idinteger nullable
-
-
brinkobject-
api_key_setboolean
-
-
-
districtobject nullablePresent only when included.-
idstring (uuid) -
namestring -
external_idstring nullable -
district_group_idstring (uuid) nullable -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable -
districtGroupobject nullablePresent only when included.-
idstring (uuid) -
namestring -
indexinteger -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable
-
-
-
district2object nullablePresent only when included.-
idstring (uuid) -
namestring -
external_idstring nullable -
district_group_idstring (uuid) nullable -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable -
districtGroupobject nullablePresent only when included.-
idstring (uuid) -
namestring -
indexinteger -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable
-
-
-
locationCategoryobject nullablePresent only when included.-
idstring (uuid) -
namestring -
external_idstring nullable -
location_category_group_idstring (uuid) nullable -
sort_orderinteger nullable -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable -
locationCategoryGroupobject nullablePresent only when included.-
idstring (uuid) -
namestring -
indexinteger -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable
-
-
-
locationGroupsarray of LocationGroupPresent only when included (and on the Sync Location Groups response).-
idstring (uuid) -
namestring -
external_idstring nullable -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable -
locationsarray of LocationPresent only when included.-
idstring (uuid) -
external_idstring nullable -
namestring -
addressstring nullable -
citystring nullable -
regionstring nullable -
postal_codestring nullable -
countrystring nullable -
timezonestring nullableIANA zone the location's business day runs on. Null until resolved; the tenant timezone applies meanwhile. -
timezone_sourcestring nullableWhere the timezone came from.userwas chosen by a person and is never overwritten by the nightly resolver; the others were detected automatically.userposgooglestate -
is_privateboolean -
is_corporateboolean -
is_activebooleanTrue only for an active location; false for both pending and deactivated ones — seeactivation_status. -
activation_statusstringpendingwas never activated;activecollects metrics and ranks on leaderboards;deactivatedwas taken out of service and stays in historical network totals.pendingactivedeactivated -
deactivated_atstring (date-time) nullableWhen the location was taken out of service. Null unlessactivation_statusisdeactivated. -
is_deletablebooleanWhetherDELETEwill succeed: true for a pending location, a deactivated one that never loaded any sales, labor or custom-metric data, or a deactivated one whose daily history has aged out of reporting retention. -
deletable_onstring (date) nullableFor a deactivated location still inside retention, the date it becomes deletable (always a Jan 1). Null when it is already deletable, active, or pending. -
district_idstring (uuid) nullable -
district_id_2string (uuid) nullable -
location_category_idstring (uuid) nullable -
created_atstring (date-time) nullable -
updated_atstring (date-time) nullable -
datasource_settingsobjectPOS identifiers for the location. Credentials are never returned: each one is reported only as{key}_set, true when a value is stored. -
districtobject nullablePresent only when included. -
district2object nullablePresent only when included. -
locationCategoryobject nullablePresent only when included. -
locationGroupsarray of anyPresent only when included (and on the Sync Location Groups response).
-
-
-
-
-
-
messagestring
-
-
-
messagestring
-
-
-
messagestring
-
-
-
messagestring -
errorsobject
-
curl -X PATCH "https://app.franchisesee.com/api/v1/locations/9d3f6b2e-5a41-4c7e-9a0b-2f1c8e7d4a63" \
-H "Authorization: Bearer $FRANCHISESEE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Downtown Austin",
"address": "401 Congress Ave",
"city": "Austin",
"region": "TX",
"postal_code": "78701",
"country": "US",
"timezone": "America/Chicago",
"district_id": "3f2a1b0c-9d8e-4f7a-b6c5-d4e3f2a1b0c9",
"district_id_2": "c7e9a2d4-1b3f-4e8a-9c6d-5f2e8b1a7d30",
"location_category_id": "5d8e2f1a-6c4b-4a9e-8f3d-2b7c1e9a4d60",
"is_active": true,
"external_id": "STR-1042",
"datasource_settings": {
"qu": {
"location_id": 12345
},
"brink": {
"brink_api_key": "brk_live_8f2c4a1e9d7b"
}
}
}'
Response
{
"data": {
"id": "9b1c8f3e-7a2d-4c5b-8e1a-2f3d4c5b6a7e",
"external_id": "STR-1042",
"name": "Downtown Austin",
"address": "401 Congress Ave",
"city": "Austin",
"region": "TX",
"postal_code": "78701",
"country": "US",
"timezone": "America/Chicago",
"timezone_source": "pos",
"is_private": false,
"is_corporate": false,
"is_active": true,
"activation_status": "active",
"deactivated_at": null,
"is_deletable": false,
"deletable_on": null,
"district_id": "3f2a1b0c-9d8e-4f7a-b6c5-d4e3f2a1b0c9",
"district_id_2": "c7e9a2d4-1b3f-4e8a-9c6d-5f2e8b1a7d30",
"location_category_id": "5d8e2f1a-6c4b-4a9e-8f3d-2b7c1e9a4d60",
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z",
"datasource_settings": {
"qu": {
"location_id": 12345
},
"brink": {
"api_key_set": true
}
},
"district": {
"id": "3f2a1b0c-9d8e-4f7a-b6c5-d4e3f2a1b0c9",
"name": "Central Texas",
"external_id": "CTX",
"district_group_id": "e1a4c8b2-7d3f-4b6e-9a2c-8f5d1e3b7a90",
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z",
"districtGroup": {
"id": "e1a4c8b2-7d3f-4b6e-9a2c-8f5d1e3b7a90",
"name": "Region",
"index": 1,
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z"
}
},
"district2": {
"id": "3f2a1b0c-9d8e-4f7a-b6c5-d4e3f2a1b0c9",
"name": "Central Texas",
"external_id": "CTX",
"district_group_id": "e1a4c8b2-7d3f-4b6e-9a2c-8f5d1e3b7a90",
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z",
"districtGroup": {
"id": "e1a4c8b2-7d3f-4b6e-9a2c-8f5d1e3b7a90",
"name": "Region",
"index": 1,
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z"
}
},
"locationCategory": {
"id": "5d8e2f1a-6c4b-4a9e-8f3d-2b7c1e9a4d60",
"name": "Inline",
"external_id": "INLINE",
"location_category_group_id": "f2b6d8a1-4c3e-4e7b-a5d9-1c8e3f6b2a40",
"sort_order": 1,
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z",
"locationCategoryGroup": {
"id": "e1a4c8b2-7d3f-4b6e-9a2c-8f5d1e3b7a90",
"name": "Region",
"index": 1,
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z"
}
},
"locationGroups": [
{
"id": "a3c5e7f9-2b4d-4f6a-8c1e-3d5f7a9b1c20",
"name": "Austin Metro",
"external_id": "AUS-METRO",
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z",
"locations": [
{
"id": "9b1c8f3e-7a2d-4c5b-8e1a-2f3d4c5b6a7e",
"external_id": "STR-1042",
"name": "Downtown Austin",
"address": "401 Congress Ave",
"city": "Austin",
"region": "TX",
"postal_code": "78701",
"country": "US",
"timezone": "America/Chicago",
"timezone_source": "pos",
"is_private": false,
"is_corporate": false,
"is_active": true,
"activation_status": "active",
"deactivated_at": null,
"is_deletable": false,
"deletable_on": null,
"district_id": "3f2a1b0c-9d8e-4f7a-b6c5-d4e3f2a1b0c9",
"district_id_2": "c7e9a2d4-1b3f-4e8a-9c6d-5f2e8b1a7d30",
"location_category_id": "5d8e2f1a-6c4b-4a9e-8f3d-2b7c1e9a4d60",
"created_at": "2025-03-14T15:22:08.000000Z",
"updated_at": "2026-10-02T09:41:55.000000Z",
"datasource_settings": {
"qu": {
"location_id": 12345
},
"brink": {
"api_key_set": true
}
},
"district": {},
"district2": {},
"locationCategory": {},
"locationGroups": []
}
]
}
]
}
}