1. Transaction Webhooks
Partner API
  • Getting Started
    • Introduction
    • Authentication
    • Business Use Cases
  • API References
    • Partner Operations
      • Balances & History
        • Get Balances
        • Get Balance History
      • Crypto Deposits
        • Get Crypto Deposit Details
      • Crypto Withdrawal
        • Create Crypto Withdrawal
        • Get Crypto Withdrawal Details
      • Currency Exchange
        • Get Rates
        • Create Lock
        • Create Exchange
        • Get Exchange Details
      • SEPA Deposit
        • Get SEPA Deposit Details
        • Get SEPA Deposit Info
      • SEPA Withdrawal
        • Create a SEPA Withdrawal
        • Get SEPA Withdrawal Details
  • Integration
    • SDKs & Integration Guides
    • Transaction Processing
    • Error Handling
    • Rate Limiting
    • Webhooks
      • Transaction Webhooks
        • Crypto Deposit Webhook
        • Crypto Withdrawal Webhook
        • Exchange Webhook
        • SEPA Deposit Webhook
        • SEPA Withdrawal Webhook
  • Reference
    • Supported Currencies
    • Fees
    • FAQ
    • Changelog
    • Support
  1. Transaction Webhooks

SEPA Withdrawal Webhook

Webhook
POST
SEPA_WITHDRAWAL_UPDATE
This event is emitted on each SEPA withdrawal lifecycle update or execution failure event. A single payout request can produce multiple webhook notifications over time, from initial queuing to final clearing and bank settlement.
Use this webhook as the primary real-time source for tracking outgoing bank transfer progress. The initial API response confirms that the payout request was queued for asynchronous processing. Final execution, compliance checks, banking network settlement, and failure details are reported asynchronously via this webhook.

Payload Variants#

The webhook payload is delivered inside the data object and follows one of two distinct structures:
1.
State Progress Payload: Emitted during normal processing and completion. Contains full transaction context including complete recipient bank details (transactionId, externalId, status, amount, currency, accountHolder, iban, swift, bankName, fee, createdAt).
2.
Failure Payload: Emitted when processing fails (e.g., due to insufficient funds). Contains transactionId and the specific error code in the error string field.

Event Fields Breakdown#

transactionId: Internal partner transaction identifier (UUID).
externalId: External reference identifier for the SEPA withdrawal (UUID).
status: Current processing state of the withdrawal (e.g., started, pending, successful).
amount: Gross fiat withdrawal amount (as a decimal string).
currency: Fiat currency code (EUR).
accountHolder: Full name or corporate name of the recipient.
iban: Destination International Bank Account Number.
swift: Destination bank BIC/SWIFT code.
bankName: Receiving bank name.
fee: Provision/fee deducted for processing the transfer (as a decimal string).
createdAt: ISO 8601 UTC creation timestamp.

Status Lifecycle#

started: SEPA withdrawal request accepted and queued in the pipeline.
pending: Transfer submitted to the banking provider; clearing in progress.
waiting-for-verification: Escalated for internal compliance or manual risk review.
successful: Transfer cleared by the banking network and completed.
unsuccessful / rejected-by-reviewer / banned: Withdrawal failed, bounced, or was rejected during risk review.

Recommended Integration Behavior#

Ledger Finalization: Only mark payouts as finalized in your system once the status reaches successful.
Beneficiary Verification: Recipient details (accountHolder, iban, swift, bankName) are always present in state progress updates, ensuring immediate visibility into payment routing.
Error Handling: When error is present, process the payout rejection immediately without waiting for standard status fields.
Do Not Treat API Acceptance As Final Execution
The initial transfer endpoint response only confirms that the request was queued. Always wait for terminal webhook events (successful or error) or query Get SEPA Withdrawal Details to confirm final banking settlement.

Request

Body Params application/json

Examples

Responses

🟢200Success
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location 'https://your-api-server.com' \
--header 'Content-Type: application/json' \
--data '{
  "type": "SEPA_WITHDRAWAL_UPDATE",
  "data": {
    "transactionId": "b14472f5-6843-4c02-b808-438eedd335d9",
    "externalId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
    "status": "successful",
    "amount": "1500.00",
    "currency": "EUR",
    "accountHolder": "FINTEGENCE S.R.O.",
    "iban": "LT36 3130 0101 0420 3257",
    "swift": "BZENLT22",
    "bankName": "ZEN UAB",
    "fee": "2.50",
    "createdAt": "2026-09-14T08:25:12.456Z"
  }
}'
Response Response Example
{}
Previous
SEPA Deposit Webhook
Next
Supported Currencies
Built with