1. Webhook Events
Kutanapay Merchant API
  • Getting Started
  • Authentication
  • Use the API in your application
  • Webhooks
    • Webhooks Events
  • Merchant Checkout
    • Create checkout
      POST
    • List checkouts
      GET
    • Get checkout
      GET
    • Cancel checkout
      POST
    • Create checkout button embed session
      POST
  • Webhook Events
    • Checkout created
    • Checkout paid
    • Customer says they paid
    • Checkout approved
    • Checkout rejected
    • Checkout failed
    • Checkout timed out
    • Checkout expired
    • Checkout refunded
    • A second collection arrived
    • Test event
  • Schemas
    • RequestBodies
      • CheckoutEvent
    • DetailError
    • WebhookEnvelope
    • CheckoutEventData
  1. Webhook Events

Checkout paid

Webhook
POST
checkout.paid
The mobile money prompt was approved, or the wallet debit completed. Fulfil the order on this event.

Request

Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200
Any 2xx marks the delivery as successful. The response body is stored (first 1000 characters) and otherwise ignored.
This response does not have a body.
⚪default
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://your-api-server.com' \
--header 'X-Webhook-Signature: sha256=5d41402abc4b2a76b9719d911017c5925d41402abc4b2a76b9719d911017c592' \
--header 'X-Webhook-Event: checkout.paid' \
--header 'X-Webhook-Idempotency-Key: 3b1f6c2e-8a4d-4f7b-9c1e-2d5a6b7c8d9e' \
--header 'User-Agent;' \
--header 'Content-Type: application/json' \
--data-raw '{
    "version": "v1",
    "event_type": "checkout.paid",
    "timestamp": "2026-03-26T12:41:07.512345Z",
    "idempotency_key": "3b1f6c2e-8a4d-4f7b-9c1e-2d5a6b7c8d9e",
    "merchant_id": "7a9c2e4b-1d3f-4a6b-8c0e-5f2a1b3c4d5e",
    "data": {
        "id": "c4e8b1a2-9f3d-4e7a-b6c5-1d2e3f4a5b6c",
        "payment_reference": "PAY-K7M2Q9X4",
        "checkout_url": "https://app.kutanaafrica.com/public/checkouts/PAY-K7M2Q9X4",
        "amount": 150,
        "currency_code": "GHS",
        "status": "paid",
        "customer_email": "customer@example.com",
        "customer_name": "Ama Mensah",
        "customer_phone": "+233200000000",
        "customer_phone_editable": false,
        "description": "Order #ORD-7842",
        "payment_method": "mobile_money",
        "telco": "MTN",
        "expires_at": "2026-03-27T12:30:00",
        "paid_at": "2026-03-26T12:41:05",
        "created_at": "2026-03-26T12:30:00",
        "meta_data": {
            "embed": {
                "source": "checkout_button",
                "signed": {
                    "order_id": "ORD-7842",
                    "plan": "pro"
                }
            }
        }
    }
}'
Modified at 2026-10-13 22:36:35
Previous
Checkout created
Next
Customer says they paid
Built with