Payments
The Inshuwa API supports multiple payment methods for premium collection.
The requests below are runnable — set your key once and send them from the page. See Running requests from the guide.
Set it once and every Try it out below is authenticated. It stays in this browser's local storage and is never sent anywhere but the API.
Supported Payment Methods
| Method | Description |
|---|---|
| Mobile Money | Airtel Money, MTN Mobile Money, Zamtel Kwacha |
| Card | Visa and Mastercard |
| Mobile Banking | Local banking platforms |
Which gateway serves a given method is decided for you by the gateway configured on your account:
Pay for a Quotation
Works for any product line — motor, life, travel or general. The reference is your unique identifier for this transaction; store it to check payment status later.
Paying issues the policy
This call initiates the collection and issues the policy automatically once the payment confirms. There is no separate issue step on the prepaid path — see issuance flows.
/payments/{quoteId}/payPlayground
Authorization
Variables
Body
Check Transaction Status
Payments through a gateway never complete inside the request: mobile money settles by callback after the payer approves on their handset, so the call comes back Pending. Poll for the outcome.
/payments/transactions/{reference}/statusPlayground
Authorization
Variables
For the full transaction record rather than just its status:
/payments/transactions/{reference}Playground
Authorization
Variables
Payment Statuses
| Status | Description |
|---|---|
Pending | Payment initiated, awaiting confirmation |
Success | Payment completed successfully |
Failed | Payment failed |
Combined Payment Endpoints
Some endpoints collect the premium in the same request that issues or changes the policy — the one-shot flow described in issuance flows:
| Endpoint | What it does |
|---|---|
POST /api/v1/policies/motor/instant/issue/pay | Issue and pay a motor policy |
POST /api/v1/policies/motor/{policyId}/renew/pay | Renew and pay a motor policy |
POST /api/v1/policies/motor/{policyId}/extend/pay | Extend and pay a motor policy |
POST /api/v1/policies/travel/instant-issue | Issue and pay a travel policy |
POST /api/v1/policies/travel/{policyId}/renew/pay | Renew and pay a travel policy |
POST /api/v1/policies/life/instant-issue | Issue and pay a life policy |
POST /api/v1/policies/life/{quoteId}/issue | Issue a quoted life policy, collecting the premium if payment details are sent |
POST /api/v1/policies/life/{quoteId}/renew/pay | Renew and pay a life policy |
POST /api/v1/policies/travel/{quoteId}/issue | Issue a quoted travel policy, collecting the premium if payment details are sent |
POST /api/v1/credit-life/policies/{policyId}/loans/prepaid | Cover a batch of loans and pay for it |
POST /api/v1/credit-life/policies/{policyId}/renew/loans/prepaid | Renew a policy's cover period and pay for it |
Each is runnable from its own product guide.
The counterparts that issue without collecting — POST /policies/motor/{quoteId}/issue, POST /policies/motor/instant/issue, POST /policies/{quoteId}/issue, POST /policies/instant/issue, POST /policies/motor/{policyId}/renew and .../extend — leave the premium outstanding for PayLater or external settlement.
Best Practices
- Always generate a unique
referencefor each transaction - Poll transaction status after initiating payment — do not assume immediate success
- Implement webhook handling to receive real-time payment notifications (see Webhooks)
- Store the
referencein your system to reconcile payments
