Skip to content

vpayA Stripe-shaped gateway for Cameroon mobile money

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

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 β†’

The shape of it ​

vpay architecture: merchants, payers and staff reach one vpay-server binary through /v1, /v1/browser and /dash/v1. The worker polls the rails and delivers webhooks. Everything is stored in PostgreSQL. Rails sit behind the provider port.

Where to start ​

If you want to…Read
decide whether vpay fitsWhat is vpay?, then What works today
run it on your machineRun it locally
integrate a merchant backendMerchant API, Authentication, SDKs
take a payment from a payerHosted checkout, Browser checkout
understand where money can go wrongPayment lifecycle, Crash safety
operate itConfiguration, Deployment, Runbooks
point a coding agent at itAgent skills

Verified against vpay v0.4.1 (2026-09-22). vpay is a scaffold β€” do not deploy it.