Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kiwify.com.br/llms.txt

Use this file to discover all available pages before exploring further.

Receiving Webhooks

When you create a subscription via POST /v1/webhooks, Kiwify sends real-time notifications to your registered HTTPS endpoint.

How it works

  1. An event occurs on the account (transfer completed, QR code paid, deposit received, etc.).
  2. The dispatcher sends an HTTP POST to your registered URL.
  3. Your endpoint must respond with HTTP 2xx to acknowledge receipt.
  4. On failure, delivery is retried automatically (duplicates are possible).
Manage subscriptions using the Webhooks endpoints in the API reference. This guide documents what you receive on your server.

Envelope format

All deliveries use the same JSON envelope:
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "CASHOUT.PIX.TRANSFERS.COMPLETED",
  "version": "1.0",
  "data": { },
  "created_at": "2026-05-28T14:30:00Z"
}
FieldDescription
idUUID event identifier. Changes on every retry — do not use for deduplication.
typeConcrete event type (e.g. CASHIN.DEPOSITS.RECEIVED).
versionEnvelope schema version (currently "1.0").
dataEvent payload — structure depends on type.
created_atUTC timestamp (RFC 3339) when the event was generated.

Deduplication

Do not use the envelope id for deduplication — it changes on every retry. Use resource identifiers inside data:
Event typeDeduplication key
Transferstransfer_id + type
QR codesqrcode_id + type
Depositstransaction_id + type
Refundsrefund_id + type
Boletoid + type

Next steps