Bead Developers
  • Introduction
  • Quick Start
  • Authentication
  • Payments
    • Create Payment
    • Payment Statuses
    • Payment Webhooks
    • Test Transactions - Crypto
    • Changelog
  • Entity Management
    • Onboarding
    • Merchant Management
      • Get Merchant
      • Changelog
    • Location Management
      • Create Location
      • Get Location
      • List Locations
      • Update Location
      • Delete Location
      • Changelog
    • Terminal Management
      • Terminal Lifecycle (Concepts)
      • Create Terminal
      • Get Terminal
      • List Terminals
      • Update Terminal
      • Delete Terminal
      • Webhook Management
      • Changelog
  • Settlement
    • Batches
    • Settlement Details
  • Reporting
    • Payment History Concepts
      • Pagination and Sorting
    • Partner Payments
    • Merchant Payments
    • Terminal Payments
    • Changelog
  • Reference Guide
    • Core Concepts
      • Environments & Base URLs
      • Authentication
      • Error Codes
    • Enumerations & Schemas
      • Tender Types
        • Crypto
        • Alternative Payments
      • Settlement Currencies
      • Common Field Types
    • Endpoint Index
      • Table View (All APIs)
      • Download OpenAPI / Postman
    • Payment Scenarios
      • Under- and Over-Payment Handling
      • Reclaiming Unconverted Crypto
    • Operational Guides
      • Compatible Crypto Wallets
      • Webhook Event Reference
    • Support & Contacts
      • Integration Support
      • Escalation Contacts
    • Changelog
  • FAQs & Troubleshooting
    • Authentication FAQs
    • Payments FAQs
      • Resolving “403 Forbidden” When Creating Payments
    • Environment & Testing
      • How to Test Klarna Payments
      • How to Prepare for USDC Testing
      • How to Test Klarna Payments
    • Webhooks & Error Codes
Powered by GitBook
On this page
  • Endpoint
  • Path parameters
  • Request headers
  • Request body (full replacement)
  • Successful response — 200
  • Error responses
  • Best practices
  • Related endpoints
  1. Entity Management
  2. Location Management

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

Related endpoints

  • Get Location – GET /Locations/{id} to retrieve the current object

  • List Locations – GET /Merchants/{id}/locations to fetch all stores

  • Delete Location – DELETE /Locations/{id} when decommissioning a store

PreviousList LocationsNextDelete Location

Last updated 10 days ago