Submit the signature for a prepared escrow action
curl --request POST \
--url https://api.example.com/escrow/{escrowId}/actions/{idempotencyKey}/confirm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"signature": "<string>"
}
'import requests
url = "https://api.example.com/escrow/{escrowId}/actions/{idempotencyKey}/confirm"
payload = { "signature": "<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({signature: '<string>'})
};
fetch('https://api.example.com/escrow/{escrowId}/actions/{idempotencyKey}/confirm', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"deal": {
"id": "<string>",
"status": "draft",
"availableActions": [
"approve"
],
"sender": {
"clientId": "<string>"
},
"receiver": {
"clientId": "<string>"
},
"onchainEscrowUrl": "<string>",
"token": "<string>",
"maxAmount": "500.00",
"authorizedAmount": "500.00",
"capturableAmount": "500.00",
"refundableAmount": "500.00",
"windows": {
"approveBy": "2023-11-07T05:31:56Z",
"holdUntil": "2023-11-07T05:31:56Z",
"refundableUntil": "2023-11-07T05:31:56Z"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"completionConditions": "<string>",
"action": {
"action": "approve",
"idempotencyKey": "<string>",
"status": "awaitingSignature",
"amount": "500.00",
"feeBps": 123,
"transactionHash": "<string>",
"approval": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payload": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}
},
"consistent": true
},
"action": {
"action": "approve",
"idempotencyKey": "<string>",
"status": "awaitingSignature",
"amount": "500.00",
"feeBps": 123,
"transactionHash": "<string>",
"approval": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payload": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}
},
"events": [
{
"name": "<string>",
"transactionHash": "<string>",
"blockNumber": 123,
"amount": "500.00"
}
],
"pollUrl": "<string>"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
}
}Escrow
Submit the signature for a prepared escrow action
Submit the signature for the previously prepared escrow action. The path idempotency key must match the prepared action and makes safe retries return the first result.
POST
/
escrow
/
{escrowId}
/
actions
/
{idempotencyKey}
/
confirm
Submit the signature for a prepared escrow action
curl --request POST \
--url https://api.example.com/escrow/{escrowId}/actions/{idempotencyKey}/confirm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"signature": "<string>"
}
'import requests
url = "https://api.example.com/escrow/{escrowId}/actions/{idempotencyKey}/confirm"
payload = { "signature": "<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({signature: '<string>'})
};
fetch('https://api.example.com/escrow/{escrowId}/actions/{idempotencyKey}/confirm', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"deal": {
"id": "<string>",
"status": "draft",
"availableActions": [
"approve"
],
"sender": {
"clientId": "<string>"
},
"receiver": {
"clientId": "<string>"
},
"onchainEscrowUrl": "<string>",
"token": "<string>",
"maxAmount": "500.00",
"authorizedAmount": "500.00",
"capturableAmount": "500.00",
"refundableAmount": "500.00",
"windows": {
"approveBy": "2023-11-07T05:31:56Z",
"holdUntil": "2023-11-07T05:31:56Z",
"refundableUntil": "2023-11-07T05:31:56Z"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"completionConditions": "<string>",
"action": {
"action": "approve",
"idempotencyKey": "<string>",
"status": "awaitingSignature",
"amount": "500.00",
"feeBps": 123,
"transactionHash": "<string>",
"approval": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payload": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}
},
"consistent": true
},
"action": {
"action": "approve",
"idempotencyKey": "<string>",
"status": "awaitingSignature",
"amount": "500.00",
"feeBps": 123,
"transactionHash": "<string>",
"approval": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payload": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}
},
"events": [
{
"name": "<string>",
"transactionHash": "<string>",
"blockNumber": 123,
"amount": "500.00"
}
],
"pollUrl": "<string>"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The client account to act for, as a cl_… id. Omit it to act as yourself.
Example:
"cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41"
Path Parameters
Pattern:
^(?:esc_)?[A-Za-z0-9._:\-]{1,216}$Required string length:
1 - 128Body
application/json
Response
Successful Response
Latest escrow state after processing the action.
Show child attributes
Show child attributes
Prepared or submitted action.
Show child attributes
Show child attributes
Observed on-chain events for this action.
Show child attributes
Show child attributes
Relative API URL to poll while processing continues.
Was this page helpful?