Business locations
Download the complete public OpenAPI schema
Business locations
Create and manage physical locations owned by your merchant. Locations are private until explicitly published. Connected stores retain authority over synchronized details.
GET /v1/business_locations
List business locations
List business locations. Scoped to the secret API key’s merchant and mode. Locations are private by default; connected providers retain ownership of synchronized details.
Parameters, request, responses, and security
{
"tags": [
"business-locations"
],
"summary": "List business locations",
"description": "List business locations. Scoped to the secret API key’s merchant and mode. Locations are private by default; connected providers retain ownership of synchronized details.",
"operationId": "v1_list_business_locations",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantLocationListResponse"
}
}
}
}
},
"security": [
{
"ApiKeyBearer": []
}
],
"x-api-audience": "public_v1",
"x-api-authentication": "required",
"x-operation-id": "v1_list_business_locations",
"x-mcp-exposed": true,
"x-public-path": "/v1/business_locations",
"x-docs-kind": "list",
"x-docs-order": 40,
"x-docs-depth": 0,
"x-docs-action-order": 1000,
"x-codeSamples": [
{
"lang": "shell",
"label": "curl",
"source": "curl -X GET https://api.openmerchant.dev/v1/business_locations \\\n -H 'Authorization: Bearer pr_sk_test_...'"
},
{
"lang": "shell",
"label": "MCP (Streamable HTTP)",
"source": "curl -X POST https://api.openmerchant.dev/mcp/v1 \\\n -H 'Authorization: Bearer pr_sk_test_...' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"v1_list_business_locations\",\n \"arguments\": {}\n }\n}'"
},
{
"lang": "typescript",
"label": "MCP SDK (TS)",
"source": "// Reusing a Client connected to /mcp/v1 — see the \"MCP server\" tag for setup.\nconst result = await client.callTool({\n name: \"v1_list_business_locations\",\n arguments: {},\n});"
}
]
}
POST /v1/business_locations
Create a business location
Create a business location. Scoped to the secret API key’s merchant and mode. Locations are private by default; connected providers retain ownership of synchronized details.
Parameters, request, responses, and security
{
"tags": [
"business-locations"
],
"summary": "Create a business location",
"description": "Create a business location. Scoped to the secret API key’s merchant and mode. Locations are private by default; connected providers retain ownership of synchronized details.",
"operationId": "v1_create_business_location",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantLocationCreate"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantLocationRead"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security": [
{
"ApiKeyBearer": []
}
],
"x-api-audience": "public_v1",
"x-api-authentication": "required",
"x-operation-id": "v1_create_business_location",
"x-mcp-exposed": true,
"x-public-path": "/v1/business_locations",
"x-docs-kind": "create",
"x-docs-order": 10,
"x-docs-depth": 0,
"x-docs-action-order": 1000,
"x-codeSamples": [
{
"lang": "shell",
"label": "curl",
"source": "curl -X POST https://api.openmerchant.dev/v1/business_locations \\\n -H 'Authorization: Bearer pr_sk_test_...' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"name\": \"...\",\n \"address\": {\n \"line1\": \"...\",\n \"city\": \"...\",\n \"country\": \"AD\"\n },\n \"timezone\": \"Africa/Abidjan\"\n}'"
},
{
"lang": "shell",
"label": "MCP (Streamable HTTP)",
"source": "curl -X POST https://api.openmerchant.dev/mcp/v1 \\\n -H 'Authorization: Bearer pr_sk_test_...' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"v1_create_business_location\",\n \"arguments\": {\n \"name\": \"...\",\n \"address\": {\n \"line1\": \"...\",\n \"city\": \"...\",\n \"country\": \"AD\"\n },\n \"timezone\": \"Africa/Abidjan\"\n }\n }\n}'"
},
{
"lang": "typescript",
"label": "MCP SDK (TS)",
"source": "// Reusing a Client connected to /mcp/v1 — see the \"MCP server\" tag for setup.\nconst result = await client.callTool({\n name: \"v1_create_business_location\",\n arguments: {\n \"name\": \"...\",\n \"address\": {\n \"line1\": \"...\",\n \"city\": \"...\",\n \"country\": \"AD\"\n },\n \"timezone\": \"Africa/Abidjan\"\n},\n});"
}
]
}
GET /v1/business_locations/{location_id}
Retrieve a business location
Retrieve a business location. Scoped to the secret API key’s merchant and mode. Locations are private by default; connected providers retain ownership of synchronized details.
Parameters, request, responses, and security
{
"tags": [
"business-locations"
],
"summary": "Retrieve a business location",
"description": "Retrieve a business location. Scoped to the secret API key’s merchant and mode. Locations are private by default; connected providers retain ownership of synchronized details.",
"operationId": "v1_get_business_location",
"parameters": [
{
"required": true,
"schema": {
"type": "string",
"title": "Location Id"
},
"name": "location_id",
"in": "path"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantLocationRead"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security": [
{
"ApiKeyBearer": []
}
],
"x-api-audience": "public_v1",
"x-api-authentication": "required",
"x-operation-id": "v1_get_business_location",
"x-mcp-exposed": true,
"x-public-path": "/v1/business_locations/{location_id}",
"x-docs-kind": "retrieve",
"x-docs-order": 30,
"x-docs-depth": 0,
"x-docs-action-order": 1000,
"x-codeSamples": [
{
"lang": "shell",
"label": "curl",
"source": "curl -X GET https://api.openmerchant.dev/v1/business_locations/... \\\n -H 'Authorization: Bearer pr_sk_test_...'"
},
{
"lang": "shell",
"label": "MCP (Streamable HTTP)",
"source": "curl -X POST https://api.openmerchant.dev/mcp/v1 \\\n -H 'Authorization: Bearer pr_sk_test_...' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"v1_get_business_location\",\n \"arguments\": {\n \"location_id\": \"...\"\n }\n }\n}'"
},
{
"lang": "typescript",
"label": "MCP SDK (TS)",
"source": "// Reusing a Client connected to /mcp/v1 — see the \"MCP server\" tag for setup.\nconst result = await client.callTool({\n name: \"v1_get_business_location\",\n arguments: {\n \"location_id\": \"...\"\n},\n});"
}
]
}
POST /v1/business_locations/{location_id}
Update a business location
Update a business location. Scoped to the secret API key’s merchant and mode. Locations are private by default; connected providers retain ownership of synchronized details.
Parameters, request, responses, and security
{
"tags": [
"business-locations"
],
"summary": "Update a business location",
"description": "Update a business location. Scoped to the secret API key’s merchant and mode. Locations are private by default; connected providers retain ownership of synchronized details.",
"operationId": "v1_update_business_location",
"parameters": [
{
"required": true,
"schema": {
"type": "string",
"title": "Location Id"
},
"name": "location_id",
"in": "path"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantLocationPatch"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantLocationRead"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security": [
{
"ApiKeyBearer": []
}
],
"x-api-audience": "public_v1",
"x-api-authentication": "required",
"x-operation-id": "v1_update_business_location",
"x-mcp-exposed": true,
"x-public-path": "/v1/business_locations/{location_id}",
"x-docs-kind": "update",
"x-docs-order": 20,
"x-docs-depth": 0,
"x-docs-action-order": 1000,
"x-codeSamples": [
{
"lang": "shell",
"label": "curl",
"source": "curl -X POST https://api.openmerchant.dev/v1/business_locations/... \\\n -H 'Authorization: Bearer pr_sk_test_...'"
},
{
"lang": "shell",
"label": "MCP (Streamable HTTP)",
"source": "curl -X POST https://api.openmerchant.dev/mcp/v1 \\\n -H 'Authorization: Bearer pr_sk_test_...' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"v1_update_business_location\",\n \"arguments\": {\n \"location_id\": \"...\"\n }\n }\n}'"
},
{
"lang": "typescript",
"label": "MCP SDK (TS)",
"source": "// Reusing a Client connected to /mcp/v1 — see the \"MCP server\" tag for setup.\nconst result = await client.callTool({\n name: \"v1_update_business_location\",\n arguments: {\n \"location_id\": \"...\"\n},\n});"
}
]
}