> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.getsinbad.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.getsinbad.com/_mcp/server.

# Trades and history

> List a customer's trades from your app, or reconcile your records from your server.

Trades appear in these reads only after their funding is confirmed on chain, so they never expose unfunded breakdowns.

## Customer history

Use [`GET /v1/trades`](https://docs.getsinbad.com/api-reference/trades/list-partner-trades) with a customer session to list that customer's trades. Pages hold 20 trades. Pass the `nextCursor` from one response as `after` in the next request.

By default, trades are ordered by when they were funded. With `includePending=true`, they are ordered by when they were created.

## Reconcile from your server

Call [`GET /v1/trades`](https://docs.getsinbad.com/api-reference/trades/list-partner-trades) with your partner secret to recover or reconcile across customers. The credential must permit the `integrationId` you send. Besides `integrationId`, the call accepts `partnerUserId`, `status`, `updatedSince`, `until`, `after` and `limit` (1 to 100). Keep the same filters and the same `until` value on every page of one cursor sequence.

## Read one trade

[`GET /v1/trades/{tradeId}`](https://docs.getsinbad.com/api-reference/trades/get-partner-trade) returns the full trade. Two fields need care:

* `availableActions` lists candidate actions. The real check happens when you prepare an action, so treat it as a hint.
* `paymentInstructions` appears only after funding is confirmed. On a BUY, it shows the merchant account that the customer pays. On a SELL, it shows the customer's own receiving account. See [Buy walkthrough](/buy-walkthrough) and [Sell walkthrough](/sell-walkthrough).

See [Trade lifecycle](/trades) for the statuses.