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
  • Purpose
  • Path parameters
  • Request headers
  • Request body
  • Successful response — 200
  • Error responses
  • Best practices
  • Next steps
  1. Entity Management
  2. Location Management

Create Location

Creates a new store or branch (“location”) under an existing merchant. The call returns a locationId that you will reference when you create terminals or pull reporting data.

Endpoint

POST /Merchants/{id}/locations

Purpose

Attach a new location to the merchant identified by {id} and return its unique identifier.

Path parameters

Name
Type
Required
Description

id

string

✔︎

The merchantId that will own the new location

Request headers

Header
Value

Authorization

Bearer <access-token>

Content-Type

application/json

Accept

application/json

Request body

Field
Type
Required
Notes

address

object

✔︎

Must include at least address1, city, country, postalCode

name

string

✘

Friendly label shown in dashboards (e.g., “Downtown Flagship”)

tenderTypes

array<string>

✘

Allowed rails; omit to inherit merchant defaults

maxTransactionAmount

integer

✘

Hard ceiling (minor units) for a single sale; 0 = no limit

Example request

curl -X POST "https://api.test.devs.beadpay.io/Merchants/mer_4e5a13aa/locations" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Downtown Flagship",
        "address": {
          "address1": "123 Main St",
          "address2": "Suite 200",
          "city": "Springfield",
          "region": "MA",
          "country": "US",
          "postalCode": "01109"
        },
        "maxTransactionAmount": 1000000,
        "tenderTypes": ["ethereum"]
      }'

Successful response — 200

{
  "id": "loc_bfdc6a7f",
  "created": "2025-06-04T16:08:03.226Z",
  "updated": "2025-06-04T16:08:03.226Z",
  "merchantId": "mer_4e5a13aa",
  "name": "Downtown Flagship",
  "tenderTypes": ["ethereum"],
  "maxTransactionAmount": 1000000,
  "address": {
    "address1": "123 Main St",
    "address2": "Suite 200",
    "city": "Springfield",
    "region": "MA",
    "country": "US",
    "postalCode": "01109"
  },
  "terminals": []
}
Field
Description

id

New locationId; store for later calls

created, updated

ISO-8601 timestamps (UTC)

tenderTypes

Effective tender list after inheritance rules

terminals

Empty until you create terminals

Error responses

Code
Condition

400

Missing required address fields or invalid values

404

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

409

Duplicate location (same address already registered for this merchant)

Best practices

  • Create under the right merchant – pass the correct merchantId so dashboards aggregate correctly

  • Consistent naming – adopt a clear pattern (city + store #) to ease support look-ups

  • Disable before delete – always disable production locations before deleting to prevent accidental transactions

  • Address accuracy – provide the full address up front; correcting it later may affect tax or compliance data

Next steps

  • Confirm the store appears with GET /Merchants/{id}/locations

  • Create one or more terminals under the new locationId (POST /Terminals)

PreviousLocation ManagementNextGet Location

Last updated 10 days ago