Skip to main content
The submission path depends on the executionMode and submitEndpointRequired in the order response.

Escrow Fill Submission

The transaction of an escrow fill (async) is complete after the user signs. The app sends it to Solana through its own RPC and tracks it as in Track an Escrow Fill.

Direct Fill Submission

A response with submitEndpointRequired: true goes to the submit transaction endpoint. Any other response goes through the app’s own RPC. Point the app’s send call at the endpoint and pass the API key in the x-api-key header; it returns the transaction’s signature.

Submit Endpoint Differences from a Solana RPC

  • The transaction must be the one /order returned plus the user’s signature (and the sponsor’s, when the request sets one). The endpoint rejects a transaction whose terms were changed.
  • The endpoint serves sendTransaction only, and ignores configuration fields other than encoding.
  • The returned signature is not yet confirmed, so the app tracks the transaction onchain.

Submit Endpoint Errors

Errors are JSON-RPC error objects in an HTTP 200 response, as on a Solana RPC. sendRawTransaction throws with the error message only. To read error.code and error.data.reason, the app posts the request itself:

Submit Endpoint Rejection Reasons

After a rejection, the app calls the order endpoint again and the user signs the new transaction.

Submit Endpoint HTTP Status Codes