Update A Location

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

HeaderRequiredDescription
AuthorizationYesBearer YOUR_ACCESS_TOKEN
Content-TypeYesapplication/json

Request Parameters

Path Parameters:

ParameterTypeRequiredDescription
location_idintegerYesLocation to update (used in the request path).

Request Body Fields (send only the fields you want to change):

FieldTypeRequiredDescription
namestring(64)NoDisplay name (store name).
legal_business_namestring(64)NoRegistered legal entity name.
statusintegerNoLocation status. Defaults to 1. Values: 1 = Active (default), 2 = Inactive, 3 = Cancelled, 4 = Closed, 5 = Boarding (or pending installation).
phonestringNoContact phone number.
addressstring(255)NoStreet address.
citystringNoCity.
global_state_idintegerNoState ID. Resolve from the Get States lookup.
global_country_idintegerNoCountry ID. Resolve from the Get Countries lookup.
zipstringNoPostal / ZIP code.
emailstringNoLocation contact email.
websitestringNoLocation website URL.
ownerintegerNoOwner user ID (reassign the location's owner to an existing user).
owner_first_namestring(45)NoOwner's first name.
owner_last_namestring(45)NoOwner's last name.
owner_emailstring(150)NoOwner's email.
primary_contact_first_namestringNoPrimary contact's first name.
primary_contact_last_namestringNoPrimary contact's last name.
primary_contact_emailstringNoPrimary contact's email (someone connected to the location).
user_idintegerYesThe acting user performing the update.
location_id_externalstringNoYour external identifier for the location (e.g., the ID in Iris CRM).
eod_timestringNoEnd-of-day / batch-out cutoff time, local to the location expressed in UTC. Format HH:MM:SS. Defaults to 11:00:00.
logostringNoProduct thumbnail shown on the customer receipt.
posintegerNoPOS identifier.
manufactureintegerNoManufacturer identifier.
tax_ratestringNoDefault tax rate for the location, expressed in basis points / hundredths of a percent (100 = 1.00%, 2000 = 20.00%).
corporate_idintegerNoCorporate grouping ID (primary key of the corporates table) used for billing association.
corporate_category_idintegerNoCorporate category to assign the location to (primary key of the corporate_categories table). Returned by Retrieve All Corporate Categories.
closed_check_receiptsintegerNoClosed-check receipt setting (1 / 0).
global_on_idintegerNoOriginating 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.

FieldTypeDescription
idintegerInternal record ID.
location_idintegerPlatform location identifier used by most other endpoints.
statusintegerLocation status.
namestringDisplay name.
legal_business_namestringLegal entity name.
address / city / zipstringAddress components.
global_state_id / global_country_idintegerResolved location IDs.
statestringHuman-readable state name.
email / phonestringContact details (phone normalized).
ownerintegerOwner user ID.
owner_namestringOwner's full name.
eod_timestringEnd-of-day cutoff time.
tax_rateobjectDefault tax-rate object (id, name, rate, exclusive).
last_datetimestring (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

CodeDescription
200Location updated
400Required 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, not PUT or PATCH.

  • Send only the fields you want to change; omitted fields are left as-is.

  • tax_rate is expressed in basis points / hundredths of a percent: 2000 = 20.00%, 100 = 1.00%.

  • Assigning corporate_category_id links the location to a corporate grouping returned by Retrieve All Corporate Categories.

  • eod_time is the batch-out time local to the location, expressed in UTC, in HH:MM:SS format; it defaults to 11:00:00.

  • Resolve global_state_id and global_country_id from the reference lookups; send the numeric IDs, not state/country names.

Common Mistakes

  • Using PUT / PATCH instead of POST.

  • Omitting user_id.

  • Expecting tax_rate to 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 the 10109 details list when missing. processor_cp / processor_cnp are part of processor configuration rather than the core location body.

Body Params
Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json