Update Location

Replaces all editable fields of an existing location. PUT is a full-object update—any fields you omit will be reset to their defaults, so always send the complete object you want stored.

Endpoint

PUT /Locations/{id}

Path parameters

Name
Type
Required
Description

id

string

✔︎

The locationId returned when the location was created

Request headers

Header
Value

Authorization

Bearer <access-token>

Content-Type

application/json

Accept

application/json

Request body (full replacement)

Field
Type
Required
Notes

address

object

✔︎

Provide the full address block—even if only one line changed

name

string

✔︎

Friendly store label shown in dashboards

tenderTypes

array<string>

✔︎

Pass an empty array [] to inherit merchant defaults

maxTransactionAmount

integer

✔︎

Minor units (0 = no limit)

Example request

curl -X PUT "https://api.test.devs.beadpay.io/Locations/loc_bfdc6a7f" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Downtown Flagship – Renovated",
        "address": {
          "address1": "123 Main St",
          "address2": "Suite 300",
          "city": "Springfield",
          "region": "MA",
          "country": "US",
          "postalCode": "01109"
        },
        "maxTransactionAmount": 2000000,
        "tenderTypes": ["ethereum"]
      }'

Successful response — 200

{
  "id": "loc_bfdc6a7f",
  "created": "2025-06-04T16:08:03.226Z",
  "updated": "2025-06-14T09:42:11.015Z",
  "merchantId": "mer_4e5a13aa",
  "name": "Downtown Flagship – Renovated",
  "tenderTypes": ["ethereum"],
  "maxTransactionAmount": 2000000,
  "address": {
    "address1": "123 Main St",
    "address2": "Suite 300",
    "city": "Springfield",
    "region": "MA",
    "country": "US",
    "postalCode": "01109"
  },
  "terminals": []
}

Immutable fields

id, merchantId, and timestamp fields cannot be changed; any attempt returns 400 invalid_request.

Error responses

Code
Condition

400

Missing required fields or immutable field modified

404

Location {id} does not exist or is not visible to your token

409

Duplicate address already used by another location for this merchant

Best practices

✔︎ Action
Why

Fetch the current location, patch locally, then send the full object

Prevents accidental nulling of fields you forgot to include

Use descriptive names (city + store #)

Helps support quickly locate a store

Disable the location (isEnabled=false, if field exposed) before large updates in production

Avoids transactions during maintenance

Log the updated timestamp

Useful for audit trails and cache invalidation

  • Get LocationGET /Locations/{id} to retrieve the current object

  • List LocationsGET /Merchants/{id}/locations to fetch all stores

  • Delete LocationDELETE /Locations/{id} when decommissioning a store

Last updated