New integrations use canonical V2 URLs. Legacy routes remain accepted during migration.
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /api/v2/payin | Create collection order |
| POST | /api/v2/payout | Create payout order |
| GET/POST | /api/v2/orders/{order_id} | Query order truth |
| GET/POST | /api/v2/balance | Merchant balance |
| GET | /api/v2/reports | Reports |
| GET/POST | /webhooks/providers/{provider} | Provider callback ingress |
| GET | /pay/{order_id} | Hosted payment |
Provider callbacks are normalized, but success is never created from a reference alone. Terminal success requires identity and amount verification and, for payout-style rails, a valid UTR/RRN when required by the provider contract. Ambiguous POST timeouts remain processing/unknown and are not blindly resent.