Take payment and buy

You charge your customer yourself, then tell NetApps InsureTech the premium was collected. The insurer issues the policy against that promise, and you settle the premium later on your statement.

1. Charge your customerlink

Use your own payment processor. Charge exactly:

  • the quote's totalMinor, to pay once, or
  • the amountMinor of the quote.document.paymentOptions entry your customer chose, to pay in installments.

Check quote.expiresAt first. An expired quote cannot be bought.

2. Buy the quotelink

curl -X POST https://insure-api.netapps.ng/api/v1/purchases \
  -H "x-api-key: $INSURETECH_API_KEY" \
  -H "Idempotency-Key: 7b9d2c4e-1a3f-4e6b-8d0c-5f2a9e1b3c7d" \
  -H "Content-Type: application/json" \
  -d '{
    "providerId": "66f1c2a9e4b0d3a1c8e7f512",
    "quoteId": "qt_b5e5338547a0",
    "transactionId": "order_10293",
    "customer": {
      "customerRef": "cust_10293",
      "firstName": "Adaeze",
      "lastName": "Okafor",
      "email": "adaeze.okafor@example.com",
      "phone": "+2348012345678"
    },
    "startDate": "2026-10-15",
    "payment": {
      "reference": "PSK_T7Hq2m9xKpL4",
      "processor": "paystack",
      "method": "CARD",
      "amountMinor": 4037500,
      "currency": "NGN",
      "paidAt": "2026-10-14T09:14:30.000Z"
    }
  }'

transactionId is your own reference, such as your order number. It appears on your statement, so use one you can reconcile against.

3. Read the outcomelink

purchase.statusMeaningWhat to do
ISSUEDThe policy exists.Keep policyId and give your customer the receipt.
RECEIVED, PROCESSINGThe insurer has not issued yet.Wait for purchase.completed, or poll GET /purchases/{providerId}/{purchaseId} until policyId appears.
FAILEDThe policy will never be issued.Refund your customer. failureReason says why.

Treat a status you do not recognise as "not issued yet".

4. Report installmentslink

When your customer chose a schedule, purchase.installmentPlan says how many payments there are and how much each one is. The purchase was payment 1. Report each later payment as you collect it:

curl -X POST https://insure-api.netapps.ng/api/v1/purchases/66f1c2a9e4b0d3a1c8e7f512/pur_8258cbe045d4/payments \
  -H "x-api-key: $INSURETECH_API_KEY" \
  -H "Idempotency-Key: 0c5e8a1d-2b4f-4c6a-9e7d-3f1b5a9c2e8d" \
  -H "Content-Type: application/json" \
  -d '{
    "installmentNumber": 2,
    "payment": {
      "reference": "PSK_U8Jr3n0yLqM5",
      "processor": "paystack",
      "amountMinor": 30730,
      "currency": "NGN",
      "schedule": "MONTHLY",
      "paidAt": "2026-11-14T09:14:30.000Z"
    }
  }'

What you owelink

Every purchase and installment you report is billed on your next statement. Settle your statement explains how.

Nextlink

Receive webhooks so you hear about issued policies, renewals and claims without polling.