vermilion
guides

Routing & fallback

Rules are evaluated in priority order (lower number first); the first matching rule supplies an ordered PSP chain — primary first, fallbacks after. With no matching rule, every eligible enabled connection is used in the order it was added.

Creating rules

POST /v1/routing_rules { "name": "EUR cards → Adyen first", "priority": 10, "conditions": { "payment_method_types": ["card"], "currencies": ["EUR"], "amount_gte": 1000 }, "psp_order": ["psp_adyen…", "psp_stripe…"] }

Conditions are ANDed; absent fields match anything. Manage rules from the dashboard's rule builder or via GET / PATCH / DELETE /v1/routing_rules.

Fallback semantics

Explainability

Every attempt records its routing decision — strategy, matched rule id, position in the chain, and a fallback flag. You'll find it in API responses under attempts[].routing and visually on the payment timeline in the dashboard.

"attempts": [ { "provider": "adyen", "status": "failed", "error_code": "psp_timeout" }, { "provider": "stripe", "status": "captured", "routing": { "fallback": true } } ]