Klump · AsyncAPI Specification

Klump Webhooks

Version

View Spec View on GitHub CompanyPaymentsBuy Now Pay LaterBNPLFintechLendingCheckoutE-CommerceNigeriaAfricaInstalmentsConsumer CreditAsyncAPIWebhooksEvents

AsyncAPI Specification

klump-webhooks.yml Raw ↑
generated: '2026-07-19'
method: searched
source: https://docs.useklump.com/docs/webhook-getting-started
spec_type: Webhooks
asyncapi_published: false
docs:
- https://docs.useklump.com/docs/webhook-getting-started
- https://docs.useklump.com/docs/setting-up-webhook
- https://docs.useklump.com/docs/resend-webhook
summary: Klump publishes no AsyncAPI document. It does document a single webhook
  family - Transaction - carrying three transaction lifecycle events, delivered as
  HTTP POST with a JSON body, HMAC-signed, and retried hourly for 72 hours.
transport:
  protocol: https
  method: POST
  content_type: application/json
  subscriber: A publicly reachable merchant URL registered in the merchant dashboard
    under Settings > API Keys & Webhook. Separate URLs can be registered for the TEST
    and LIVE application states, and each receives only the traffic generated by the
    matching key set.
  localhost: Tunnelling services such as ngrok are supported during development.
channels:
- name: transaction
  description: The only webhook family Klump currently supports.
events:
- name: klump.payment.transaction.initiated
  title: Transaction initiated
  description: Emitted when a transaction is initiated. Klump notes this event is
    informational only and requires no merchant action.
  action_required: false
- name: klump.payment.transaction.successful
  title: Transaction successful
  description: Emitted when a transaction completes successfully. Klump advises
    verifying the transaction via the verification API before releasing value.
  action_required: true
- name: klump.payment.transaction.abandoned
  title: Transaction abandoned
  description: Emitted when a transaction is abandoned. An abandoned transaction can
    later become successful if the shopper returns to pay via the periodic reminder
    email Klump sends, in which case the webhook event changes accordingly.
  action_required: true
headers:
- name: X-Klump-Signature
  description: HMAC signature of the request body, used to verify the call came from
    Klump and was not tampered with.
  example: ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
- name: X-Klump-Webhook-Id
  description: Unique ID of the webhook call. The value is consistent across retries
    and is the intended deduplication key.
  example: 65843e9e-b12d-4120-8d1b-34abea95695e
- name: X-Klump-Webhook-Attempt
  description: Number of the delivery attempt, starting from 1.
  example: '1'
security:
  signature_header: X-Klump-Signature
  scheme: HMAC over the raw request body
  verification_samples_published:
  - javascript
  - php
  guidance:
  - Serve the endpoint over HTTPS with a certificate from a trusted authority.
  - Verify the X-Klump-Signature header on every call.
  - Keep the endpoint highly available.
  - Offload processing to a background job and acknowledge fast.
delivery:
  expected_response: 200 or 201
  retry_interval: hourly
  retry_window: 72 hours
  on_exhaustion: The request is abandoned after 72 hours without a 2xx acknowledgement.
  at_least_once: true
  idempotency_guidance: Klump explicitly instructs merchants to make webhook handling
    idempotent by checking X-Klump-Webhook-Id and refusing to process the same webhook
    twice.
  replay: A webhook can be resent for any past transaction using the Klump-generated
    transaction reference; the resend delivers the most recent state of the event.
    Documented at https://docs.useklump.com/docs/resend-webhook.