DOKU · AsyncAPI Specification
Doku Webhooks
Version
View Spec
View on GitHub
PaymentsPayment GatewayFintechIndonesiaSEASNAPVirtual AccountE-WalletQRISDirect DebitPayoutsAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-07-17'
method: searched
source: >-
https://docs.doku.com/get-started/manage-business/set-up-integration/webhook-payment-notification
+ https://docs.doku.com/accept-payments/integration-tools/doku-checkout/configure-notifications
type: Webhooks
note: >-
DOKU delivers asynchronous payment results via merchant-registered HTTP
notification (callback) URLs configured per payment method in the DOKU
Dashboard. There is no persistent streaming transport (no WebSocket/SSE), so
no AsyncAPI document is published (see review.yml). This captures the webhook
catalog. Non-SNAP notifications are signed with HMAC-SHA256; the merchant
verifies the Signature header before trusting the callback.
delivery:
transport: HTTP POST (server-to-server callback)
configuration: DOKU Dashboard -> Settings -> Payment Settings -> <method> -> notification URL
signature: HMAC-SHA256 Signature header (non-SNAP); merchant must verify + apply a replay guard
retry: DOKU retries failed notifications; merchant should respond 200 and dedupe on the transaction/invoice reference
events:
- name: virtual-account.payment
trigger: Buyer completes a Virtual Account bank transfer
config: Settings -> Payment Settings -> Virtual Account -> Configure -> notification URL
- name: cards.payment
trigger: Card payment authorized/captured
config: Settings -> Payment Settings -> Cards -> Payment Configuration -> notification URL
- name: ewallet.payment
trigger: e-Wallet (OVO/DANA/ShopeePay/DOKU Wallet) payment completed
config: Settings -> Payment Settings -> e-Wallet -> Configure -> notification URL
- name: qris.payment
trigger: QRIS payment completed
- name: convenience-store.payment
trigger: Convenience store (e.g. Alfamart/Indomaret) payment completed
- name: paylater.payment
trigger: PayLater payment completed
- name: direct-debit.payment
trigger: Direct debit charge completed
- name: digital-banking.payment
trigger: Digital banking payment completed
docs:
- https://docs.doku.com/get-started/manage-business/set-up-integration/webhook-payment-notification
- https://docs.doku.com/accept-payments/integration-tools/doku-checkout/configure-notifications