> For the complete documentation index, see [llms.txt](https://coindisco.gitbook.io/coindisco/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://coindisco.gitbook.io/coindisco/white-label-api/transactions-and-statuses.md).

# Transactions and statuses

Creating a buy or sell link returns a Coindisco `transaction_id`. Store it as the primary reference for status handling and support.

## Retrieve partner transactions

```bash
curl 'https://api.coindisco.com/api/white-label/v1/transactions/' \
  --header 'Partner-Api-Key: pk_test_YOUR_PUBLIC_KEY'
```

Retrieve one transaction:

```bash
curl 'https://api.coindisco.com/api/white-label/v1/transactions/638a68f8-111d-4d0c-b6ab-da6a805c419f/' \
  --header 'Partner-Api-Key: pk_test_YOUR_PUBLIC_KEY'
```

The endpoint is scoped to the widget identified by the key.

## Normalized statuses

| Status                | Meaning                                                           | Terminal |
| --------------------- | ----------------------------------------------------------------- | -------- |
| `started`             | Transaction was created but provider processing has not advanced. | No       |
| `in_progress`         | Payment, verification, transfer, or payout is being processed.    | No       |
| `waiting_for_deposit` | Provider is waiting for the user's crypto deposit in a sell flow. | No       |
| `completed`           | Provider flow completed successfully.                             | Yes      |
| `failed`              | Transaction failed, was rejected, canceled, expired, or refunded. | Yes      |
| `swapping`            | Indirect purchase is in the on-chain swap stage.                  | No       |

`raw_status` contains the provider-specific value. Build business logic on normalized `status`; use `raw_status` for diagnostics and provider-specific messaging.

## Status delivery

Use signed webhooks for updates and transaction retrieval as a reconciliation fallback. Status transitions are not guaranteed to arrive at uniform intervals because each provider has a different lifecycle.
