Routing Log
A per-payment, after-the-fact record of which providers were considered, in what order, and why.
Routing Log is a historical audit trail of routing decisions — not a live feed. Each payment produces one decision record: the ordered list of provider candidates the orchestrator considered, each one's priority tier and tie-break score, any providers skipped by the circuit breaker, and whether the country was blocked outright.
Routing Log vs Event Stream
Routing Log is a paginated list of RoutingDecision snapshots, refreshed on page load — you
search it to understand a payment that already happened. To watch the same
route.evaluated / provider.attempt.failed / route.fallback / provider.attempt.succeeded
sequence arrive live, millisecond by millisecond, while a payment is in progress, use
Event Stream instead.
/payments201412msMTN MoMo/payments/trx.PVrU8x2k20088msMTN MoMo/transfers202690msOrange Money/payments4021203msWave/balance20042ms—/payments5005012msCinetPayFilters
searchstringoptionalchannelstringoptionalproviderstringoptionaldate_start / date_enddateoptionaloutcomestringoptionalWhat a decision record shows
candidatesarrayoptionalcircuit_skippedarrayoptionalcountry_blockedbooleanoptionalchannel / currency / amountcontextoptionalprocessingsarrayoptionalRanking is deterministic and priority-first: a candidate's priority tier fully dominates the
order — a lower-priority provider is never tried ahead of a higher-priority one. The
tiebreak_score (rule match + least-cost boost + live success-rate telemetry) only decides
ordering within the same priority tier; among tied scores, selection is weighted-random by
each provider's configured weight.
What it's for
- Understand a decision: which providers were even eligible for this payment, and in what order were they ranked?
- Confirm a rule is contributing: check whether a candidate's
rule_boostis non-zero for the rule you expect to match — remember it only affects ordering within a priority tier, it never overrides priority itself. - Spot a stuck circuit breaker: a provider consistently appearing in
circuit_skippedreveals a provider your team can't currently route to.
From routing to the API call
Routing Log tells you which providers were considered and in what order; to see the actual HTTP exchange with a provider or the final response you sent your customer, cross-reference the same transaction in API Logs.
Related pages
Was this page helpful?