Skip to main content
POST

Authorizations

Authorization
string
header
required

Bearer authentication header on the format Bearer <API_KEY>.

Headers

Idempotency-Key
string

Optional idempotency key: any string, a UUID v4 is recommended. Resending the same key with a different request body is a conflict. Cached responses include the header X-Idempotent-Cached: true. Keys expire after 24 hours.

Body

application/json

Off-ramp at the market rate when the stablecoin is collected.

destinationId
string<uuid>
required

Destination's unique identifier. The destination must be approved, its customer must have an approved verification, accepted terms of service, an active account in the destination's currency and enough stablecoin balance on the chosen blockchain. The rail and payout currency come from the destination.

Example:

"8be529c1-1f8c-4977-9bca-6a62c47e75b9"

sourceCurrency
enum<string>
required

Transaction's source currency.

Available options:
USDC,
USDT
Example:

"USDC"

sourceAmount
string
required

Transaction's source amount, as a numeric string. Must be at least 50. Returned rounded to 6 decimal places.

Example:

"100.00"

purpose
enum<string>
required

Transaction's purpose. Case-insensitive. PERSONAL_ACCOUNT: transfer to or from the customer's own account (for off-ramps, the destination holder's relationship must be SELF), INVESTMENT: investment, REAL_ESTATE: real estate purchase or rent, TRADE_TRANSACTIONS: payment for goods, TAX: tax payment, LOAN: loan payment or disbursement, BILLS: bill payment, EXPENSES_REIMBURSEMENT: expense reimbursement, PROFESSIONAL_SERVICES: payment for professional services.

Available options:
PERSONAL_ACCOUNT,
INVESTMENT,
REAL_ESTATE,
TRADE_TRANSACTIONS,
TAX,
LOAN,
BILLS,
EXPENSES_REIMBURSEMENT,
PROFESSIONAL_SERVICES
Example:

"PERSONAL_ACCOUNT"

memo
string

Transaction's memo, sent with the payout. Maximum 50 characters.

Maximum string length: 50
Example:

"INV-2026-11-0001"

blockchain
enum<string>

Blockchain network. Accepted values depend on the networks enabled for your project. Case-insensitive. When omitted, your project's default blockchain is used.

Available options:
ETHEREUM,
POLYGON,
BASE,
TRON,
STELLAR
Example:

"POLYGON"

partnerFeeId
string<uuid>

Partner fee's unique identifier.

Example:

"64cd84f0-a99d-422b-82e8-89d3595251b9"

metadata
object

Transaction's metadata. Any JSON object; it is returned as sent in every read and webhook.

Example:

Response

Off-ramp transaction successfully created.

id
string<uuid>

Transaction's unique identifier.

Example:

"171726cd-83f2-4b51-807f-463b17491064"

customerId
string<uuid>

Customer's unique identifier.

Example:

"992f6325-fdd9-410d-803c-2ec0f30e1d74"

type
enum<string>

Transaction's type.

Available options:
OFF_RAMP
Example:

"OFF_RAMP"

request
object

Transaction's request, as resolved by Lumx. For locked rates, the values come from the exchange rate.

state
object

Transaction's current state.

metadata
object

Transaction's metadata, as sent on creation. Empty object when none was sent.

Example:
createdAt
string<date-time>

Creation date and time (UTC).

Example:

"2026-11-03T17:40:39.774Z"

updatedAt
string<date-time>

Last update date and time (UTC).

Example:

"2026-11-03T17:40:40.112Z"