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.
/api/v1/processor_routingLists 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:readscope - Since: M13
Request
Query parameters
This operation takes no query parameters.
Response
200 OK with a JSON object:
| Field | Type | Description |
|---|---|---|
object | "list" | |
data | array of object | |
data[].object | "processor_routing" | |
data[].brandId | brd_… ID | |
data[].brandName | string | |
data[].livemode | boolean | |
data[].primary | object or null | |
data[].secondary | object or null | |
data[].serving | object or null | |
data[].servingReason | one of primary, secondary, degraded_primary, degraded_secondary, only_connection or null |
Examples
A brand failed over to its secondary
GET /api/v1/processor_routing
Authorization: Bearer or_test_…
Response (200):
{
"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
| Code | HTTP status | When | What to do |
|---|---|---|---|
scope_required | 400 | The 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_denied | 403 | You 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.