Business API
Retrieve a list of transactions
api
get
/transactions

Retrieve a list of transactions

Retrieve the historical transactions based on the provided query criteria.

The transactions are sorted by the created_at date in reverse chronological order, and they're paginated. The maximum number of transactions returned per page is specified by the count parameter. 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 the value for the to parameter.

note

The API returns a maximum of 1,000 transactions per request.

note

To be compliant with PSD2 SCA regulations, businesses on the Revolut Business Freelancer plans can only access information older than 90 days within 5 minutes of the first authorisation.

For more details, see the guides: Retrieve transaction data.

Access Token

Each Business API request must contain an authorization header in the following format to make a call: Bearer <your_access_token>.

The access token will be obtained the first time you set up your application and has an expiration of 40 minutes. During setup, a refresh_token will also be obtained which allows to obtain a new access_token.

danger

Never share your client-assertion JWT (JSON web token), access_token and refresh_token with anyone, as these can be used to access your banking data and initiate transactions.

Access tokens can be issued with four security scopes and require a JWT (JSON Web Token) signature to be obtained:

  • READ: Permissions for GET operations.

  • WRITE: Permissions to update counterparties, webhooks, and issue payment drafts.

  • PAY: Permissions to initiate or cancel transactions and currency exchanges.

  • READ_SENSITIVE_CARD_DATA: Permissions to retrieve sensitive card details.

    caution

    If you enable the READ_SENSITIVE_CARD_DATA scope for your access token, you must set up IP whitelisting. Failing to do so will prevent you from accessing any Business API endpoint.

    IP whitelisting means that you must specify an IP or a set of IPs which will be the only IPs from which requests to the API will be accepted. To do so:

    1. In the Revolut Business app, select the corresponding API certificate.
    2. In Production IP whitelist, provide the IP(s) which should be whitelisted, and save.

To configure your JWT and obtain the refresh and first access tokens, complete the following steps:

  1. Sign up for a Revolut Business account
  2. Prepare your Sandbox environment
  3. Make your first API request

Request

Query Parameters
Query Parameters

The date and time you retrieve the historical transactions from, including this date-time. Corresponds to the created_at value of the transaction. Provided in ISO 8601 format.

Used also for pagination. To get back to the previous page of results, make a new request and use the created_at date from the first item of the current page as the value for the from parameter.

Default value: the date-time at which the request is made

The date and time you retrieve the historical transactions to, excluding this date-time. Corresponds to the created_at value of the transaction. Provided in ISO 8601 format. The default value is the date and time at which you're calling the endpoint.

Used also for pagination. To get the next page of results, make a new request and use the created_at date from the last item of the previous (current) page as the value for the to parameter.

The ID of the account

Possible values: <= 1000

Default value: 100

The maximum number of the historical transactions to retrieve per page.

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 the value for the to parameter.

Possible values: [atm, card_payment, card_refund, card_chargeback, card_credit, exchange, transfer, loan, fee, refund, topup, topup_return, tax, tax_refund]

The type of the historical transactions to retrieve.

Response

List of historical transactions retrieved

Response body
Body array

The ID of the transaction.

Possible values: [atm, card_payment, card_refund, card_chargeback, card_credit, exchange, transfer, loan, fee, refund, topup, topup_return, tax, tax_refund]

Indicates the transaction type.

The request ID that you provided previously.

Possible values: [created, pending, completed, declined, failed, reverted]

Indicates the transaction state. Possible values:

  • created: The transaction has been created and is either processed asynchronously or scheduled for a later time.
  • pending: The transaction is pending until it's being processed. If the payment is made between Revolut accounts, this state is skipped and the transaction is executed instantly.
  • completed: The transaction was successful.
  • declined: The transaction was unsuccessful. This can happen for a variety of reasons, for example, insufficient account balance, wrong receiver information, etc.
  • failed: The transaction was unsuccessful. This can happen for a variety of reasons, for example, invalid API calls, blocked payments, etc.
  • reverted: The transaction was reverted. This can happen for a variety of reasons, for example, the receiver being inaccessible.

The reason code when the transaction state is declined or failed.

The date and time the transaction was created in ISO 8601 format.

The date and time the transaction was last updated in ISO 8601 format.

The date and time the transaction was completed in ISO 8601 format. This is required when the transaction state is completed.

The scheduled date of the payment, if applicable. Provided in ISO 8601 format.

The ID of the original transaction that has been refunded.

The information about the merchant (only for card payments).

The name of the merchant.

The city of the merchant.

The category code of the merchant.

Possible values: Value must match regular expression ^[A-Z]{2,3}$

The bank country of the counterparty as the 2-letter ISO 3166 code.

The payment reference.

The legs of the transaction:

  • For transactions between your Revolut accounts, there can be 2 legs, for example, an internal transfer made out of the GBP account and into the EUR account.
  • For transactions in other cases, there is only 1 leg.

The ID of the leg.

The amount of the transaction.

The amount of the transaction fee.

Possible values: Value must match regular expression ^[A-Z]{3}$

ISO 4217 currency code in upper case.

The billing amount for cross-currency payments.

Possible values: Value must match regular expression ^[A-Z]{3}$

ISO 4217 currency code in upper case.

The ID of the account that the transaction is associated with.

The ID of the counterparty account.

Possible values: [self, revolut, external]

Indicates the type of the account.

The ID of the counterparty.

The transaction leg purpose.

The total balance of the account that the transaction is associated with.

The card details (only for card payments).

The masked card number.

The first name of the cardholder.

The last name of the cardholder.

The phone number of the cardholder in the E.164 format.

Was this page helpful?
Loading...