Create onramp order
Quote and order in one call for a Lightning payment into any destination. Hermod checks both phases independently. Enforced quote hits return 403; unhealthy screening controls, enforced invalid subjects or missing address evidence return 503. After order creation, enforced hits or missing/invalid address evidence retain the order in awaiting_approval status for operator review. Hermod service failures and unverified chain coverage log and continue. Log-only mode records results without a Hermod rejection or hold.
curl --request POST \
--url https://orchestration.flashnet.xyz/v1/orchestration/onramp \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"destinationChain": "spark",
"destinationAsset": "USDB",
"recipientAddress": "RECIPIENT_ADDRESS"
}
'const options = {
method: 'POST',
headers: {
'X-Idempotency-Key': '<x-idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
destinationChain: 'spark',
destinationAsset: 'USDB',
recipientAddress: 'RECIPIENT_ADDRESS'
})
};
fetch('https://orchestration.flashnet.xyz/v1/orchestration/onramp', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://orchestration.flashnet.xyz/v1/orchestration/onramp"
payload = {
"destinationChain": "spark",
"destinationAsset": "USDB",
"recipientAddress": "RECIPIENT_ADDRESS"
}
headers = {
"X-Idempotency-Key": "<x-idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"amountMode": "exact_in",
"estimatedOut": "99000000",
"feeAmount": "500000",
"roundingFeeAmount": "0",
"totalFeeAmount": "500000",
"feeBps": 50,
"feeAsset": "USDC",
"route": [
"BTC",
"USDB",
"USDC"
],
"quoteId": "q_7e450ab4-935b-4f8d-a6c4-4987a3cd2831",
"depositAddress": "lnbc1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq9qrsgq357wnc5r2ueh7ck6q93dj32dlqnls087fxdwk8qakdyafkq3yap9us6v52vjjsrvywa6rt52cm9r9zqt8r2t7mlcwspyetp5h2tztugp9lfyql",
"amountIn": "100000",
"expiresAt": "2026-09-12T12:02:00.000Z",
"orderId": "ord_b91bbf90-42dc-4fe3-9b15-1d2c7e19cce6",
"paymentLinks": {
"cashApp": "https://cash.app/launch/lightning/lnbc1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq9qrsgq357wnc5r2ueh7ck6q93dj32dlqnls087fxdwk8qakdyafkq3yap9us6v52vjjsrvywa6rt52cm9r9zqt8r2t7mlcwspyetp5h2tztugp9lfyql"
},
"effectiveSlippageBps": 1000
}{
"orderId": "ord_b91bbf90-42dc-4fe3-9b15-1d2c7e19cce6",
"status": "paused"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Partner API key in the form Authorization: Bearer fn_....
Headers
1Body
Unsupported top-level and refund fields are ignored and returned in ignoredFields.
arbitrum, arc, avalanche, base, bitcoin, bsc, ethereum, hedera, hypercore, hyperevm, lightning, litecoin, monad, monero, optimism, plasma, polygon, robinhood, sei, solana, spark, tempo, ton, tron, xrp, zcash A canonical public asset symbol or a registry asset routing key. TON is a legacy input alias for ton:GRAM only; responses use GRAM.
AAPL, AI, AMD, AMZN, BNB, BONER, BTC, CASHCAT, COIN, COST, DAI, DELTA, DJT, ETH, GLD, GME, GOOGL, GRAM, HIMS, HSUSD, HYPE, IF, LTC, META, MON, MSFT, MSTR, MU, NVDA, OUSD, PIPEDOG, PLTR, POL, PONS, PYUSD, PathUSD, QQQ, RDDT, SHX, SKHY, SLV, SNDK, SOL, SPCX, SPY, STONKBROKER, TENDIES, TRX, TSLA, TSM, UP, USDB, USDC, USDC.e, USDG, USDT, USDe, USD₮0, USO, WBNB, WBTC, WEN, XMR, XO, XPL, XRP, ZEC, cbBTC, tBTC Destination recipient; use the owner address for Solana tokens; sanctioned addresses are rejected.
1Amount in smallest units; exact_out uses the destination asset and whole cents for stablecoins; mutually exclusive with amountFiatUsd.
^[0-9]+$USD amount paid through Cash App or Strike, converted to sats at request time; read current bounds from /v1/orchestration/limits.
^(?:0|[1-9][0-9]*)(?:\.[0-9]{1,2})?$exact_out pins the destination amount and requires whole cents for stablecoins.
exact_in, exact_out Requested delivery mode; fixed applies only to eligible exact_in onramps and is echoed when applied.
variable, fixed Slippage tolerance in basis points, subject to the route minimum.
0 <= x <= 1000SHA-256 hex of your LNURL-pay metadata string. The Lightning invoice carries it as the description hash (h tag) instead of the Cash App memo, for wallets that still verify LUD-06.
^[0-9a-fA-F]{64}$Lightning address or amountless BOLT11 refund invoice; unsupported values appear in ignoredFields, and pre-swap failures without a target report refund_address_missing.
1Lightning refund chain, inferred when omitted; unsupported values appear in ignoredFields.
arbitrum, arc, avalanche, base, bitcoin, bsc, ethereum, hedera, hypercore, hyperevm, lightning, litecoin, monad, monero, optimism, plasma, polygon, robinhood, sei, solana, spark, tempo, ton, tron, xrp, zcash Inline app fees, requiring a server key or dashboard session.
1 - 16 elementsShow child attributes
Show child attributes
Registered affiliate ID for accrued fees, also accepted from client keys.
Registered affiliate IDs or fee overrides; mutually exclusive with appFees, with overrides requiring a server key or dashboard session.
1 - 16 elementsRegistered affiliate ID or { affiliateId, feeBps } override.
1Your own reporting label, such as an integrator ID. The order carries it, and the dashboard filters and groups by it. Self-reported: anyone holding the key that creates the order chooses it.
^[A-Za-z0-9._:-]{1,64}$Response
Quote and order created
shielded Two-minute indicative pricing deadline. Execution reprices after verified receipt and must preserve lockedMinAmountOut.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Exact immutable reviewed token identities frozen by the native quote. Omitted for legacy or invalid snapshots; caller metadata cannot set these pins.
1 - 32 elementsShow child attributes
Show child attributes
Unsigned deposit transfer, returned only with includeCalldata=true on supported EVM sources. No approval is needed. This funds the deposit; it does not execute the swap.
Show child attributes
Show child attributes
Memo or tag required with the deposit when present.
The invoice is amountless. amountIn and estimatedOut price the indicative amount and are rescaled to the amount actually paid.
true exact_in, exact_out fixed Action required when the locked price can no longer be honored.
strict_requote, approval_required Minimum locked destination amount in smallest units.
Quoted network cost in smallest units of networkCostAsset.
Asset used to pay the quoted network cost.
Whether the quoted network cost must be paid.
Itemized network costs and quote-time assumptions.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Unlisted destinations only: the least amount of the token, in its smallest units, the recipient receives when the swap succeeds. Enforced on chain at the recipient.
Unlisted destinations only: what the recipient receives if the swap into the token cannot deliver minAmountOut.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The request's tag; null when none was sent.
Client-key read token for this quote and its order, including private ZeroConf outcomes.
Show child attributes
Show child attributes
Slippage tolerance applied to the order, in basis points.
Names of ignored request fields, including unsupported refundAddress or refundChain values.
Was this page helpful?
curl --request POST \
--url https://orchestration.flashnet.xyz/v1/orchestration/onramp \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"destinationChain": "spark",
"destinationAsset": "USDB",
"recipientAddress": "RECIPIENT_ADDRESS"
}
'const options = {
method: 'POST',
headers: {
'X-Idempotency-Key': '<x-idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
destinationChain: 'spark',
destinationAsset: 'USDB',
recipientAddress: 'RECIPIENT_ADDRESS'
})
};
fetch('https://orchestration.flashnet.xyz/v1/orchestration/onramp', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://orchestration.flashnet.xyz/v1/orchestration/onramp"
payload = {
"destinationChain": "spark",
"destinationAsset": "USDB",
"recipientAddress": "RECIPIENT_ADDRESS"
}
headers = {
"X-Idempotency-Key": "<x-idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"amountMode": "exact_in",
"estimatedOut": "99000000",
"feeAmount": "500000",
"roundingFeeAmount": "0",
"totalFeeAmount": "500000",
"feeBps": 50,
"feeAsset": "USDC",
"route": [
"BTC",
"USDB",
"USDC"
],
"quoteId": "q_7e450ab4-935b-4f8d-a6c4-4987a3cd2831",
"depositAddress": "lnbc1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq9qrsgq357wnc5r2ueh7ck6q93dj32dlqnls087fxdwk8qakdyafkq3yap9us6v52vjjsrvywa6rt52cm9r9zqt8r2t7mlcwspyetp5h2tztugp9lfyql",
"amountIn": "100000",
"expiresAt": "2026-09-12T12:02:00.000Z",
"orderId": "ord_b91bbf90-42dc-4fe3-9b15-1d2c7e19cce6",
"paymentLinks": {
"cashApp": "https://cash.app/launch/lightning/lnbc1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq9qrsgq357wnc5r2ueh7ck6q93dj32dlqnls087fxdwk8qakdyafkq3yap9us6v52vjjsrvywa6rt52cm9r9zqt8r2t7mlcwspyetp5h2tztugp9lfyql"
},
"effectiveSlippageBps": 1000
}{
"orderId": "ord_b91bbf90-42dc-4fe3-9b15-1d2c7e19cce6",
"status": "paused"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}