Transfers
Fund transfer API — ACH, Wire, SEPA, SWIFT, PIX, SPEI, and crypto across multiple chains.
Transfers
Transfers move funds between accounts, wallets, and external bank accounts. Supports multiple payment rails including ACH, Wire, SEPA, SWIFT, PIX, and SPEI across fiat and crypto.
Create a Transfer
POST /v0/transfersACH to Crypto (Onramp)
{
"amount": "1000.00",
"on_behalf_of": "cus_xyz789",
"source": { "payment_rail": "ach_push", "currency": "usd" },
"destination": {
"payment_rail": "ethereum",
"currency": "usdc",
"to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
}
}Crypto to Wire (Offramp)
{
"amount": "50000.00",
"on_behalf_of": "cus_xyz789",
"source": {
"payment_rail": "polygon",
"currency": "usdc",
"from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
},
"destination": {
"payment_rail": "wire",
"currency": "usd",
"external_account_id": "ext_abc123"
}
}SWIFT International
{
"amount": "100000.00",
"on_behalf_of": "cus_xyz789",
"source": { "payment_rail": "polygon", "currency": "usdc", "from_address": "0x..." },
"destination": {
"payment_rail": "swift",
"currency": "usd",
"external_account_id": "ext_intl123",
"swift_charges": "sha"
}
}SEPA (EUR), PIX (BRL), SPEI (MXN)
All regional rails follow the same pattern — specify the payment_rail and currency:
{ "source": { "payment_rail": "sepa", "currency": "eur" } }
{ "source": { "payment_rail": "pix", "currency": "brl" } }
{ "source": { "payment_rail": "spei", "currency": "mxn" } }Transfer State Lifecycle
awaiting_funds → funds_received → in_review → payment_submitted → payment_processed
↘ canceled
↘ undeliverable → returned / refundedPayment Rails
Fiat Rails
| Rail | Currencies | Description |
|---|---|---|
ach / ach_push / ach_same_day | USD | ACH (standard / push / same-day) |
wire | USD | Domestic wire transfer |
swift | USD | International wire (SWIFT) |
sepa | EUR | SEPA transfer (EU) |
faster_payments | GBP | UK Faster Payments |
pix | BRL | Brazil instant payments |
spei | MXN | Mexico interbank transfer |
Crypto Rails
| Rail | Assets | Description |
|---|---|---|
ethereum | USDC, USDT, DAI, PYUSD | Ethereum mainnet |
polygon | USDC, USDT | Polygon PoS |
arbitrum | USDC, USDT | Arbitrum One |
optimism | USDC, USDT | Optimism |
base | USDC, USDT | Base |
solana | USDC, USDT | Solana |
stellar | USDC | Stellar network |
tron | USDT | Tron network |
Receipt Object
{
"receipt": {
"initial_amount": "1000.00",
"developer_fee": "5.00",
"exchange_fee": "2.50",
"subtotal_amount": "992.50",
"gas_fee": "0.50",
"final_amount": "992.00",
"source_tx_hash": "0xabc123...",
"exchange_rate": "0.91"
}
}SDK Example
const transfer = await lux.transfers.create({
amount: '1000.00',
on_behalf_of: 'cus_xyz789',
developer_fee: '5.00',
source: {
payment_rail: 'ethereum',
currency: 'usdc',
from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F',
},
destination: {
payment_rail: 'ach',
currency: 'usd',
external_account_id: 'ext_abc123',
},
}, {
idempotencyKey: 'unique-key-123',
});