Z Zise Developers 简体中文
Card Issuance › Webhook

Card Withdrawal Credited

Emitted when card funds have been returned to the member wallet and ledger settlement is complete.

Event Types

EventWhen Emitted
card.withdraw.completedCard funds returned to the member wallet

Delivery Contract

Event payloads contain only IDs and status

There are no amounts, asset codes, card number fragments or risk-control reasons. This is a security boundary: the webhook endpoint is your service, whose transport and storage we cannot guarantee. The GET /v1/<resource>/{id} endpoint applies API key, scope and on-behalf-of checks. Fetch details using data.id; do not use webhook payloads as the source of amounts for your ledger.

Event Details

card.withdraw.completed Card funds returned to the member wallet
When Emitted

Emitted when funds from POST /v1/cards/{id}/withdrawals have returned from the card to the wallet and the ledger is settled. A shared-limit card may already be completed at 201, but this event is still sent. 201 does not mean there will be no event; rely on this event or retrieve the card balance again. Automatic returns caused by card closure also emit it. ⚠ This is unrelated to withdrawal.order.completed, which covers member-initiated on-chain withdrawals. data.id is the bare UUID of the card withdrawal; the public API response uses cwd_<uuid>. There is no single-order retrieval endpoint. Use the card ID with GET /v1/cards/crd_<id> to check the balance.

Payload
{
  "event_id": "evt_9c2e1b4a7d854f0a8b3c6e1d4f7a90b2",
  "event_type": "card.withdraw.completed",
  "created_at": "2026-09-09T03:56:58Z",
  "merchant_id": "acme",
  "livemode": true,
  "data": {
    "object": "card_withdrawal",
    "id": "c0d94014-40c5-4222-8d6b-795bb5c6f1f2",
    "external_member_id": "u_88123",
    "status": "completed",
    "status_version": 2
  }
}

Signature Verification

The signature verification procedure is the same for all events. See Webhook Overview; use the Signature Debugger to compare signing strings character by character.