InnBucks Merchant API Developer Guide
Integrate InnBucks step by step: generate a payment code, show it with its QR code and deep link, confirm payment and go live.
Where to start
| Installing the skill | Install the Claude skill and let Claude write and review your InnBucks integration. |
| Quick start | Log in, generate a US$1 code, pay it with the test app, check it. Ten minutes. |
| Prerequisites & onboarding | Credentials, the test customer app, test funds and your merchant type. |
| Authentication | The X-Api-Key header, the 15-minute bearer token, and 401s. |
| Accepting payments | Generate a payment code; show the code, QR and deep link; check the status. |
| Agent services | Withdrawals, deposits, deposit inquiry, reversals and bank change. |
| API reference | Every endpoint, field, request and response. |
| Response codes & errors | Response codes 00, 000, 025, 096, HTTP statuses, and what to retry. |
| Code examples | Tested clients for PHP/Laravel, Node.js and Python. |
| Testing & UAT | UAT test cases, the journey video and sign-off. |
| Going live | Production credentials, pre-funding and the go-live checklist. |
| Best practices | Cents, references, status checks, idempotency, security, reconciliation. |
| Troubleshooting | Something is broken right now. Symptom-to-cause table. |
| Known documentation issues | Where InnBucks’ documents contradict themselves, and the gaps. |
| API method index | Every API method in alphabetical order, with client functions. |
| About this guide | Repository layout, sources and licence. |
Overview
InnBucks is a Zimbabwean mobile wallet run by InnBucks MicroBank Limited. The InnBucks Merchant API lets your server take payments from InnBucks customers and, if you are an InnBucks agent, pay customers cash out, take cash deposits and credit their change.
The payment model is different from a card or a USSD push. You don’t charge the customer.
You generate a code, show it to them, and they pay against it from the InnBucks app or
USSD (*569#). Your server then asks InnBucks whether the code has been paid.
1.1 What you can do
| Capability | Endpoint | Who uses it |
|---|---|---|
| Log in and get an access token | POST /auth/third-party |
Everyone |
| Generate a payment code for a customer to pay | POST /api/code/generate (type: PAYMENT) |
Merchants |
| Generate a withdrawal code for a cash-out | POST /api/code/generate (type: WITHDRAWAL) |
Agents |
| Check a code’s status (paid, expired…) | POST /api/code/inquiry |
Merchants, agents |
| Find a customer’s account from their phone number | GET /api/v1/account/msisdn/{msisdn}/details |
Agents |
| Deposit cash into a customer’s wallet | POST /api/transaction/deposit |
Agents |
| Check a deposit whose result you missed | POST /bank/api/transaction/inquiry |
Agents |
| Reverse a deposit | POST /api/transaction/reversal/v2 |
Agents |
| Bank change (credit a customer’s change, up to US$5) | POST /api/transaction/bankChange |
Merchants, agents |
| Pay a utility (airtime, bills) | POST /api/utility/provider/payment |
Merchants, agents |
| Download your account statement | POST /api/account/fullStatement |
Everyone |
| Download the response-code list | GET /api/file/response-codes |
Everyone |
Every endpoint is described in API reference and listed alphabetically in the API method index.
1.2 How a code payment works
Your server InnBucks API Customer
│ 1. POST /auth/third-party │ │
│ ──────────────────────────────▶ │ │
│ ◀──── accessToken (15 min) ──── │ │
│ 2. POST /api/code/generate │ │
│ ──────────────────────────────▶ │ │
│ ◀── code + qrCode, "00" ─────── │ │
│ 3. Show the code, QR and deep link ─────────────────────────────▶│
│ │ 4. Pays in the app or *569# │
│ │ ◀───────────────────────────── │
│ 5. POST /api/code/inquiry │ │
│ (once every 30 seconds) │ │
│ ──────────────────────────────▶ │ │
│ ◀── status: New → Claimed ───── │ │
│ 6. Fulfil the order │ │
A code payment is asynchronous. Generating the code only means a code exists. The money moves later, when the customer pays against it. InnBucks documents no callbacks, so your server learns the result by asking (step 5). A code expires after 10 minutes.
1.3 Quick facts
| Base URL | Not public. InnBucks gives you one per environment (test, production) as {baseUrl} |
| Authentication | X-Api-Key header on every request, plus Authorization: Bearer <accessToken> on every request except login |
| Token lifetime | 15 minutes by default. Log in again after 14 minutes, or when you get 401 |
| Format | HTTPS, JSON request and response bodies |
| Amounts | Integer cents (minor units): 100 means USD 1.00 or ZWG 1.00 |
| Currencies | USD, ZWG |
| Success | responseCode "00" in the JSON body. "000" on linked account inquiry |
| Code validity | 10 minutes |
| Status checks | At most one code inquiry every 30 seconds |
| Customer channels | InnBucks app (Android and iOS) and USSD *569# |
| Tracing | Every response carries an X-Trace-Id header. Log it; InnBucks support asks for it |
| API version | Merchant API document v1.2.1 |
1.4 The integration path
- Get your credentials and the test app from InnBucks.
- Log in and manage the token.
- Run the quick start: generate a code, pay it with the test app, check it.
- Build the payment screen: code, QR code, deep link, countdown, status checks.
- Add agent services if you are an InnBucks agent.
- Test every case and sign off UAT, with a short video.
- Go live with production credentials.
1.5 Words used in this guide
| Term | Meaning |
|---|---|
| InnBucks code | A number, usually 9 digits (e.g. 535403380), that a customer pays or claims against. Also called the payment code or payment token. |
| MSISDN | A mobile phone number in international format without +: 263772123123. |
| Minor units / cents | The smallest unit of a currency. All InnBucks amounts are whole numbers of cents: 450 = 4.50. |
| Reference | Your ID for a request (an order or transaction number). InnBucks echoes it back, often as stan. |
| stan | System trace audit number: the request’s reference as InnBucks records it. |
| authNumber | InnBucks’ authorisation number for the request. Keep it for reconciliation. |
| Agent | A business registered with InnBucks to pay out cash and take cash deposits. |
| Deep link | A link that opens the InnBucks app directly on the payment screen. |
| UAT | User acceptance testing: the sign-off InnBucks needs before issuing production credentials. |
This page is generated from section 1 of the README in README.md. Spotted something wrong? Open an issue.