Depa LogoDocsv1
Webhooks

Webhook Event Catalogue

Every webhook event Depa sends, grouped by topic, with when it fires and what its payload contains.

Each section below is a topic: register a URL for it to receive its events. Every payload has the same shape:

{
  "data": {
    "event": "fiat_payment_received",
    "attributes": { "…": "…" }
  }
}

Failure events marked (error) use an error key instead of data. Amounts are decimal strings unless noted, and timestamp fields are Unix seconds unless noted.


Fiat payments: fiat_payment

Bank transfers in and out of your bank accounts. Card payments also arrive on this topic, with kind: "card", unless you register URLs for card_payment.

EventWhen
fiat_payment_receivedMoney arrived on a bank account and was credited.
fiat_payment_pendingAn outgoing payment was created and queued, or approved after four-eyes review. Also sent for incoming transfers that couldn't be matched to an account yet.
fiat_payment_sentAn outgoing payment left Depa.
fiat_payment_settledA card-funded payment was settled. Only sent when this is enabled for your vault.
fiat_payment_processing_refundA refund of a card-funded payment is being processed.
fiat_payment_failedA payment failed, was rejected or was cancelled. Sent either with the fields below or (error) with a message.

Fields

FieldDescription
fiat_payment_uuidID of the fiat payment.
account_idID of the account.
bank_account_idID of the bank account.
ibanIBAN or account number of the other party.
recipientName of the beneficiary (outgoing) or sender (incoming).
descriptionPayment reference.
amount, currencyAmount and currency.
statusStatus of the payment.
settlement_statusSettlement status, when the rail reports one.
kindbank for bank transfers, card for card-funded payments.
railRail of a bank transfer, for example sepa or swift. Not sent for cards.
identification_uuidYour ID (external_uuid) of the account holder's identification.
timestampWhen the payment was created.
refusal_code, refusal_descriptionWhy the payment was refused. Only when it was.
card_bin, last_fourCard details. Only for card-funded payments.
{
  "data": {
    "event": "fiat_payment_received",
    "attributes": {
      "fiat_payment_uuid": "7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74",
      "bank_account_id": "6d1c9e2a-3f4b-4c8d-a7e6-5b2f0e9d1c47",
      "account_id": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23",
      "iban": "DE89370400440532013000",
      "recipient": "Müller Bürobedarf GmbH",
      "description": "INV-2026-0142",
      "amount": "1250.0",
      "currency": "EUR",
      "status": "confirmed",
      "settlement_status": null,
      "kind": "bank",
      "rail": "sepa",
      "identification_uuid": "016aba24-5d22-4008-b7ed-0c77bbe044c6",
      "timestamp": 1772813114
    }
  }
}

The (error) form of fiat_payment_failed carries fiat_payment_uuid, identification_uuid, description, kind and a message:

{
  "error": {
    "event": "fiat_payment_failed",
    "attributes": {
      "fiat_payment_uuid": "7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74",
      "identification_uuid": "016aba24-5d22-4008-b7ed-0c77bbe044c6",
      "description": "INV-2026-0142",
      "kind": "bank",
      "message": "Payment has not been processed correctly"
    }
  }
}

Card payments: card_payment

Card acquiring and card payment links. This topic is optional: when it has no URLs, these events go to fiat_payment instead.

EventWhen
card_payment_completedA card payment succeeded.
card_payment_failed (error)A card payment was declined or failed.
card_payment_refundedA card payment was refunded, fully or partly.
widget_session_completedA customer paid through a card payment link.
widget_session_failedA card payment through a payment link failed. The link can't be used again.

Card payment fields: card_payment_uuid, account_uuid, amount, currency, status, card_bin, last_four, card_holder_name, trx_uuid (your reference), kind (card) and timestamp (last update). card_payment_failed adds refusal_code, refusal_reason and the 3-D Secure details eci, three_ds_version and ds_transaction_id when available. card_payment_refunded adds refunded_at.

{
  "data": {
    "event": "card_payment_completed",
    "attributes": {
      "card_payment_uuid": "0197a671-4c41-70ac-b9e1-ea60b8c41403",
      "account_uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23",
      "amount": "120.0",
      "currency": "EUR",
      "status": "completed",
      "card_bin": "400000",
      "last_four": "2701",
      "card_holder_name": "Jane Doe",
      "trx_uuid": "01976967-364c-7824-9046-d4dbd50e3daf",
      "kind": "card",
      "timestamp": 1750844190
    }
  }
}

Payment link fields: widget_session_uuid, card_payment_uuid, account_uuid, amount, currency, status (paid or failed), trx_uuid, kind (card) and timestamp.

{
  "data": {
    "event": "widget_session_completed",
    "attributes": {
      "widget_session_uuid": "01a062c8-3c80-71fe-bdc8-f079ebae3fb2",
      "card_payment_uuid": "0197a671-4c41-70ac-b9e1-ea60b8c41403",
      "account_uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23",
      "amount": "250.0",
      "currency": "EUR",
      "status": "paid",
      "trx_uuid": "ord_882910",
      "kind": "card",
      "timestamp": 1772813190
    }
  }
}

Blockchain payments: blockchain_payment

On-chain deposits and payouts.

EventWhen
blockchain_payment_receivedA deposit arrived on a wallet and was credited.
blockchain_payment_enqueuedAn outgoing payment was queued for broadcasting.
blockchain_payment_sentAn outgoing payment was broadcast.
blockchain_payment_confirmedA payment was confirmed.
blockchain_payment_failedA payment failed or was rejected. Sent either with the fields below or (error) with only blockchain_payment_uuid and a message.

Fields: blockchain_payment_uuid, account_id, blockchain_wallet_id, amount, currency, status and client_id (your reference). When available: tx_hash, blockchain_payment_fee_amount and blockchain_payment_fee_currency.

{
  "data": {
    "event": "blockchain_payment_sent",
    "attributes": {
      "blockchain_payment_uuid": "0c4f8a2e-6b1d-4e7a-8f3c-9d5b2a1e7c60",
      "account_id": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23",
      "blockchain_wallet_id": "9a7b3c2d-1e4f-4a6b-8c9d-0e1f2a3b4c5d",
      "amount": "25000.0",
      "currency": "USDC",
      "status": "sent",
      "client_id": "payout-7731",
      "tx_hash": "0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b",
      "blockchain_payment_fee_amount": "0.05",
      "blockchain_payment_fee_currency": "USDC"
    }
  }
}

Blockchain wallets: blockchain_wallet

EventWhen
blockchain_wallet_createdA whitelisted payout wallet (kind: source) was added to an account.

Fields: blockchain_wallet_uuid, account_uuid, address, network, name, kind, timestamp, and memo when the network uses one.

{
  "data": {
    "event": "blockchain_wallet_created",
    "attributes": {
      "blockchain_wallet_uuid": "9a7b3c2d-1e4f-4a6b-8c9d-0e1f2a3b4c5d",
      "account_uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23",
      "address": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
      "network": "ETHEREUM",
      "name": "Treasury cold wallet",
      "kind": "source",
      "timestamp": 1772813114
    }
  }
}

Accounts: account

Account lifecycle, plus several account-level activities.

EventWhen
account_createdAn account was created, for example after its holder was verified.
account_lockedAn account was blocked: trades and payments stop.
account_unlockedA block was lifted.
bank_account_updatedDetails of a bank account changed.
trade_filledA trade executed.
trade_pendingA trade was accepted and is waiting to execute.
trade_non_createdA trade couldn't be placed with the liquidity provider.
circle_payment_completedA local payout completed.

account_created: account_uuid, referral (payment reference), timestamp, external_uuid (your ID of the holder's identification) and bank_account_uuid when the account already has one. Accounts created from a KYB application also include external_kyb, your KYB reference, next to attributes.

{
  "data": {
    "event": "account_created",
    "attributes": {
      "account_uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23",
      "referral": "P2ZRZ5",
      "external_uuid": "016aba24-5d22-4008-b7ed-0c77bbe044c6",
      "timestamp": 1772813114
    }
  }
}

account_locked and account_unlocked: account_uuid, referral, external_uuid, reason (such as fraud, closure or manual) and timestamp. When a compliance case caused the block, account_locked also includes ticket_uuid and ticket_number so you can follow up.

{
  "data": {
    "event": "account_locked",
    "attributes": {
      "account_uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23",
      "referral": "P2ZRZ5",
      "external_uuid": "016aba24-5d22-4008-b7ed-0c77bbe044c6",
      "reason": "fraud",
      "ticket_uuid": "8b3e6f1a-2d9c-4a7e-b1f5-0e4c7d2a9b83",
      "ticket_number": "TKT-00012",
      "timestamp": 1772813114
    }
  }
}

bank_account_updated: id, name, holder_name, kind, swift, currency, account_number (the IBAN or account number), routing_number and created_at (ISO 8601).

trade_filled: id, pair, trade_type, order_type, status, and volume, amount and price as numbers. trade_pending and trade_non_created carry only id and status.

{
  "data": {
    "event": "trade_filled",
    "attributes": {
      "id": "5b9d2e7f-3a1c-4f6b-8e2d-7c0a9f4b1e38",
      "volume": 1000.0,
      "amount": 920.0,
      "price": 0.92,
      "pair": "USDC/EUR",
      "trade_type": "buy",
      "order_type": "market",
      "status": "filled"
    }
  }
}

circle_payment_completed: the payout's quote_id, trx_uuid (your reference), external_id (Depa's transaction reference), source_amount, source_currency, destination_amount, destination_currency, price, iban, recipient, status, the trade_id and fiat_payment_id it created, and timestamp.


Identifications: identification

KYC and KYB verification results.

EventstatusWhen
identification_pendingpendingVerification started or is waiting for the customer.
identification_verifiedverified or approvedVerification passed.
identification_manual_reviewmanual_reviewDepa is reviewing it manually.
identification_retryretry or attentionThe customer needs to resubmit something.
identification_failedfailedVerification failed. message explains why, when available.
identification_rejectedrejectedVerification was rejected.
kyb_verifiedapprovedA KYB application was approved.

Fields: identification_id (your ID for the identification, its external_uuid), status, timestamp (when the identification was created) and, on failures, message. kyb_verified adds kyb_id, the company name and kyb_external_id, your KYB reference.

{
  "data": {
    "event": "identification_failed",
    "attributes": {
      "identification_id": "016aba24-5d22-4008-b7ed-0c77bbe044c6",
      "status": "failed",
      "message": "Document is expired",
      "timestamp": 1772813114
    }
  }
}

Look the identification up with GET /identifications?filter[external_uuid]=….


Open banking: open_banking_transaction_completed

EventWhen
open_banking_transaction_completedAn open banking payment finished.

Fields: open_banking_transaction_uuid, email, recipient (the payer), description, amount, currency, status and timestamp. Here timestamp is an ISO 8601 string, not Unix seconds.


Daily settlement: daily_settlement

EventWhen
daily_settlement_completedA day's card payments were settled into your vault.

Fields: date (YYYY-MM-DD) and amounts_by_currency, the amount settled per currency.


Support tickets: ticket

EventWhen
ticket.createdA ticket was opened.
ticket.status_changedA ticket's status changed.
ticket.new_messageA message was added to a ticket.

ticket.created: ticket_uuid, subject, description, status, priority, category, ticketable_type, ticketable_uuid and created_at. ticket.status_changed: ticket_uuid, ticket_subject, status, previous_status and closed_at. ticket.new_message: ticket_uuid, ticket_subject, ticket_status and a message with uuid, body_preview (the first 200 characters), message_type, has_attachments, author_email and created_at. Ticket timestamps are ISO 8601 strings.

{
  "data": {
    "event": "ticket.new_message",
    "attributes": {
      "ticket_uuid": "8b3e6f1a-2d9c-4a7e-b1f5-0e4c7d2a9b83",
      "ticket_subject": "Incoming SEPA payment not credited",
      "ticket_status": "waiting_customer",
      "message": {
        "uuid": "9e1b4d7a-2c8f-4a6e-b3d0-5f7c1a9e2b48",
        "body_preview": "We've located the transfer. Could you confirm the sender's reference?",
        "message_type": "staff",
        "has_attachments": false,
        "author_email": "support@depa.finance",
        "created_at": "2026-03-06T10:22:41Z"
      }
    }
  }
}

Transaction monitoring: transaction_monitoring

Compliance cases and flags that Depa shares with you, and service blocks.

EventWhen
case.createdA case was opened. Includes its flags.
case.updatedA case's status or priority changed, or flags were added. changes lists what changed.
case.resolvedA case was resolved, with its resolution and summary.
case.message_addedA message was added to the case's ticket.
flag.createdA transaction was flagged.
account.blockedServices were blocked on an account, identification or vault.
account.unblockedServices were unblocked.

Case fields: case_uuid, case_number, status, priority, flags_count and timestamps; case.created adds title, vault_uuid, identification_uuid and a flags list with each flag's uuid, reason, payment_type, payment_uuid and created_at.

Block fields: blockable_type (Account, Identification or Vault), blockable_uuid, services_blocked or services_unblocked, reason, blocked_at or unblocked_at, and identification_uuid. Blocks caused by a case also include case_uuid, case_number, ticket_uuid and ticket_number.

{
  "data": {
    "event": "flag.created",
    "attributes": {
      "flag_uuid": "c1d7e3a9-4b2f-4e8c-9a6d-0f5b3e1c7a28",
      "case_uuid": "a4f9c2e7-8b1d-4c3a-9e6f-2d0b7a5c1e93",
      "case_number": "TM-2026-000031",
      "reason": "high_risk_countries",
      "payment_type": "FiatPayment",
      "payment_uuid": "7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74",
      "identification_uuid": "25f21bf7-54d2-4b47-9db2-af48558df5eb",
      "created_at": 1772813114
    }
  }
}

Manual review: manual_review

EventWhen
manual_review.activatedManual review of payouts was switched on for your organization. Outgoing payouts wait for approval until it's switched off.

Fields: timestamp.

On this page

🍪 We do not track your behaviour or use any cookie on this site.