Documentation Index
Fetch the complete documentation index at: https://docs.yativo.com/llms.txt
Use this file to discover all available pages before exploring further.
Setup
Yativo sends webhook notifications to your registered HTTPS endpoint via HTTP POST whenever a program event occurs. Each request is signed with HMAC-SHA256 so you can verify it genuinely came from Yativo. Register your endpoint at the unified webhook endpoint. Card issuer events and general crypto events share the same service — subscribe to any combination."events": ["*"] to receive all event types. Other management endpoints:
| Method | Path | Action |
|---|---|---|
GET | /v1/yativo-card/webhooks | List all subscriptions |
GET | /v1/yativo-card/webhooks/:webhookId | Get one subscription (returns secret) |
PUT | /v1/yativo-card/webhooks/:webhookId | Update URL, events, or enabled state |
DELETE | /v1/yativo-card/webhooks/:webhookId | Delete subscription |
POST | /v1/yativo-card/webhooks/:webhookId/rotate-secret | Rotate signing secret |
GET | /v1/yativo-card/webhooks/:webhookId/deliveries | Delivery history for one webhook |
GET | /v1/yativo-card/webhooks/deliveries/all | All deliveries across webhooks |
POST | /v1/yativo-card/webhooks/deliveries/:deliveryId/retry | Retry a failed delivery |
Event categories
| Category | Events |
|---|---|
| Master Wallet | Deposits, token swaps, customer funding |
| Customer Funding | Funds received or failed into a customer’s card wallet, balance updates |
| Card Lifecycle | Card created, activated, frozen, unfrozen, voided, lost, stolen, cancelled, deactivated |
| Card Transactions | Authorization, settlement, decline, reversal, refund |
Event reference
| Event | Trigger |
|---|---|
master_wallet.deposit | Funds received into your master wallet |
master_wallet.swap | Token swap submitted (e.g. USD → EUR) |
master_wallet.customer_funded | Master wallet debited to fund a customer |
customer.funded | Customer’s card wallet received funds |
customer.funding.failed | Funding transfer failed (wallet misconfigured, insufficient balance, or network error) |
customer.balance.updated | Customer’s card balance changed (after spend, top-up, or authorization) |
card.created | New card issued to a customer |
card.activated | Card activated |
card.frozen | Card frozen |
card.unfrozen | Card unfrozen |
card.voided | Card voided (permanently disabled) |
card.lost | Card reported lost |
card.stolen | Card reported stolen |
card.cancelled | Card cancelled |
card.deactivated | Card deactivated |
transaction.authorized | Card transaction authorized |
transaction.settled | Transaction settled |
transaction.declined | Transaction declined |
transaction.reversed | Transaction reversed |
transaction.refund.created | Refund created |
Payload structure
All webhook events share a common envelope. Thedata object contains event-specific fields. The event type is also sent in the X-Yativo-Event request header.
Payload examples
master_wallet.deposit
You will receive this event twice for a single deposit: once immediately when funds are detected (processing), and again when settlement is confirmed (settled). The payload shape differs between the two states.
status: "processing" — fired as soon as the incoming deposit is detected.
status: "settled" — fired once the funds are settled into your master wallet.
master_wallet.swap
Fired when a token swap is submitted from your master wallet.
customer.funded
Fired when a customer’s card wallet has been credited. The transfer_id can be looked up via Get Transfer.
customer.funding.failed
Fired when a funding transfer to a customer’s card wallet fails.
master_wallet.customer_funded
Fired alongside customer.funded whenever your master wallet is debited. Includes remaining_balance when the transfer settles immediately; omitted when the balance updates asynchronously.
card.frozen
Fired when a card is frozen, either by your program or by the customer.
The
card_id field in webhook events is the card token identifier. This may differ from the card_id returned by the Get Customer endpoint. Use yativo_card_id as the stable cross-reference between webhook events and API responses.customer.balance.updated
Fired whenever the card provider reports a balance change — after a purchase authorization, settlement, top-up, or reversal. Provides the full balance breakdown so you can update your UI in real time without polling.
transaction.authorized
Fired when a card transaction is authorized at the point of sale. A customer.balance.updated event typically follows immediately.
card.lost
Fired when a card is reported lost.
Signature verification
Every webhook request includes anX-Yativo-Signature header and an X-Yativo-Timestamp header. The event type is also in the X-Yativo-Event header and the unique delivery ID in X-Yativo-Delivery-Id. Verify signature and timestamp before processing the event.
The signature is computed over the raw request body (the exact JSON bytes received), prefixed with the timestamp.
Retry policy
Yativo retries failed webhook deliveries using exponential backoff. Respond with any HTTP2xx status code to acknowledge receipt and prevent retries.
| Attempt | Delay after previous attempt |
|---|---|
| 1 (initial) | — |
| 2 | 1 minute |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
| 6 | 12 hours |
| 7 | 24 hours |
POST /v1/yativo-card/webhooks/deliveries/:deliveryId/retry.
If your endpoint fails 100 consecutive deliveries, Yativo will automatically disable the subscription to protect your program’s event queue. Re-enable it via PUT /v1/yativo-card/webhooks/:webhookId with { "enabled": true } after fixing the issue.
To avoid processing duplicate events, use the top-level
id field (e.g. evt_1747058400000_abc123) as an idempotency key. The X-Yativo-Delivery-Id header carries the delivery record ID (a separate identifier used to retry individual deliveries via the API).
