Enable your customers to receive payments worldwide through local payment rails. You choose which currencies each customer should have an account in. To receive a payment, you create an on-ramp transaction with the exact amount of the expected deposit. Lumx returns rail-specific payment details; when the deposit matches, the funds are converted to stablecoin and credited to the customer’s wallet. See Coverage for the supported currencies and rails.Documentation Index
Fetch the complete documentation index at: https://docs.lumx.io/llms.txt
Use this file to discover all available pages before exploring further.
Step 1: Generate your API key
Head over to dashboard.lumx.io. Once logged in, generate a new API key and store it securely. See Authentication for details.Step 2: Create a customer with the accounts you need
Send aPOST /customers request including an accounts array with the currencies you want to provision. Each currency triggers a virtual account that enters verification alongside the customer.
Request
Response
The
wallets array is only returned once the customer’s verification status is APPROVED. Subscribe to the customer.approved webhook or call Read a customer to retrieve wallets after approval.Step 3: Collect ToS acceptance and KYC
Before the customer can transact, they must accept Lumx’s terms of service and complete identity verification. Generate a ToS acceptance link and share it with the customer:Request
Response
verification.link returned at customer creation so they can complete KYC. See Individual verification or Business verification for the full flow.
Step 4: Wait for accounts to activate
Once the customer is approved, each requested account is provisioned and goes through its own verification.| Status | Description |
|---|---|
PROVISIONING | Account is being provisioned and verified |
RFI | Additional information is required to continue verification |
ACTIVE | Account is verified and can receive funds |
CLOSED | Account is permanently closed |
account.active webhook to know the moment an account is ready to receive funds. See Webhooks for the full event list.
account.active event
Step 5: Create an on-ramp for each expected deposit
To receive a payment in any of the customer’s provisioned currencies, create an on-ramp transaction with the exact amount that will be deposited. The response includes rail-specific payment details: a PIXbrCode, a SPEI CLABE, wire instructions, or an IBAN. Share those details with the depositor; when the matching amount lands, Lumx converts the fiat to stablecoin and credits the customer’s wallet.
Each deposit must be matched to an on-ramp transaction created in advance with the exact amount.
- USD (ACH)
- BRL (PIX)
- MXN (SPEI)
- EUR (SEPA)
- USD (SWIFT)
Request
state.payment with the rail-specific details to share with the depositor (PIX brCode, SPEI clabe, ACH/wire accountNumber + routingNumber, SEPA/SWIFT iban + bic). Subscribe to onramp.success to know the moment the deposit lands and the wallet is credited. See Transactions for the on-ramp lifecycle.
Related resources
Accounts
Understand virtual fiat accounts and their lifecycle.
Coverage
Supported currencies, rails and countries.
Webhooks
Subscribe to account and customer events.
Accounts API
Full API reference for accounts.