Payouts to EU
What are the specific requirements for EUR payouts to EU countries via the SEPA rail?
Review these SEPA-specific requirements before initiating EUR payouts. For the general cross-border
payment flow, see Sending Cross-Border Payments.
Supported configurations
SEPA payouts support the following participant types:
- C2C (consumer-to-consumer) — individual customer to individual counterparty
- B2C (business-to-consumer) — business customer to individual counterparty
- B2B (business-to-business) — business customer to business counterparty
One route is available:
bank_account— SEPA Credit Transfer rail, IBAN routing
All participant types are supported on the bank_account route. B2B payouts additionally require
supporting documents (see Supporting documents).
Trading account requirement
EU payouts require a USDC_SOL trading account as the source. Other trading account types
(such as USDC or USDC_NPL) are not supported for EUR payouts.
Verify EUR payout availability
Confirm your bank supports EUR payouts for your participant type and the SEPA route.
Bank configuration requiredContact Cybrid support to enable EUR payouts and configure SEPA as a supported corridor for your bank.
GET /api/banks/{bank_guid}
Authorization: Bearer YOUR_TOKENLook for entries in supported_payout_symbols where:
symbol:EUR-USDorEUR-USDC_SOLcountry_code: the destination SEPA country code (for example,DE,FR,NL)participants_type:C2C,B2C, orB2Broute:bank_account
You can also query prices for a specific SEPA destination country:
GET /api/prices?payout_country_code=DE
Authorization: Bearer YOUR_TOKENIdentity verification requirements
The platform validates all required KYC fields when you create a plan for EUR payouts.
Originator (Customer)
Individual originator (C2C):
name.first,name.lastdate_of_birthaddress.street,address.city,address.country_code
Business originator (B2C, B2B):
name.fulladdress.street,address.city,address.country_codeidentification_numberswith one of:tax_identification_numberemployer_identification_numberbusiness_registration_number
Receiver (Counterparty)
Create the counterparty with the
standard required fields
for the appropriate type (individual or business). The counterparty must be in verified state
before you can create the external bank account and plan.
Individual counterparty (C2C, B2C):
name.first,name.lastaddress.country_code
Business counterparty (B2B):
name.fulladdress.country_code
Purpose of transaction
For SEPA payouts, purpose_of_transaction is required for all participant types. All
standard purpose values are accepted.
Supporting documents
B2B payouts to the EU require at least one supporting document. No specific document type is
mandated, so you can use any supported type: invoice, purchase_order, delivery_slip,
contract, bill_of_lading, or others. C2C and B2C payouts require no supporting documents.
Requirements:
- At least one supporting document is required (B2B only).
- Up to 3 documents per plan.
- Each file must be uploaded with a
typematching the documenttype. - Allowed file formats:
application/pdf,image/jpeg,image/png. - Each file must be no larger than 8 MB, with a filename of 64 characters or fewer.
Upload each file via File Upload and wait for
state: completed before referencing its GUID. For the full supporting_documents field
structure, see
Sending Cross-Border Payments.
External bank account setup
Send a POST request to /api/external_bank_accounts using IBAN routing with payment_rail: SEPA.
Bank account (IBAN)
Uses the recipient's IBAN as the account_identifier with bank_code_type: IBAN. No bank_code
is required when IBAN routing is used.
{
"account_kind": "raw_routing_details",
"name": "SEPA beneficiary account",
"counterparty_bank_account_details": [{
"account_identifier": "DE89370400440532013000",
"bank_code_type": "IBAN",
"payment_rail": "SEPA"
}],
"counterparty_guid": "counterparty_guid",
"customer_guid": "customer_guid",
"asset": "EUR"
}
API versioningCreating external bank accounts with foreign raw routing details requires
Accept-Version: 2025-10-01or later.
For the full account model and field reference, see
Create Foreign Fiat External Bank Accounts.
Validation rules
- IBAN: Must be a valid IBAN per ISO 13616 (for example,
DE89370400440532013000for Germany) - Payment rail: Must be
SEPA
Supported countries
The following countries are currently supported for EUR payouts. The destination bank must hold a
valid IBAN and be reachable via the SEPA Credit Transfer scheme.
| Country | ISO Country Code |
|---|---|
| France | FR |
| Germany | DE |
| United Kingdom | GB |
| Luxembourg | LU |
| Netherlands | NL |
| Poland | PL |
Sandbox testingContact Cybrid support for the recommended test IBAN values to use in the sandbox environment.
Common validation errors
| Error Code | Description |
|---|---|
invalid_destination_account_exception | External bank account not completed or missing IBAN details |
invalid_purpose_of_transaction | Missing or invalid purpose value for SEPA payouts |
invalid_parameter | KYC requirements not met (originator or receiver PII incomplete) |
invalid_asset | Bank does not support EUR payouts for the requested participant type |
invalid_destination_account | IBAN routing details on the external bank account contain inconsistent country codes |
invalid_payment_rail_for_country | Payment rail not supported for the destination country |

