Routing Rail
Routing Rail
Section titled “Routing Rail”Payment routing, rules engine, and intelligent transaction routing.
Overview
Section titled “Overview”The Routing Rail provides endpoints for configuring payment routing rules, optimizing transaction paths, and managing failover strategies.
Base URL
Section titled “Base URL”/api/v1/routingEndpoints
Section titled “Endpoints”Route Transaction
Section titled “Route Transaction”POST /api/v1/routing/routeDetermine optimal route for a transaction.
Request Body:
{ "transactionType": "TRANSFER", "amount": "50000.00", "currency": "SAR", "sourceCountry": "SAU", "destinationCountry": "UAE", "priority": "COST", "metadata": { "customerId": "cust_123" }}Response:
{ "data": { "routeId": "rt_abc123", "selectedRoute": { "provider": "SWIFT", "corridor": "SAU_UAE", "estimatedFee": "50.00", "estimatedTime": "1-2 business days", "cutoffTime": "14:00 AST" }, "alternativeRoutes": [ { "provider": "LOCAL_CLEARING", "estimatedFee": "25.00", "estimatedTime": "Same day" } ] }}Create Rule
Section titled “Create Rule”POST /api/v1/routing/rulesCreate a routing rule.
Request Body:
{ "name": "High Value SWIFT", "priority": 100, "conditions": { "amount": { "gte": "100000.00" }, "currency": ["SAR", "AED", "USD"], "transactionType": "TRANSFER" }, "action": { "route": "SWIFT", "provider": "PROVIDER_A" }, "active": true}List Rules
Section titled “List Rules”GET /api/v1/routing/rulesList all routing rules.
Update Rule
Section titled “Update Rule”PATCH /api/v1/routing/rules/:ruleIdUpdate a routing rule.
Test Rule
Section titled “Test Rule”POST /api/v1/routing/rules/testTest rules against a sample transaction.
Request Body:
{ "transactionType": "TRANSFER", "amount": "150000.00", "currency": "SAR", "destinationCountry": "UAE"}Get Provider Status
Section titled “Get Provider Status”GET /api/v1/routing/providers/statusGet status of routing providers.
Response:
{ "data": [ { "provider": "SWIFT", "status": "OPERATIONAL", "latency": 250, "successRate": 0.998 }, { "provider": "LOCAL_CLEARING", "status": "DEGRADED", "latency": 500, "successRate": 0.95 } ]}Configure Failover
Section titled “Configure Failover”POST /api/v1/routing/failoverConfigure failover rules.
Request Body:
{ "primaryRoute": "SWIFT", "failoverRoutes": ["LOCAL_CLEARING", "CORRESPONDENT"], "triggerConditions": { "errorRate": 0.05, "latency": 5000 }, "autoRecover": true}Routing Priorities
Section titled “Routing Priorities”| Priority | Description |
|---|---|
| COST | Minimize transaction cost |
| SPEED | Fastest delivery |
| RELIABILITY | Most reliable route |
| COMPLIANCE | Strictest compliance |
Rule Conditions
Section titled “Rule Conditions”| Condition | Type | Description |
|---|---|---|
amount | object | Amount range (gte, lte) |
currency | array | Allowed currencies |
sourceCountry | array | Source countries |
destinationCountry | array | Destination countries |
transactionType | array | Transaction types |
customerId | string | Specific customer |
Events
Section titled “Events”| Event | Description |
|---|---|
routing.route.selected | Route selected |
routing.failover.triggered | Failover activated |
routing.provider.degraded | Provider degraded |
routing.rule.matched | Rule matched |
See Also
Section titled “See Also”- Messages Rail - Message formatting
- Clearing Rail - Settlement