Statements
Reconcile what you owe. NetApps InsureTech bills the purchases you report as paid, less refunds and your share of the commission, on one statement per period (see Paying for what you sell in the Purchases section).
GET /statementslists them, newest first.GET /statements/{statementId}reads one, with every line it bills and the payments matched to it.- Every billed purchase carries the
statementIdthat billed it and itsmerchantCommissionMinor. - To dispute a statement, use the merchant dashboard.
List your statements
Lists your statements in this environment, newest first. Use it to reconcile what NetApps InsureTech bills you against your own records, and to see what is still due.
status | Meaning |
|---|---|
ISSUED | Billed and waiting for payment. |
PARTIALLY_PAID | Part of it is paid. |
PAID | Paid in full. |
OVERDUE | Not paid in full by its due date. |
DISPUTED | You raised a dispute and support is looking at it. |
CANCELLED | Withdrawn. Nothing is owed on it. |
DRAFT | Being prepared, not yet billed. |
- Each item is a summary. Read one statement with
GET /statements/{statementId}for its lines and the payments matched to it. - Filter with
status. - Test keys read test statements, which hold no real money. Live keys read live statements.
- Lists page by number: send
page(starting at 1) andlimit(rows per page, default 20). Thepaginationobject in the response tells you thetotal, thetotalPagesand whether there is a next page (hasNextPage).
Errors to expect
| Status | Code | Why | What to do |
|---|---|---|---|
| 400 | BAD_REQUEST | status, page or limit is not valid. | Fix the fields named in fieldErrors. |
Authorization
x-api-keyAPI key · headerrequiredThe API key issued to the business, sent as <keyId>:<secret>, for example sk_test_REPLACE_ME:<secret>. The key id prefix selects the environment: sk_test_ keys read and write test data, sk_live_ keys production data.
Headers
X-Request-IdYour own id for this request, echoed on the response and used as the correlationId of any error. Must match ^[A-Za-z0-9._-]{1,64}$; anything else is replaced with a minted req_<uuid>.
Parameters
statusquery · stringdefault: Only statements in this status. A value outside the list is a 400.
pagequery · integerdefault: 1-based page number. Defaults to 1.
limitquery · integerdefault: Rows per page. Defaults to 20.
Responses
200One page of statements.400Bad request. fieldErrors names every offending field.401Unauthorized. The API key is missing, unknown, inactive or wrong.403Forbidden. The key is valid but this business may not use it: read details.reason.429Rate limited. Wait Retry-After seconds.500Server error. Quote the correlationId when you report it.curl -X GET 'https://insure-api.netapps.ng/api/v1/statements'{
"items": [
{
"id": "6716f0c2a9b8e7d6c5b4a391",
"statementNumber": 12,
"environment": "live",
"currency": "NGN",
"cadence": "MONTHLY",
"period": {
"from": "2026-08-31T23:00:00.000Z",
"to": "2026-09-30T22:59:59.999Z"
},
"status": "PARTIALLY_PAID",
"issuedAt": "2026-10-01T06:00:04.112Z",
"dueAt": "2026-10-07T22:59:59.999Z",
"totals": {
"grossMinor": 2787500,
"merchantCommissionMinor": 27875,
"taxMinor": 0,
"dueMinor": 2759625,
"lineCount": 2
},
"paidMinor": 1000000,
"accountNumber": "9932041187",
"bankName": "Wema Bank",
"createdAt": "2026-10-01T06:00:04.112Z"
},
{
"id": "66fc12e0a9b8e7d6c5b4a210",
"statementNumber": 11,
"environment": "live",
"currency": "NGN",
"cadence": "MONTHLY",
"period": {
"from": "2026-07-31T23:00:00.000Z",
"to": "2026-08-31T22:59:59.999Z"
},
"status": "PAID",
"issuedAt": "2026-09-01T06:00:03.871Z",
"dueAt": "2026-09-07T22:59:59.999Z",
"totals": {
"grossMinor": 8075000,
"merchantCommissionMinor": 80750,
"taxMinor": 0,
"dueMinor": 7994250,
"lineCount": 2
},
"paidMinor": 7994250,
"accountNumber": "9932041187",
"bankName": "Wema Bank",
"createdAt": "2026-09-01T06:00:03.871Z"
}
],
"pagination": {
"total": 2,
"page": 1,
"limit": 20,
"totalPages": 1,
"hasNextPage": false,
"hasPrevPage": false
}
}Read one statement
Reads one statement with every line it bills and every payment matched to it. Use it to reconcile line by line: each line names the purchase (purchaseId) and your own reference (transactionId).
What you get back
lines: what was billed.PREMIUMlines bill a policy you sold, a later installment on it or a premium increase.ADJUSTMENTlines credit a refund on a cancellation or a premium decrease, or correct an amount. Treat the set of types as open.merchantCommissionMinoron a line is your share of the commission on it, andamountDueMinoris what the line adds tototals.dueMinor. The lines'amountDueMinoradd up tototals.dueMinor, unless the statement carries a credit note.totals.dueMinor: what you owe, after your share of the commission (totals.merchantCommissionMinor) and any tax withheld.payments: the transfers matched to this statement, oldest first.paidMinoris the sum applied.dispute: the dispute you raised on the merchant dashboard, ornull.creditNote: only when refunds came to more than you owed.totals.dueMinoris then 0 and the statement can bePAID. It shows the credit, what is left of it, the later statements that used it and any payout to you.- A line with
chargeIdbills an installment or a premium change on a purchase:PREMIUMwhen you collected more,ADJUSTMENTwhen the premium went down. ItstransactionIdis the payment reference of that installment or change. - A line of type
CARRIED_CREDITshows credit from an earlier statement taken off this one. ItspurchaseIdiscredit_<n>, where<n>is the number of that earlier statement. - A correction NetApps InsureTech adds is an
ADJUSTMENTline whosepurchaseIdisadj_<uuid>unless it names a purchase.
A statement of another business, or of the other environment, is 404, the same as one that does not exist.
Authorization
x-api-keyAPI key · headerrequiredThe API key issued to the business, sent as <keyId>:<secret>, for example sk_test_REPLACE_ME:<secret>. The key id prefix selects the environment: sk_test_ keys read and write test data, sk_live_ keys production data.
Headers
X-Request-IdYour own id for this request, echoed on the response and used as the correlationId of any error. Must match ^[A-Za-z0-9._-]{1,64}$; anything else is replaced with a minted req_<uuid>.
Parameters
statementIdpath · stringrequireddefault: This API's id for the statement, as GET /statements serves it and as billed purchases carry it in statementId.
Responses
200The statement, with its lines and payments.401Unauthorized. The API key is missing, unknown, inactive or wrong.403Forbidden. The key is valid but this business may not use it: read details.reason.404Not found, or not owned by this business.429Rate limited. Wait Retry-After seconds.500Server error. Quote the correlationId when you report it.curl -X GET 'https://insure-api.netapps.ng/api/v1/statements/{statementId}'{
"statement": {
"id": "6716f0c2a9b8e7d6c5b4a391",
"statementNumber": 12,
"environment": "live",
"currency": "NGN",
"cadence": "MONTHLY",
"period": {
"from": "2026-08-31T23:00:00.000Z",
"to": "2026-09-30T22:59:59.999Z"
},
"status": "PARTIALLY_PAID",
"issuedAt": "2026-10-01T06:00:04.112Z",
"dueAt": "2026-10-07T22:59:59.999Z",
"totals": {
"grossMinor": 2787500,
"merchantCommissionMinor": 27875,
"taxMinor": 0,
"dueMinor": 2759625,
"lineCount": 2
},
"paidMinor": 1000000,
"accountNumber": "9932041187",
"bankName": "Wema Bank",
"createdAt": "2026-10-01T06:00:04.112Z",
"lines": [
{
"type": "PREMIUM",
"purchaseId": "pur_8258cbe045d4",
"transactionId": "order_10293",
"policyNumber": "ACM/MOTOR/2026/000123",
"currency": "NGN",
"grossMinor": 4037500,
"taxWithheldMinor": 0,
"merchantCommissionMinor": 40375,
"amountDueMinor": 3997125
},
{
"type": "ADJUSTMENT",
"purchaseId": "pur_1f0c9a77e2b4",
"currency": "NGN",
"grossMinor": -1250000,
"taxWithheldMinor": 0,
"merchantCommissionMinor": -12500,
"amountDueMinor": -1237500,
"note": "refund on a cancellation"
}
],
"payments": [
{
"transactionId": "txn_7Hq2m9xK",
"amountMinor": 1000000,
"appliedMinor": 1000000,
"receivedAt": "2026-10-03T10:12:44.000Z"
}
],
"dispute": null,
"creditNote": {
"amountMinor": 250000,
"remainingMinor": 100000,
"status": "OPEN",
"carriedTo": [
{
"statementId": "66fc12e0a9b8e7d6c5b4a210",
"amountMinor": 150000,
"carriedAt": "2026-10-01T06:00:04.112Z"
}
],
"payouts": []
}
}
}