The merchant's single webhook URL. Paystack POSTs every event type defined
in this document to the same channel; consumers branch on the `event` field
of the payload.
A Dedicated Virtual Account was assigned to a customer.
Content-Type: application/json
DedicatedAccountAssignFailed
Dedicated Virtual Account assignment failed.
Content-Type: application/json
InvoiceCreate
A subscription invoice has been created.
Content-Type: application/json
InvoiceUpdate
A subscription invoice was updated (typically a successful charge).
Content-Type: application/json
InvoicePaymentFailed
A subscription invoice payment failed.
Content-Type: application/json
PaymentRequestSuccess
A payment request was paid.
Content-Type: application/json
PaymentRequestPending
A payment request has been sent to a customer.
Content-Type: application/json
RefundFailed
A refund could not be processed.
Content-Type: application/json
RefundPending
A refund was initiated and is awaiting processor response.
Content-Type: application/json
RefundProcessed
A refund has been successfully processed.
Content-Type: application/json
RefundProcessing
A refund has been received by the processor.
Content-Type: application/json
SubscriptionCreate
A subscription has been created.
Content-Type: application/json
SubscriptionDisable
A subscription has been disabled.
Content-Type: application/json
SubscriptionNotRenew
A subscription has been flagged as non-renewing.
Content-Type: application/json
SubscriptionExpiringCards
Monthly report of subscriptions whose cards are expiring.
Content-Type: application/json
TransferSuccess
A transfer has completed successfully.
Content-Type: application/json
TransferFailed
A transfer attempt failed.
Content-Type: application/json
TransferReversed
A transfer was reversed.
Content-Type: application/json
About AsyncAPI
The AsyncAPI specification describes event-driven APIs the way OpenAPI describes request/response APIs. A channel is the named pipe — a webhook URL, a Kafka topic, a WebSocket route, an MQTT subject — that producers and consumers publish or subscribe to. Each channel carries one or more messages with structured payloads, and an operation declares whether a given party sends or receives on that channel.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.