Developers · Early access WhatsApp payments.
WhatsApp payments.
One API call.
Send a Pay now card to your customer’s WhatsApp from your own app or site. Tranzwa handles the message, checkout on 10 gateways and the receipt. You get a signed webhook.
Sandbox opens first to people on the list · free while in early access
Create a payment request
curl -X POST \ https://api.tranzwa.com/api/v1/public/payments/initiate \ -H "X-Api-Key: tz_test_pk_7Hq2…" \ -H "X-Api-Secret: tz_test_sk_••••" \ -H "Idempotency-Key: order_1042" \ -d '{ "menuCode": "JOLLOF-TRAY", "amount": 45000, "currency": "NGN", "customerPhone": "+234 800 000 0000", "reference": "order_1042" }'
What you get
You build the button. We do the rest.
For developers and agencies building sites, apps and booking tools for businesses that sell on WhatsApp.
One call to get paid
payments/initiate sends the Pay now card. No chat flows to build. 10 gateways, one integration Paystack, Flutterwave, Stripe, Monnify, Nomba and more. The business picks; your code doesn’t change.
Money goes to the business Payments settle to the merchant’s own gateway account. You never handle funds.
No WhatsApp setup No Meta approval, templates or number to manage. Tranzwa sends the message and the receipt.
Menus as building blocks Use a payment menu
code and its questions (date, size, guests) come with it. Webhooks and verify Signed
payment.succeeded events, plus GET payments/{ref} to check any time.How it works
Four steps, about an hour
1
Get test keys
From the dashboard: Settings → API keys. Test and live keys are separate.
2
Send a request
Amount, customer phone and your reference, or a menu code.
3
Customer pays in chat
Pay now → the gateway’s checkout → receipt in WhatsApp.
4
Webhook to you
Signed event to your URL. Mark the order paid.
Response
// 201 Created: the Pay now card is on its way { "paymentRef": "TZ-8F2K1", "status": "pending", "whatsappSent": true, "expiresAt": "2026-11-03T12:30:00Z" }
Webhook: payment.succeeded
// POST to your webhook URL // X-Tranzwa-Signature: t=1730…, v1=5f2c… (HMAC-SHA256) { "event": "payment.succeeded", "paymentRef": "TZ-8F2K1", "reference": "order_1042", "amount": 45000, "currency": "NGN", "gateway": "paystack", "paidAt": "2026-11-03T10:14:08Z" }
Security we’re building in
Built so you can trust it with real orders
The API is in design. These are the rules it’s being built to, the same as the rest of Tranzwa: we never hold the money, and nobody can read a key back.
✓
Keys hashed, never stored readable
API secrets are hashed like passwords; you see a secret once, when you create it.
✓
Signed webhooks
Every event carries an HMAC-SHA256 signature and timestamp, so you can reject fakes and replays.
✓
Idempotency keys
Send the same request twice by mistake and you get one payment, not two.
✓
Separate test and live
Sandbox keys only ever hit test gateways. Nothing real moves.
✓
Card details never touch you or us
Customers pay on the gateway’s own checkout.
✓
Revoke any time
Roll or revoke keys from the dashboard. Old keys stop at once.
Where we are
Honest roadmap
Early access means early. Here’s what exists and what doesn’t yet.
Payments API: initiate, status, verify In design
Signed webhooks In design
Sandbox and test keys Planned
Menus API Planned
Docs, SDKs (Node, PHP, Python) Planned
Part payments by API Exploring
Already a Tranzwa business? You can use invoices, payment menus and QR links today, no
code needed.
Be first to build WhatsApp payments
into your product.
Sandbox first · free during early access
