Skip to navigation

Mark a trade paid

POST /v1/trades/{tradeId}/actions/markPaid/execution
Authorization: Bearer <sessionToken>

Before you call

  • A customer session for the same partner, integration, customer, wallet and chain.
  • Customer BUY; funded escrow in CREATED. Send fiat before marking it paid.

Send no request body. Every call returns a new prepared transaction, and no Idempotency-Key is needed.

Response: unsigned prepared transaction

{
"chainId": 80002,
"from": "0x19e7e376e7c213b7e7e7e46cc70a5dd086daff2a",
"call": {
"to": "0x3333333333333333333333333333333333333333",
"data": "0xad207e1e000000000000000000000000000000000000000000000000000000000000002a",
"value": "0"
},
"escrowId": "42",
"action": "markPaid",
"transaction": {
"preparationId": "preparation_markPaid",
"purpose": "markPaid",
"chainId": 80002,
"from": "0x19e7e376e7c213b7e7e7e46cc70a5dd086daff2a",
"to": "0x3333333333333333333333333333333333333333",
"data": "0xad207e1e000000000000000000000000000000000000000000000000000000000000002a",
"value": "0",
"expiresAt": null
}
}

Errors

409: Action unavailable in the current state

{
"error": {
"code": "CONFLICT",
"numericId": 1004,
"message": "Action is unavailable for this role or trade state. Refresh the trade.",
"requestId": "request_demo",
"details": {
"action": "markPaid",
"chainStatus": 3,
"reason": "INVALID_STATE"
}
}
}

Sign, submit and confirm

  1. Prepare the call shown above. Preparing does not execute the action.
  2. Ask the customer’s registered wallet to sign transaction, keeping its chain, sender, destination, data and value unchanged.
  3. Submit the signed transaction or its hash with the same preparationId and an Idempotency-Key.
  4. Poll the transaction status, then read the trade. The transaction can be confirmed before the trade shows the new status.

Trade actions have no signing deadline (expiresAt is null), but Sinbad checks the trade’s current escrow state and timing when you prepare. If a send is pending or its outcome is unknown, keep tracking it and do not sign another transaction.

The shared route and schema are in the API reference.