Configure session as a withdraw and return calldata
curl --request POST \
--url https://{host}/extern/fe/intent/{intentId}/quote/withdraw \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Publishable-Key: <api-key>' \
--data '
{
"destinationChainId": 8453,
"amount": "<string>"
}
'const options = {
method: 'POST',
headers: {
'X-Publishable-Key': '<api-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({destinationChainId: 8453, amount: '<string>'})
};
fetch('https://{host}/extern/fe/intent/{intentId}/quote/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/extern/fe/intent/{intentId}/quote/withdraw"
payload = {
"destinationChainId": 8453,
"amount": "<string>"
}
headers = {
"X-Publishable-Key": "<api-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"status": "success",
"data": {
"intentId": "8e9f4d67-51ad-49aa-a502-2f569aaf7399",
"type": "DEPOSIT",
"status": "OPEN",
"expiresAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"externalRef": "<string>",
"requestParams": {
"chainId": 8453,
"inputAssetAddress": "0x1234567890abcdef1234567890abcdef12345678",
"eoa": "0x1234567890abcdef1234567890abcdef12345678",
"amount": "<string>"
},
"quoteSummary": {
"originChainId": 8453,
"destinationChainId": 8453,
"inputSymbol": "<string>",
"inputAmount": "<string>",
"inputAmountUsd": "<string>",
"outputSymbol": "<string>",
"outputAmount": "<string>",
"outputAmountUsd": "<string>",
"feesUsd": "<string>"
},
"lockedAt": "2023-11-07T05:31:56Z",
"lockedBy": "0x1234567890abcdef1234567890abcdef12345678",
"txHashes": [
"<string>"
],
"chainIds": [
8453
],
"settledAt": "2023-11-07T05:31:56Z",
"errorMessage": "<string>",
"payload": {
"originChainId": 8453,
"destinationChainId": 8453,
"input": {
"address": "0x1234567890abcdef1234567890abcdef12345678",
"symbol": "<string>",
"amount": "<string>",
"amountFormatted": "<string>",
"amountUsd": "<string>"
},
"output": {
"address": "0x1234567890abcdef1234567890abcdef12345678",
"symbol": "<string>",
"amount": "<string>",
"amountFormatted": "<string>",
"amountUsd": "<string>"
},
"fees": {
"gas": {
"amountUsd": "<string>"
},
"relay": {
"amountUsd": "<string>"
},
"totalUsd": "<string>"
},
"timeEstimate": 1,
"steps": [
{
"kind": "approve",
"description": "<string>",
"to": "0x1234567890abcdef1234567890abcdef12345678",
"data": "<string>",
"value": "<string>",
"chainId": 8453
}
]
}
}
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}Configure session as a withdraw and return calldata
Re-quotes an OPEN session as a withdrawal. With isMaxWithdraw, every source-chain position is redeemed. Cross-chain Relay calldata is embedded in the atomic withdrawal transaction, so a separate bridge step might not appear in the payload.
POST
/
extern
/
fe
/
intent
/
{intentId}
/
quote
/
withdraw
Configure session as a withdraw and return calldata
curl --request POST \
--url https://{host}/extern/fe/intent/{intentId}/quote/withdraw \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Publishable-Key: <api-key>' \
--data '
{
"destinationChainId": 8453,
"amount": "<string>"
}
'const options = {
method: 'POST',
headers: {
'X-Publishable-Key': '<api-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({destinationChainId: 8453, amount: '<string>'})
};
fetch('https://{host}/extern/fe/intent/{intentId}/quote/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/extern/fe/intent/{intentId}/quote/withdraw"
payload = {
"destinationChainId": 8453,
"amount": "<string>"
}
headers = {
"X-Publishable-Key": "<api-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"status": "success",
"data": {
"intentId": "8e9f4d67-51ad-49aa-a502-2f569aaf7399",
"type": "DEPOSIT",
"status": "OPEN",
"expiresAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"externalRef": "<string>",
"requestParams": {
"chainId": 8453,
"inputAssetAddress": "0x1234567890abcdef1234567890abcdef12345678",
"eoa": "0x1234567890abcdef1234567890abcdef12345678",
"amount": "<string>"
},
"quoteSummary": {
"originChainId": 8453,
"destinationChainId": 8453,
"inputSymbol": "<string>",
"inputAmount": "<string>",
"inputAmountUsd": "<string>",
"outputSymbol": "<string>",
"outputAmount": "<string>",
"outputAmountUsd": "<string>",
"feesUsd": "<string>"
},
"lockedAt": "2023-11-07T05:31:56Z",
"lockedBy": "0x1234567890abcdef1234567890abcdef12345678",
"txHashes": [
"<string>"
],
"chainIds": [
8453
],
"settledAt": "2023-11-07T05:31:56Z",
"errorMessage": "<string>",
"payload": {
"originChainId": 8453,
"destinationChainId": 8453,
"input": {
"address": "0x1234567890abcdef1234567890abcdef12345678",
"symbol": "<string>",
"amount": "<string>",
"amountFormatted": "<string>",
"amountUsd": "<string>"
},
"output": {
"address": "0x1234567890abcdef1234567890abcdef12345678",
"symbol": "<string>",
"amount": "<string>",
"amountFormatted": "<string>",
"amountUsd": "<string>"
},
"fees": {
"gas": {
"amountUsd": "<string>"
},
"relay": {
"amountUsd": "<string>"
},
"totalUsd": "<string>"
},
"timeEstimate": 1,
"steps": [
{
"kind": "approve",
"description": "<string>",
"to": "0x1234567890abcdef1234567890abcdef12345678",
"data": "<string>",
"value": "<string>",
"chainId": 8453
}
]
}
}
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}{
"status": "error",
"code": "INTENT_WRONG_STATUS",
"message": "Session must be in OPEN status for this action."
}Authorizations
Account Type publishable key (pk_live_...)
SIWE session JWT issued by POST /auth/verify
Path Parameters
RFC 4122 UUID
Example:
"8e9f4d67-51ad-49aa-a502-2f569aaf7399"
Body
application/json
EVM chain ID
Required range:
x >= 1Example:
8453
Ignored when isMaxWithdraw is true.
Pattern:
^(?:0|[1-9][0-9]*)$Redeems every source-chain position. Cross-chain Relay calldata is embedded in the atomic withdrawal transaction.
Last modified on July 24, 2026
Was this page helpful?