Skip to main content

Overview

The Yativo Crypto IBAN service provides a dedicated European bank account number (IBAN) that automatically converts incoming EUR bank transfers to cryptocurrency. Designed for users and businesses that want to receive EUR via SEPA and have it settled directly to a crypto wallet. Key benefits:
  • Receive SEPA bank transfers from any European bank
  • Automatic EUR-to-crypto conversion on receipt
  • Independent of the Yativo Card — no card account required
  • Suitable for freelancers, remote workers, and businesses receiving EUR payments
interface IBANOnboardingStatus {
  status: "not_started" | "pending_kyc" | "kyc_submitted" | "kyc_approved" | "iban_requested" | "active" | "rejected";
  iban?: string;
  bic?: string;
  customer_id?: string;
}

interface IBANOptions {
  supported_currencies: string[];
  kyc_methods: string[];
  min_transfer_amount: number;
}

interface InitIBANRequest {
  email: string;
  customer_id?: string;
}

Onboarding Flow

1. Get Options          →  Learn about available IBAN types and requirements


2. Init Onboarding      →  Register email and get an applicant record


3. Submit KYC           →  Verify identity to comply with banking regulations


4. Request IBAN         →  Trigger IBAN provisioning after KYC approval


5. Check Status         →  Poll until IBAN is active and ready to use

Step 1 — Get IBAN Options

Retrieve available IBAN configurations, supported currencies, and requirements.
GET /standalone-iban/options
curl -X GET 'https://crypto-api.yativo.com/api/standalone-iban/options' \
  -H 'Authorization: Bearer YOUR_API_KEY'
{
  "status": "success",
  "data": {
    "supported_currencies": ["EUR"],
    "supported_networks": ["SEPA", "SEPA_INSTANT"],
    "kyc_required": true,
    "kyc_methods": ["sumsub", "direct_docs"],
    "minimum_transfer_amount": 1.00,
    "supported_payout_tokens": ["USDC", "USDT", "DAI"],
    "supported_payout_chains": ["ethereum", "polygon", "solana"],
    "fees": {
      "incoming_transfer_fee": "0.5%",
      "monthly_fee": 0.00
    }
  }
}

Step 2 — Initialize Onboarding

Create an onboarding record to begin the IBAN application.
POST /standalone-iban/onboarding/init
email
string
required
The applicant’s email address.
customer_id
string
Optional. Your internal customer identifier. Use this to link the IBAN record to your own customer database.
curl -X POST 'https://crypto-api.yativo.com/api/standalone-iban/onboarding/init' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "user@example.com",
    "customer_id": "your_internal_customer_id_001"
  }'
{
  "status": "success",
  "data": {
    "onboarding_id": "iban_onb_01HX9KZMB3F7VNQP8R2WDGTAAA",
    "email": "user@example.com",
    "customer_id": "your_internal_customer_id_001",
    "status": "pending_kyc",
    "created_at": "2026-03-25T21:00:00Z"
  }
}

Step 3 — Submit KYC

Submit identity verification information for the IBAN applicant.
POST /standalone-iban/onboarding/kyc
kyc
object
required
KYC information for the applicant.
kyc.method
string
required
KYC method: sumsub (using a KYC applicant token) or direct_docs (manual document review).
kyc.sumsub_token
string
Required if kyc.method is sumsub. The KYC applicant token for the user.
kyc.first_name
string
Required for direct_docs method. Legal first name.
kyc.last_name
string
Required for direct_docs method. Legal last name.
kyc.date_of_birth
string
Date of birth in ISO 8601 format (YYYY-MM-DD). Required for direct_docs.
kyc.nationality
string
ISO 3166-1 alpha-2 country code for nationality. Required for direct_docs.
email
string
Email address (if not already provided during init, or to override).
customer_id
string
Your internal customer identifier. Must match the value used during init if provided.
curl -X POST 'https://crypto-api.yativo.com/api/standalone-iban/onboarding/kyc' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "customer_id": "your_internal_customer_id_001",
    "kyc": {
      "method": "sumsub",
      "sumsub_token": "sumsub_applicant_token_def456ghi"
    }
  }'
{
  "status": "success",
  "data": {
    "customer_id": "your_internal_customer_id_001",
    "kyc_status": "pending",
    "submitted_at": "2026-03-25T21:05:00Z",
    "estimated_review_time": "1-2 business days (direct_docs) or minutes (sumsub)"
  }
}

Step 4 — Request IBAN

Once KYC is approved, request IBAN provisioning.
POST /standalone-iban/iban/request
customer_id
string
Your internal customer identifier. Required if not authenticated with a user-specific token.
payout_token
string
The crypto token to receive converted funds in. Example: "USDC".
payout_chain
string
The chain to receive payouts on. Example: "solana".
payout_address
string
The crypto wallet address to send converted funds to.
curl -X POST 'https://crypto-api.yativo.com/api/standalone-iban/iban/request' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "customer_id": "your_internal_customer_id_001",
    "payout_token": "USDC",
    "payout_chain": "solana",
    "payout_address": "7dRp9qLmKv3xFjNw4aBcYhUeT8sGkZoP2iMnDuWr5Cx"
  }'
{
  "status": "success",
  "data": {
    "customer_id": "your_internal_customer_id_001",
    "iban_request_id": "ibanreq_01HX9KZMB3F7VNQP8R2WDGTBBB",
    "status": "provisioning",
    "estimated_provisioning_time": "1-24 hours"
  }
}
IBAN provisioning is only available after KYC is fully approved. If KYC is still pending, you will receive an error response indicating the KYC requirement.

Step 5 — Check Status

Poll the status endpoint to track the onboarding progress and retrieve IBAN details once active.
GET /standalone-iban/status
customer_id
string
Your internal customer identifier. Required unless using a user-specific bearer token.
curl -X GET 'https://crypto-api.yativo.com/api/standalone-iban/status?customer_id=your_internal_customer_id_001' \
  -H 'Authorization: Bearer YOUR_API_KEY'
{
  "status": "success",
  "data": {
    "customer_id": "your_internal_customer_id_001",
    "overall_status": "active",
    "kyc_status": "approved",
    "iban_status": "active",
    "iban": "DE89370400440532013001",
    "bic": "SSKMDEMMXXX",
    "account_holder_name": "Jane Doe",
    "currency": "EUR",
    "payout_token": "USDC",
    "payout_chain": "solana",
    "payout_address": "7dRp9qLmKv3xFjNw4aBcYhUeT8sGkZoP2iMnDuWr5Cx",
    "activated_at": "2026-03-26T08:00:00Z"
  }
}

IBAN Status Values

StatusDescription
not_requestedIBAN has not been requested yet. Complete KYC first.
pending_kycWaiting for KYC approval before IBAN can be provisioned.
provisioningKYC approved, IBAN is being assigned.
activeIBAN is live and can receive transfers.
suspendedIBAN has been temporarily suspended. Contact support.
closedIBAN has been permanently closed.

KYC Requirements

Identity verification is mandatory for IBAN issuance due to European banking regulations (AML/KYC directives). Accepted documents (direct_docs method):
  • Valid passport
  • National identity card
  • Driver’s license (in supported countries)
  • Proof of address (bank statement, utility bill — must be less than 3 months old)
Sumsub method:
  • Faster processing (often minutes)
  • Requires your platform to integrate with Sumsub
  • All document types supported by your Sumsub configuration are accepted

Receiving Transfers

Once your IBAN is active:
  1. Share your IBAN and BIC with the sender.
  2. Sender initiates a SEPA transfer to your IBAN.
  3. Funds are received and automatically converted to your selected crypto token.
  4. Converted crypto is sent to your configured payout address.
SEPA settlement times:
  • Standard SEPA: 1 business day
  • SEPA Instant: Seconds to minutes (availability depends on sender bank)
You can update your payout address and token preferences at any time by contacting Yativo support or via the account management API. Transfers in transit will use the configuration at the time they are processed.