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});"
    }
  ]
}