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
id
string
Yes
The merchantId
that will own the new location
Request headers
Authorization
Bearer <access_token>
Content-Type
application/json
Accept
application/json
Request body
name
string
Yes
Display name for the location
address
object
Yes
See Address object fields below
businessType
string
Yes
physical
or virtual
merchantCategoryCode
string
Yes
Four digit MCC such as 5812
additionalMerchantCategoryCodes
array<string>
Yes
Can be an empty array
descriptionOfServices
string
Yes
What the merchant sells or provides
grossAnnualVolume
number
Yes
Estimated annual processing volume
averageTicketSize
number
Yes
Typical transaction amount
maximumTicketSize
number
Yes
Maximum expected transaction amount
contactPhone
string
Yes
E.164 or local format accepted
contactEmail
string
Yes
Contact inbox for the location
website
string or null
Conditional
Required when businessType
is virtual
tenderTypes
array<string>
No
Allowed rails for this location. Omit to inherit merchant defaults
externalId
string or null
No
Optional external reference for your system
highestMonthlyVolume
number or null
No
Peak expected monthly volume if known
Address object
address1
string
Yes
Street line one
address2
string
No
Suite, floor, unit
city
string
Yes
City or locality
region
string
Yes
State or province such as MA
country
string
Yes
ISO 3166-1 alpha-2 such as US
postalCode
string
Yes
ZIP or postal code
Note:
maxTransactionAmount
is not used. ProvideaverageTicketSize
andmaximumTicketSize
instead.
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"
},
"businessType": "physical",
"merchantCategoryCode": "5812",
"additionalMerchantCategoryCodes": [],
"descriptionOfServices": "Quick service restaurant",
"grossAnnualVolume": 1200000,
"averageTicketSize": 25.00,
"maximumTicketSize": 2000.00,
"contactPhone": "508-555-1234",
"contactEmail": "[email protected]",
"website": null,
"tenderTypes": ["usdcBase", "ethereum"],
"externalId": "store-001"
}'
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": ["usdcBase", "ethereum"],
"address": {
"address1": "123 Main St",
"address2": "Suite 200",
"city": "Springfield",
"region": "MA",
"country": "US",
"postalCode": "01109"
},
"businessType": "physical",
"merchantCategoryCode": "5812",
"additionalMerchantCategoryCodes": [],
"descriptionOfServices": "Quick service restaurant",
"grossAnnualVolume": 1200000,
"averageTicketSize": 25.0,
"maximumTicketSize": 2000.0,
"contactPhone": "508-555-1234",
"contactEmail": "[email protected]",
"website": null,
"terminals": []
}
Other possible success codes
201
Location accepted and created
202
Location accepted for asynchronous processing
Error responses
400
Missing or invalid fields
401
Missing or invalid token
403
Authenticated but not permitted to create locations for the merchant
404
Merchant id
does not exist or is not visible to your token
409
Duplicate location such as a location with the same address already registered
500
Unexpected server error
Best practices
Create under the correct merchant. Pass the correct
merchantId
so dashboards aggregate correctly.Use consistent naming. A clear pattern such as city plus store number makes support lookups easier.
Disable before delete. Always disable production locations before deleting to prevent accidental transactions.
Ensure address accuracy. Provide the full address up front. Changing it later can affect tax or compliance data.
Set realistic ticket sizes. Provide
averageTicketSize
andmaximumTicketSize
that match real usage.Include a website for virtual locations. Provide
website
whenbusinessType
isvirtual
.
Next steps
Confirm the store appears with
GET /Merchants/{id}/locations
.Create one or more terminals under the new
locationId
usingPOST /Terminals
.
Last updated