curl --request POST \
--url https://api.example.com/api/v1/balance/payout/quote/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"quoteId": "<string>"
}
'import requests
url = "https://api.example.com/api/v1/balance/payout/quote/submit"
payload = { "quoteId": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({quoteId: '<string>'})
};
fetch('https://api.example.com/api/v1/balance/payout/quote/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "<string>",
"executionContract": {
"mode": "deposit_address",
"requiresExecution": true,
"depositAddress": "<string>",
"depositMemo": "<string>",
"depositAmount": "<string>",
"depositToken": "<string>",
"approval": {
"token": "<string>",
"spender": "<string>",
"amount": "<string>",
"transaction": {
"chainId": 123,
"to": "<string>",
"data": "<string>",
"value": "0x0",
"gasLimit": "<string>"
}
},
"transaction": {
"chainId": 123,
"to": "<string>",
"data": "<string>",
"value": "0x0",
"gasLimit": "<string>"
},
"typedData": {
"domain": {},
"types": {},
"primaryType": "<string>",
"message": {},
"digest": "<string>",
"signingScheme": "eip1271"
},
"hashAlgorithm": "sha256",
"canonicalization": "sorted-json-v1",
"hashArguments": {
"amount": "<string>",
"recipient": {
"rail": "us",
"type": "individual",
"bankAddress": {
"addressLine1": "<string>",
"city": "<string>",
"country": "<string>",
"addressLine2": "<string>",
"state": "<string>",
"postalCode": "<string>"
},
"postalAddress": {
"addressLine1": "<string>",
"city": "<string>",
"country": "<string>",
"addressLine2": "<string>",
"state": "<string>",
"postalCode": "<string>"
},
"accountNumber": "<string>",
"routingNumber": "<string>",
"accountType": "checking",
"iban": "<string>",
"bic": "<string>",
"bankName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"legalName": "<string>",
"phone": "<string>"
},
"idempotencyKey": "<string>",
"paymentReference": "<string>",
"documentIds": [
"<string>"
]
},
"canonicalPayload": {
"routes": [
{
"from": "<string>",
"to": "<string>",
"stable": true,
"factory": "<string>"
}
],
"amount_in": "<string>",
"amount_out_min": "<string>",
"recipient": "<string>",
"token": "<string>",
"chain_id": 123,
"tick_spacing": 123
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Activate payout quote
Activate a payout quote and create pending records. Answers with what the client has to do: a deposit address to fund, a transaction to broadcast, or — when the returned executionContract says requiresExecution — typed data to sign and hand back at /balance/payout/quote/execute, where nothing is placed until then.
curl --request POST \
--url https://api.example.com/api/v1/balance/payout/quote/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"quoteId": "<string>"
}
'import requests
url = "https://api.example.com/api/v1/balance/payout/quote/submit"
payload = { "quoteId": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({quoteId: '<string>'})
};
fetch('https://api.example.com/api/v1/balance/payout/quote/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "<string>",
"executionContract": {
"mode": "deposit_address",
"requiresExecution": true,
"depositAddress": "<string>",
"depositMemo": "<string>",
"depositAmount": "<string>",
"depositToken": "<string>",
"approval": {
"token": "<string>",
"spender": "<string>",
"amount": "<string>",
"transaction": {
"chainId": 123,
"to": "<string>",
"data": "<string>",
"value": "0x0",
"gasLimit": "<string>"
}
},
"transaction": {
"chainId": 123,
"to": "<string>",
"data": "<string>",
"value": "0x0",
"gasLimit": "<string>"
},
"typedData": {
"domain": {},
"types": {},
"primaryType": "<string>",
"message": {},
"digest": "<string>",
"signingScheme": "eip1271"
},
"hashAlgorithm": "sha256",
"canonicalization": "sorted-json-v1",
"hashArguments": {
"amount": "<string>",
"recipient": {
"rail": "us",
"type": "individual",
"bankAddress": {
"addressLine1": "<string>",
"city": "<string>",
"country": "<string>",
"addressLine2": "<string>",
"state": "<string>",
"postalCode": "<string>"
},
"postalAddress": {
"addressLine1": "<string>",
"city": "<string>",
"country": "<string>",
"addressLine2": "<string>",
"state": "<string>",
"postalCode": "<string>"
},
"accountNumber": "<string>",
"routingNumber": "<string>",
"accountType": "checking",
"iban": "<string>",
"bic": "<string>",
"bankName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"legalName": "<string>",
"phone": "<string>"
},
"idempotencyKey": "<string>",
"paymentReference": "<string>",
"documentIds": [
"<string>"
]
},
"canonicalPayload": {
"routes": [
{
"from": "<string>",
"to": "<string>",
"stable": true,
"factory": "<string>"
}
],
"amount_in": "<string>",
"amount_out_min": "<string>",
"recipient": "<string>",
"token": "<string>",
"chain_id": 123,
"tick_spacing": 123
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Body
Request to activate a payout quote.
10How a payout contact relates to the user.
The vocabulary mirrors Swipelux's recipient relationships so the common
values project onto their API unchanged, but this is our own domain type:
SELF marks a first-party payout to the user's own account at another
bank and has no Swipelux counterpart. Providers own that projection — see
SwipeluxRecipients._recipient_relationship — so nothing here depends on
a provider, and no provider enum has to carry a value it cannot accept.
employee, contractor, vendor, subsidiary, merchant, customer, landlord, family, other, self Transfer purpose for offramp transfers.
charity, commercial_investment, corporate_card, credit_card, dividend, family, financial_services, good_sold, goods_bought, government, insurance, intergroup_transfer, intra_group_dividends, information_technology, leasing, loan_charges, merchant_settlement, mobile_wallet, none, non_resident_transfer_between_accounts, pension, personal_expenses, prepaid_cards, professional, rental, resident_transfer_between_accounts, salaries, telecommunications, travel, utility_bill Response
Successful Response
Everything the client needs to execute one quote.
One format for every channel: crypto routes carry deposit / transaction /
order instructions, the banking provider fiat payouts carry the typed data to sign and the
arguments that reproduce the quote hash. canonical_payload pins what was
quoted — the provider payload persisted with a crypto route (/submit
relays from it, never from client input), or the canonical JSON a the banking provider
quote id is hashed from.
Show child attributes
Show child attributes
Was this page helpful?