One integration, three corridors. A simulated payment: watch it route, recover a decline, and reconcile.
🇮🇳 India · INR · UPI · UPI
1 · Checkout
Pay by reference code
Phone
+20 10x xxx xxxx
customer@example.eg
Pay with mobile money
Phone number
+254 7xx xxx xxx
2 · Routing
TensorRail orchestration
Reconciled to the cent
Your ledger, reconciled.
Every movement is a balanced double-entry posting in an append-only ledger, reconciled every hour. When you ask where every unit is recorded, the answer is a ledger row, not a guess.
5
regions we work across
6
method categories
One
integration, any market
Example markets
- South Asia
- India · Pakistan · Bangladesh · Sri Lanka
- Southeast Asia
- Indonesia · Philippines · Vietnam · Thailand · Malaysia
- Latin America
- Brazil · Mexico · Colombia · Peru · Chile
- Africa
- Nigeria · Kenya · Ghana · Tanzania · Uganda · Egypt · South Africa
- Europe
- Eurozone · United Kingdom
Coverage and methods are configured for your account. Tell us your markets and we will confirm what we can enable.
Platform
Four things worth proving before you trust anyone with your payments.
01 Orchestration & decline recovery
Every payment takes the route most likely to be approved.
When a processor declines for a recoverable reason, the same payment is retried on the next route across the processors you enable. Your customer sees one checkout. Retries are driven by unified decline codes, so they are targeted, not blind.
✓170+ unified error codes decide when a retry is worth making
pay_8kT2 · card · USD 120.00
one checkout attempt seen by the customer · decline recovered
02 Money integrity
Every debit has a matching credit. The books balance to the cent.
Every movement is a balanced double-entry posting in an append-only ledger, reconciled every hour. Any drift is surfaced as an incident to be resolved, never silently absorbed. Where every unit is recorded is a ledger row, not a guess.
✓Double-entry postings · append-only ledger · hourly reconciliation
posting · pay_8kT2
hourly reconciliation · drift 0.00
03 Local reach through one API
Local rails in the markets big processors overlook.
Your customers pay on the rail they already trust, in their own currency, and your integration stays the exact same call it was on day one. New corridors are activated on your account, not built into your codebase.
✓local and global payment methods · a growing set of markets · One integration. Any market.
your integration
POST /payments
unchanged, every market
regions we work across · South Asia · Southeast Asia · Latin America · Africa · Europe
04 Developer experience
First sandbox payment the same day you get keys.
One API covers every method and market, whether you take payments through hosted checkout, a drop-in, or the direct API. Webhooks are signed and retried automatically until you acknowledge them. Every failure follows one error contract: a unified error code, a link to the docs, and a flag that tells you if a retry is worth making.
✓Sandbox from day one · signed webhooks with retries · unified error contract
$ curl -X POST /payments \
-H "api-key: rail_full_test_…" -d amount=1200 -d currency=USD
201 Created · pay_7mQ4 · status: succeeded
webhook payment_succeeded delivered ✓ signed · auto-retried
on failure → code · docs link · retriable: true
How it works
One call in. Approvals out.
One API call
Any method, any market, the same request. Your integration never changes as you grow.
Smart route
Payments route across the processors you enable for the best chance of approval, with recoverable declines retried on the next route automatically.
Settle
Every payment lands as a balanced ledger row, reconciled to the cent.