Skip to main content
Onboarding has two parts: first set up your organization’s wallets and bank accounts, then onboard your customers by collecting their KYC.

Set up your organization

Before you can create quotes or orders, your organization needs at least one registered wallet and one active bank account. Set these up via the API (shown below), or in the Etherfuse dashboard — wallets (sandbox · production) and bank accounts (sandbox · production).
Wallets and bank accounts here belong to your organization (the parent org). To onboard your customers and their accounts, see Onboard your customers below.
Complete KYB before going to production. We strongly recommend verifying your organization (Know Your Business) with Etherfuse before setting up production accounts. KYB simplifies wallet onboarding by letting you claim ownership at the organization level, can make you eligible for reduced fee tiers, and ensures your accounts are managed under your company’s identity rather than individual credentials. Contact your Etherfuse representative to start the KYB process.

Wallets

1

Register a Wallet — POST /ramp/wallet

2

Check Wallet Status — GET /ramp/wallet/{wallet_id}

3

Delete a Wallet — DELETE /ramp/wallet/{wallet_id}

Bank accounts

Treat production bank account registration as permanent. Mexican banking regulations make it extremely difficult to change or replace a bank account once it has been registered under a given RFC. Double-check the CLABE, RFC, and CURP before submitting in production. Errors may require manual intervention with Etherfuse support and can delay your ability to transact.
STP CLABEs (prefix 646) are not supported. CLABEs starting with 646 belong to STP (Sistema de Transferencias y Pagos), and STP-to-STP transfers are not currently supported. Please use a CLABE from a different bank.
1

Register a Bank Account — POST /ramp/customer/{customer_id}/bank-account

2

Check Bank Account Status — GET /ramp/bank-accounts

Onboard your customers

Your customers complete Know Your Customer (KYC) verification before they can transact — they submit identity data, upload a selfie and a government-issued ID, and sign three agreements (electronic signature, terms and conditions, customer agreement). It works the same in sandbox as in production. You have two ways to collect that data:
ApproachBest ForSection
Hosted UI (Presigned URL)Fastest integration — Etherfuse handles identity collection, document upload, and agreement signing in one hosted pageHosted UI
ProgrammaticWhite-label experience — collect data in your own UI, submit via API, full control over the customer journeyProgrammatic
Start with the Hosted UI if you want the fastest path to testing. You can migrate to Programmatic later without re-onboarding existing customers.Hybrid is also common — use the programmatic API for identity and documents, then redirect the user to the presigned URL for agreements and compliance verification.
KYC Requirements (Production)In production, the following must be submitted for each customer:
  1. Selfie — A photo of the customer’s face
  2. Government-issued identification — A valid ID document (passport, driver’s license, national ID)
  3. Proof of address — Document showing the customer’s current address (utility bill, bank statement)
If the government-issued ID includes the customer’s address (e.g., a driver’s license), it can satisfy both requirements. After all data is submitted, Etherfuse reviews the information for accuracy before approving the customer.In sandbox, you can complete KYC using fake data — no real personal information is required.
How identity is verified. Etherfuse verifies identity with face match + liveness — the selfie is matched against the government-issued ID, plus a liveness check. There’s no single mandated document (e.g. no INE requirement specifically); any valid government ID works. A liveness check is required for Mexican nationals transacting against their own bank account — a SPEI compliance requirement.Production vs. sandbox collection. In production, agreement signing and the liveness check are completed through a minimal Etherfuse UI step that you can embed (iframe) in your app. In sandbox, you can accept agreements programmatically and customers auto-approve — no liveness UI is involved.

Try it live

The tutorial below walks through the KYC flow against a real environment using your API key. It demonstrates the programmatic approach with a hybrid presigned-URL step for agreements; the same shape applies to the pure hosted flow except the customer completes Steps 2–4 in the Etherfuse UI instead of via API. Toggle Sandbox/Production at the top.

Hosted UI

The hosted UI flow is the fastest way to onboard a customer. You generate a presigned URL, redirect the user to Etherfuse’s verification page, and they complete identity verification, document upload, bank account registration, and agreement signing in one session.
Supported blockchains: The blockchain field accepts solana, stellar, base, polygon, or monad. All examples use Solana, but the flow works identically across chains — just pass the appropriate value and a valid public key for that chain.
1

Generate Presigned URL — POST /ramp/onboarding-url

2

Redirect the User

3

Monitor Status

Field naming convention: API responses use snake_case (e.g., presigned_url), while request bodies use camelCase (e.g., presignedUrl). This is consistent across all Etherfuse endpoints.

Programmatic

Programmatic onboarding lets you create a customer’s organization via API and collect identity data in your own UI rather than the Etherfuse-hosted verification page. This is ideal for white-label integrations where the customer never leaves your app.
Supported blockchains: The blockchain field accepts solana, stellar, base, polygon, or monad. All examples use Solana, but the flow works identically across chains.
Two types of auth are used throughout the flow:
  • Steps 1–5 use your API key with the customer_id in the URL path
  • Step 6 uses the presigned URL as the authentication token (no API key)
1

Create Customer Organization — POST /ramp/organization

2

Submit Identity Data — POST /ramp/customer/{customer_uuid}/kyc

3

Upload Documents — POST /ramp/customer/{customer_uuid}/kyc/documents

4

Register Bank Account — POST /ramp/customer/{customer_uuid}/bank-account

5

Generate Presigned URL — POST /ramp/onboarding-url

6

Accept Agreements

7

Monitor Status

Reference