Skip to main content
POST
/
transactions
/
off-ramp
curl --request POST \ --url https://api.lumx.io/transactions/off-ramp \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data ' { "bankAccountId": "e80d3137-eddd-4791-b9b8-6e36b289f284", "sourceCurrency": "USDC", "sourceAmount": "1000.00", "purpose": "PERSONAL_ACCOUNT" } '
{ "id": "123e4567-e89b-12d3-a456-426614174003", "customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "type": "OFF_RAMP", "request": { "bankAccountId": "e80d3137-eddd-4791-b9b8-6e36b289f284", "sourceCurrency": "USDC", "sourceAmount": "1000.00", "purpose": "PERSONAL_ACCOUNT" }, "state": { "status": "TRANSFERRING_STABLECOIN" }, "metadata": {}, "createdAt": "2024-03-20T15:30:00Z", "updatedAt": "2024-03-20T15:30:05Z" }

Authorizations

Authorization
string
header
required

Bearer authentication header on the format Bearer <API_KEY>.

Headers

Idempotency-Key
string<uuid>

Optional UUID v4 idempotency key. If you resend the same key with a different request body, the API returns a 409 error. Cached responses include the header X-Idempotency-Cached: true. Keys expire after 24 hours.

Body

application/json

Off-ramp using floating exchange rate.

bankAccountId
string<uuid>
required

Bank account's unique identifier.

Example:

"e80d3137-eddd-4791-b9b8-6e36b289f284"

sourceCurrency
enum<string>
required

Transaction's source currency.

Available options:
USDC,
USDT
Example:

"USDC"

sourceAmount
string
required

Transaction's source amount.

Example:

"10000.00"

purpose
enum<string>
required

Transaction's purpose. Note that PERSONAL_ACCOUNT can only be used with SELF relationship bank accounts.

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

"PERSONAL_ACCOUNT"

memo
string

Transaction's memo. Optional reference for the wire transfer.

Example:

"INV-2024-10-1547"

blockchain
enum<string>

Target blockchain for the transaction. If not provided, the project's default blockchain will be used.

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

"POLYGON"

partnerFeeId
string<uuid>

Transaction's partner fee ID. If not provided, partner fees will be zero.

Example:

"123e4567-e89b-12d3-a456-426614174004"

metadata
object

Optional metadata object to attach to the transaction. Accepts any valid JSON object.

Example:
{
"orderId": "ord_789",
"source": "checkout"
}

Response

202 - application/json

Off-ramp transaction started successfully.

id
string<uuid>

Off-ramp operation's unique identifier.

Example:

"123e4567-e89b-12d3-a456-426614174003"

customerId
string<uuid>

Customer's unique identifier.

Example:

"3c90c3cc-0d44-4b50-8888-8dd25736052a"

type
enum<string>

Off-ramp operation's type.

Available options:
OFF_RAMP
Example:

"OFF_RAMP"

request
object
state
object

Off-ramp operation's current state. See examples for more details.

metadata
object

Metadata object attached to the transaction.

Example:
{
"orderId": "ord_789",
"source": "checkout"
}
createdAt
string<date-time>

Creation date and time (UTC).

Example:

"2024-03-20T15:30:00Z"

updatedAt
string<date-time>

Last update date and time (UTC).

Example:

"2024-03-20T15:30:05Z"