Updates an existing location's profile, settings, default tax rate, or corporate grouping. Send only the fields you want to change. On success, the API returns the full updated location object, including its unique identifier and other relevant information.
Request Headers
| Header | Required | Description |
|---|---|---|
| Authorization | Yes | Bearer YOUR_ACCESS_TOKEN |
| Content-Type | Yes | application/json |
Request Parameters
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| location_id | integer | Yes | Location to update (used in the request path). |
Request Body Fields (send only the fields you want to change):
| Field | Type | Required | Description |
|---|---|---|---|
| name | string(64) | No | Display name (store name). |
| legal_business_name | string(64) | No | Registered legal entity name. |
| status | integer | No | Location status. Defaults to 1. Values: 1 = Active (default), 2 = Inactive, 3 = Cancelled, 4 = Closed, 5 = Boarding (or pending installation). |
| phone | string | No | Contact phone number. |
| address | string(255) | No | Street address. |
| city | string | No | City. |
| global_state_id | integer | No | State ID. Resolve from the Get States lookup. |
| global_country_id | integer | No | Country ID. Resolve from the Get Countries lookup. |
| zip | string | No | Postal / ZIP code. |
| string | No | Location contact email. | |
| website | string | No | Location website URL. |
| owner | integer | No | Owner user ID (reassign the location's owner to an existing user). |
| owner_first_name | string(45) | No | Owner's first name. |
| owner_last_name | string(45) | No | Owner's last name. |
| owner_email | string(150) | No | Owner's email. |
| primary_contact_first_name | string | No | Primary contact's first name. |
| primary_contact_last_name | string | No | Primary contact's last name. |
| primary_contact_email | string | No | Primary contact's email (someone connected to the location). |
| user_id | integer | Yes | The acting user performing the update. |
| location_id_external | string | No | Your external identifier for the location (e.g., the ID in Iris CRM). |
| eod_time | string | No | End-of-day / batch-out cutoff time, local to the location expressed in UTC. Format HH:MM:SS. Defaults to 11:00:00. |
| logo | string | No | Product thumbnail shown on the customer receipt. |
| pos | integer | No | POS identifier. |
| manufacture | integer | No | Manufacturer identifier. |
| tax_rate | string | No | Default tax rate for the location, expressed in basis points / hundredths of a percent (100 = 1.00%, 2000 = 20.00%). |
| corporate_id | integer | No | Corporate grouping ID (primary key of the corporates table) used for billing association. |
| corporate_category_id | integer | No | Corporate category to assign the location to (primary key of the corporate_categories table). Returned by Retrieve All Corporate Categories. |
| closed_check_receipts | integer | No | Closed-check receipt setting (1 / 0). |
| global_on_id | integer | No | Originating channel identifier. |
Request Example
{
"legal_business_name": "Sunset Bistro LLC",
"status": 1,
"name": "Sunset Bistro",
"city": "Long Beach",
"phone": 12345678903,
"global_state_id": 1,
"global_country_id": 3,
"zip": "90813",
"email": "[email protected]",
"eod_time": "03:00:00",
"address": "346 W 8th St.",
"tax_rate": "2000",
"user_id": 2,
"corporate_category_id": 52
}
cURL Example
curl --request POST \
--url https://sandbox-api.softpoint.io/interface/v1/locations/3000128 \
--header "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"name": "Sunset Bistro",
"status": 1,
"tax_rate": "2000",
"user_id": 2,
"corporate_category_id": 52
}'
Success Response
{
"id": 256,
"status": 5,
"location_id": 3000128,
"name": "Sunset Bistro",
"address": "346 W 8th St.",
"city": "Long Beach",
"zip": "90813",
"global_state_id": 1,
"global_country_id": 1,
"email": "[email protected]",
"phone": "9876543222",
"owner": 7,
"eod_time": "11:00:00",
"tax_rate": { "id": 47, "name": "default", "rate": 1000, "exclusive": 0 },
"state": "Alaska",
"owner_name": "A B",
"last_datetime": "2023-03-10T23:36:31.000000Z"
}
Response Fields
The full updated location object is returned, using the same field set as Create A Location.
| Field | Type | Description |
|---|---|---|
| id | integer | Internal record ID. |
| location_id | integer | Platform location identifier used by most other endpoints. |
| status | integer | Location status. |
| name | string | Display name. |
| legal_business_name | string | Legal entity name. |
| address / city / zip | string | Address components. |
| global_state_id / global_country_id | integer | Resolved location IDs. |
| state | string | Human-readable state name. |
| email / phone | string | Contact details (phone normalized). |
| owner | integer | Owner user ID. |
| owner_name | string | Owner's full name. |
| eod_time | string | End-of-day cutoff time. |
| tax_rate | object | Default tax-rate object (id, name, rate, exclusive). |
| last_datetime | string (ISO 8601) | Timestamp of the last update. |
Error Responses
Missing Required Parameters
{
"error": {
"code": 10109,
"message": "The request is missing one or more required parameter(s).",
"details": ["pos", "manufacture", "processor_cp", "processor_cnp"]
}
}
Status Codes
| Code | Description |
|---|---|
| 200 | Location updated |
| 400 | Required parameters missing or invalid |
Workflow Placement
Used during ongoing maintenance after a location is created — for example, to assign it to a corporate category or change its default tax rate.
Notes
-
This update uses
POST, notPUTorPATCH. -
Send only the fields you want to change; omitted fields are left as-is.
-
tax_rateis expressed in basis points / hundredths of a percent:2000= 20.00%,100= 1.00%. -
Assigning
corporate_category_idlinks the location to a corporate grouping returned by Retrieve All Corporate Categories. -
eod_timeis the batch-out time local to the location, expressed in UTC, inHH:MM:SSformat; it defaults to11:00:00. -
Resolve
global_state_idandglobal_country_idfrom the reference lookups; send the numeric IDs, not state/country names.
Common Mistakes
-
Using
PUT/PATCHinstead ofPOST. -
Omitting
user_id. -
Expecting
tax_rateto be a plain percentage rather than basis points. -
Sending state or country names instead of their numeric IDs.
-
Assuming
pos,manufacture, and the processor fields (processor_cp,processor_cnp) are never required. Depending on your boarding/processor configuration they can be required and will appear in the10109detailslist when missing.processor_cp/processor_cnpare part of processor configuration rather than the core location body.

