Skip to content

Show which processor connection serves each brand

The processor_connections.routing.get operation: GET /api/v1/processor_routing in the REST API and the processor_connections_routing_get tool in the MCP server.

GET/api/v1/processor_routing

Lists the legal entity's brands with their processor routing in the request's mode (spec §15.4): the primary and the secondary connection, and the connection that takes the brand's new checkouts now, with why (servingReason): its primary; its secondary while the primary is degraded or disconnected; a degraded connection when nothing better is available; or, when the brand names no connection of this mode, the entity's only active one. Sessions that already started and subscriptions keep the connection they use.

At a glance

  • REST: GET /api/v1/processor_routing
  • MCP tool: processor_connections_routing_get
  • Operation ID: processor_connections.routing.get
  • Scope: Legal entity
  • Permission: processors:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the processors:read scope
  • Since: M13

Request

Query parameters

This operation takes no query parameters.

Response

200 OK with a JSON object:

FieldTypeDescription
object"list"
dataarray of object
data[].object"processor_routing"
data[].brandIdbrd_… ID
data[].brandNamestring
data[].livemodeboolean
data[].primaryobject or null
data[].secondaryobject or null
data[].servingobject or null
data[].servingReasonone of primary, secondary, degraded_primary, degraded_secondary, only_connection or null

Examples

A brand failed over to its secondary

HTTP
GET /api/v1/processor_routing
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "object": "processor_routing",
      "brandId": "brd_01m4ttwd3veh9apbewxhfbgr1a",
      "brandName": "Acme",
      "livemode": false,
      "primary": {
        "id": "pcon_01m4vyt4mxe0s9zzk90373z6p6",
        "label": "Stripe",
        "processor": "stripe",
        "status": "degraded",
        "statusReason": "Marked degraded automatically after 5 failed requests in a row to the processor (last: api_error)."
      },
      "secondary": {
        "id": "pcon_01m4vyt4mxe0s9zzk90373z6p9",
        "label": "Mollie",
        "processor": "mollie",
        "status": "active",
        "statusReason": null
      },
      "serving": {
        "id": "pcon_01m4vyt4mxe0s9zzk90373z6p9",
        "label": "Mollie",
        "processor": "mollie",
        "status": "active",
        "statusReason": null
      },
      "servingReason": "secondary"
    }
  ]
}

Errors

CodeHTTP statusWhenWhat to do
scope_required400The request names no legal entity.Call the operation with credentials or a target at its level: an organization, a legal entity, a brand or the platform (details.required_scope).
permission_denied403You can't see processor connections here.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.