# Retrieve transactions

The Business API lets you retrieve the historical transactions on your account.

You can:

- [Retrieve a specific transaction](#retrieve-a-transaction)
- [Filter and retrieve all transactions](#filter-and-retrieve-all-transactions) on your account

## Retrieve a transaction

To get information about a single specific transaction, by default, you provide the transaction ID.

:::warning [Request ID deprecation]
If you also provide `id_type=request_id`, set the `id` field to the request ID from payment creation instead of the transaction ID.

This behavior is deprecated and will be removed in a future release.
To retrieve transactions by their unique transaction ID, use this endpoint.
To retrieve transactions by **request ID**, use the [`GET /transactions`](/docs/api/business#get-transactions) endpoint instead.
:::

To see example requests and responses:

[See the API reference: Retrieve a transaction](/docs/api/business#get-transaction)

## Filter and retrieve all transactions

You can retrieve a full list of the transactions on your Revolut Business account.

The results are sorted by the `created_at` date in reverse chronological order (from newest at the top to oldest at the bottom) and [paginated](#pagination).

:::note [Maximum page size]
The API returns a maximum of 1,000 transactions per request.
:::

To see example requests and responses:

[See the API reference: Retrieve a list of transactions](/docs/api/business#get-transactions)

You can also filter the list of transactions by adding one or more of the query parameters listed below to the URL:

- ![Production]

  ```shell
  curl 'https://b2b.revolut.com/api/1.0/transactions?from=2017-06-01&to=2017-06-10&count=10&account=041c7846-4c5e-44af-b8f6-206f61e9f60a&state=created&state=pending' \
    -H "Authorization: Bearer <your access token>"
  ```

- ![Sandbox]

  ```shell
  curl 'https://sandbox-b2b.revolut.com/api/1.0/transactions?from=2017-06-01&to=2017-06-10&count=10&account=041c7846-4c5e-44af-b8f6-206f61e9f60a&state=created&state=pending' \
    -H "Authorization: Bearer <your access token>"
  ```

| Parameter    | Description                                                                                                                                                                                                                                                                                                                                                                 | Required | Schema        |
|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -------- | ------------- |
| `from`       | The date and time you retrieve the historical transactions from.                                                                                                                                                                                                                                                                                                            | No       | ISO date/time |
| `to`         | The date and time you retrieve the historical transactions to. The default value is the current date and time at which you are calling the endpoint.                                                                                                                                                                                                                        | No       | ISO date/time |
| `account`    | The account ID.                                                                                                                                                                                                                                                                                                                                                             | No       | UUID          |
| `count`      | The number of the historical transactions to retrieve. The maximum number is `1000`. The default number is `100`. Used for [pagination](#pagination).                                                                                                                                                                                                                       | No       | Number        |
| `type`       | The type of the historical transactions to retrieve, which can be `atm`, `card_payment`, `card_refund`, `card_chargeback`, `card_credit`, `charge`, `charge_refund`, `exchange`, `transfer`, `loan`, `fee`, `refund`, `topup`, `topup_return`, `tax`, or `tax_refund`.                                                                                                      | No       | Text         |
| `request_id` | The filter to find transactions related to the specific `request_id` provided with the transaction when it was created.<br/><br/>**If you provide this parameter:**<br/>- You must also specify the `from` date-time<br/>- The search interval must not exceed 14 days<br/>- The `to` parameter defaults to "now"; for `from` older than 14 days, it must also be specified | No       | Text         |
| `state`      | The transaction [state(s)](#transaction-states) to filter by: `created`, `pending`, `completed`, `declined`, `failed`, or `reverted`. To specify multiple states, use this pattern: `state=created&state=pending`.                                                                                                                                                          | No       | Text         |

### Pagination

The `/transactions` endpoint supports time-based pagination. It returns transactions in reverse chronological order (`from` ≤ `created_at` < `to`) limited to the most recent `count` entities. To get the next page of results, make a new request and use the `created_at` date from the last item of the previous page as `to`.

## Transaction states

When a transaction is created successfully, it enters state `created`.
From this state, it can transition into one of the other states.

To understand what each transaction state means, refer to this table:

|                | State in API | State description                                                                                                                                                        |
|----------------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| :104/Success: | `created`    | The transaction has been created and is either processed asynchronously or scheduled for a later time.                                                                   |
| :Time:         | `pending`    | The transaction is pending until it's being processed. If the transfer is made between Revolut accounts, this state is skipped and the transaction is executed instantly. |
| :CheckSuccess: | `completed`  | The transaction was successful.                                                                                                                                          |
|  :Reverted: | `declined`   | The transaction was unsuccessful. This can happen for a variety of reasons, for example, insufficient account balance, wrong receiver information, etc.                  |
| :CrossCircle: | `failed`     | The transaction was unsuccessful. This can happen for a variety of reasons, for example, invalid API calls, blocked payments, etc.                                       |
| :RevertLeft:  | `reverted`   | The transaction was reverted. This can happen for a variety of reasons, for example, the receiver being inaccessible.                                                    |

## What's next

Learn how to [map transaction data](/docs/guides/manage-accounts/accounts-and-transactions/map-transaction-data) to a related transaction or card.