Payments that survive a crash
One charge per intent, forever. The rail's reference is written down before the payer can act, and only the rail's authenticated status query moves money.
Payment lifecycle
One API for MTN MoMo and Orange Money, with PaymentIntents, idempotency and signed webhooks. These docs cover it as it really is, release by release.
vpay is a scaffold. Do not deploy it.
It compiles, lints clean and its tests pass, but it cannot take a payment. One real-rail call has ever happened: a single charge settled against MTN's sandbox on 2026-09-15, using a test number the sandbox settles by itself. No real payer has been prompted, no money has moved, Orange has never been called, no refund has ever settled, and no cluster has ever run vpay. What works today β
| If you want to⦠| Read |
|---|---|
| decide whether vpay fits | What is vpay?, then What works today |
| run it on your machine | Run it locally |
| integrate a merchant backend | Merchant API, Authentication, SDKs |
| take a payment from a payer | Hosted checkout, Browser checkout |
| understand where money can go wrong | Payment lifecycle, Crash safety |
| operate it | Configuration, Deployment, Runbooks |
| point a coding agent at it | Agent skills |