Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Merchant Report runs API
version: '2026-04-20'
description: 'Welcome to the Revolut Merchant API - your solution to managing the core aspects of e-commerce and accepting online payments. Whether you''re a startup, a growing business, or an established enterprise in the e-commerce industry, our API helps you streamline your operations.
As a Revolut Business customer with a Merchant Account, you can use the
Merchant API to leverage the following features:
- [Order management](https://developer.revolut.com/docs/api/merchant#tag-orders)
- [Customer management](https://developer.revolut.com/docs/api/merchant#tag-customers)
- [Payment management](https://developer.revolut.com/docs/api/merchant#tag-payments)
- [Subscription management](https://developer.revolut.com/docs/api/merchant#tag-subscriptions)
- [Payout management](https://developer.revolut.com/docs/api/merchant#tag-payouts)
- [Dispute management](https://developer.revolut.com/docs/api/merchant#tag-disputes)
- [Reporting analytics](https://developer.revolut.com/docs/api/merchant#tag-report-runs)
- [Webhook management](https://developer.revolut.com/docs/api/merchant#tag-webhooks)
- [Location management](https://developer.revolut.com/docs/api/merchant#tag-locations)
... and more.
### API versions
:::warning
We highly recommend using versioning in your API calls. If you don''t provide a version header on the operations where it''s required, you will receive an error response.
:::
The Merchant API uses request header versioning. Where it is required you need to use the `Revolut-Api-Version` header parameter to specify an API version. Each request, where it is indicated in the API specification, must contain a version header in the following format:
```
''Revolut-Api-Version: 2026-04-20''
```
:::info
For more information, see: [API versions](https://developer.revolut.com/docs/guides/merchant/reference/versioning/api-versions)
:::
### Test the Merchant API
You can test the Merchant API in Postman by forking this collection:
[](https://www.postman.com/revolut-api/workspace/revolut-developers/overview)'
contact: {}
servers:
- description: Production server (uses live data)
url: https://merchant.revolut.com
- description: Sandbox server (uses test data)
url: https://sandbox-merchant.revolut.com
security:
- Api-Key: []
tags:
- name: Report runs
description: 'Use **Report runs** operations to generate CSV reports of your Merchant account transactions. Choose from the following report types based on your use case:
| Report type | Description |
| ----------- | ----------- |
| `custom_report` | Settled and processing transactions with a configurable set of columns. |
| `settlement_report` | All settled transactions, with a configurable set of columns. |
| `payments_report` | All payments, including failed and declined ones. |
| `payout_statement_report` | All transactions that contributed to a specific payout. |
| `icpp_fee_breakdown_report` | IC++ fee components broken down per transaction for a specific IC++ charge. |
:::info
For more information about how to generate CSV reports, see: [Create CSV reports of transactions](https://developer.revolut.com/docs/guides/merchant/monitor-and-observe/reports-reconciliation).
:::'
paths:
/api/report-runs:
parameters:
- $ref: '#/components/parameters/Authorization'
post:
summary: Create a report run
operationId: createReportRun
description: "Start generating a report of all transactions that match the filter and options specified in the request body.\n\nUse the returned `report_run_id` and the [Retrieve report run details](https://developer.revolut.com/docs/api/merchant#retrieve-report-run) operation to check the status of the generation.\n\nAfter generation is done, use the [Download report file](https://developer.revolut.com/docs/api/merchant#download-report-file) operation to retrieve the CSV. The `file_url` in the completed report run object is the request URL for that endpoint and requires the same authorisation as any other Merchant API request. \n\n### Report types\n\nThe table below helps to choose the right report type for your use case:\n\n| Report type | What it covers |\n| ----------- | -------------- |\n| `custom_report` | Settled and processing transactions with configurable columns |\n| `settlement_report` | All settled transactions, with a configurable set of columns |\n| `payments_report` | All payments including failed and declined ones |\n| `payout_statement_report` | All transactions contributing to a specific payout |\n| `icpp_fee_breakdown_report` | IC++ fees per transaction for a specific IC++ charge |\n\n### IDs across report types\n\nEach report type uses a different primary ID, depending on which system the data comes from:\n\n| ID column | System | Report types |\n| --------- | ------ | ------------ |\n| `payment_id`, `id` | **Acquiring system** - identifies a payment attempt | `payments_report`, `icpp_fee_breakdown_report` |\n| `transaction_id` | **Core ledger** - identifies the settlement entry created when a payment is captured | `settlement_report`, `payout_statement_report`, `custom_report` |\n| `order_id` | **Both systems** - bridges the acquiring and ledger perspectives | `settlement_report`, `payments_report`, `payout_statement_report`, `custom_report` |"
requestBody:
content:
application/json:
schema:
discriminator:
propertyName: type
mapping:
settlement_report: '#/components/schemas/Report-Run-Settlement-Report'
custom_report: '#/components/schemas/Report-Run-Custom-Report'
payments_report: '#/components/schemas/Report-Run-Payments-Report'
payout_statement_report: '#/components/schemas/Report-Run-Payout-Report'
icpp_fee_breakdown_report: '#/components/schemas/Report-Run-Icpp-Report'
oneOf:
- $ref: '#/components/schemas/Report-Run-Settlement-Report'
- $ref: '#/components/schemas/Report-Run-Custom-Report'
- $ref: '#/components/schemas/Report-Run-Payments-Report'
- $ref: '#/components/schemas/Report-Run-Payout-Report'
- $ref: '#/components/schemas/Report-Run-Icpp-Report'
examples:
custom_report:
summary: Custom report
value:
filter:
from: '2020-01-01T00:00:00Z'
to: '2020-01-02T00:00:00Z'
entity_types:
- payment
entity_states:
- completed
- processing
format: csv
type: custom_report
options:
timezone: Europe/London
columns:
- transaction_id
- amount
- currency
- metadata.custom_attribute
settlement_report:
summary: Settlement report
value:
filter:
from: '2020-01-01T00:00:00Z'
to: '2020-01-02T00:00:00Z'
entity_types:
- payment
format: csv
type: settlement_report
payments_report:
summary: Payments report
value:
filter:
from: '2020-01-01T00:00:00Z'
to: '2020-01-02T00:00:00Z'
entity_states:
- completed
- failed
- declined
format: csv
type: payments_report
payout_statement_report:
summary: Payout statement report
value:
filter:
payout_id: a830020e-090c-4717-836d-37941a27ad12
format: csv
type: payout_statement_report
icpp_fee_breakdown_report:
summary: IC++ fee breakdown report
value:
filter:
icpp_charge_id: 41d6c699-744a-4994-91c0-9227539c587f
format: csv
type: icpp_fee_breakdown_report
responses:
'201':
description: Report run created, report started generating
content:
application/json:
schema:
$ref: '#/components/schemas/Report-Run'
examples:
report_run_processing:
summary: Report run processing
value:
report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
status: processing
report_run_completed:
summary: Report run completed, report file ready
value:
report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
status: completed
file_url: https://merchant.revolut.com/api/report-runs/d6f6ef64-f668-4e64-8967-1cdf8afb2561/file
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Report runs
/api/report-runs/{report_run_id}:
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/Report-Run-Id'
get:
summary: Retrieve a report run
operationId: retrieveReportRun
description: "Retrieve details of a report run, based on the `report_run_id`. \n\nUse this method to check the status of a report run.\n\nIf a report run's `status` is `completed`, the report file can be downloaded using the `file_url` for 24 hours after report generation finishes.\n\nOnce that 24-hour window elapses, the report run remains retrievable but transitions to `expired`, and the file can no longer be downloaded."
responses:
'200':
description: Report run found
content:
application/json:
schema:
$ref: '#/components/schemas/Report-Run'
examples:
report_run_processing:
summary: Report run processing
value:
report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
status: processing
report_run_completed:
summary: Report run completed
value:
report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
status: completed
file_url: https://merchant.revolut.com/api/report-runs/d6f6ef64-f668-4e64-8967-1cdf8afb2561/file
report_run_expired:
summary: Report run expired
value:
report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
status: expired
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Report runs
/api/report-runs/{report_run_id}/file:
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/Report-Run-Id'
get:
summary: Download report file
operationId: downloadReportFile
description: 'Use this endpoint to download the generated report file.
A generated report file is available for 24 hours after report generation finishes. After that, the report run becomes `expired` and the file can no longer be downloaded.
The response is a raw `text/csv` file. The first row contains the column headers. The columns included depend on the report type used when creating the report run, and the `options.columns` list if specified.
### IDs across report types
Revolut uses two separate ID systems across report types:
| ID column | System | Report types |
| --------- | ------ | ------------ |
| `payment_id`, `id` | **Acquiring system** - identifies a payment attempt | `payments_report`, `icpp_fee_breakdown_report` |
| `transaction_id` | **Core ledger** - identifies the settlement entry created when a payment is captured | `settlement_report`, `payout_statement_report`, `custom_report` |
| `order_id` | **Both systems** - bridges the acquiring and ledger perspectives | `settlement_report`, `payments_report`, `payout_statement_report`, `custom_report` |
:::tip
A payment and its resulting ledger transaction represent the same event but have **different UUIDs**. To reconcile `payments_report` data against `settlement_report` data, join on `order_id`.
:::
Use the schema selector below to see the available columns for each report type.'
responses:
'200':
description: OK
content:
text/csv:
schema:
oneOf:
- $ref: '#/components/schemas/Report-Run-Csv-Settlement'
- $ref: '#/components/schemas/Report-Run-Csv-Custom'
- $ref: '#/components/schemas/Report-Run-Csv-Payments'
- $ref: '#/components/schemas/Report-Run-Csv-Payout'
- $ref: '#/components/schemas/Report-Run-Csv-Icpp'
examples:
settlement_report:
$ref: '#/components/examples/Res-Settlement-Report'
custom_report:
$ref: '#/components/examples/Res-Custom-Report'
payments_report:
$ref: '#/components/examples/Res-Payments-Report'
payout_statement_report:
$ref: '#/components/examples/Res-Payout-Report'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Report runs
components:
examples:
Res-Settlement-Report:
summary: Settlement report
value: 'transaction_id,order_id,original_order_id,started_date,updated_date,completed_date,payment_created_date,payment_captured_date,type,state,description,merchant_order_ext_ref,customer_id,amount,currency,settlement_amount,settlement_currency,payment_method,fee_amount,fee_currency,processing_fee_amount,processing_fee_currency,browser_url,location_id
67f66fa6-200c-aaef-8708-cb78366f8a30,67f66f41-3022-a623-827e-e0616c0d04e7,67f66f41-3022-a623-827e-e0616c0d04e7,2025-04-09T13:01:26.288638Z,2025-04-10T13:02:09.843018Z,2025-04-10T13:02:09.837719Z,2025-04-09T13:01:26.186Z,2025-04-10T13:02:09.837719Z,SETTLEMENT,COMPLETED,Summer hat,ORD-2025-0042,,100.00,GBP,99.00,GBP,CARD,1.00,GBP,1.00,GBP,https://sandbox-checkout.revolut.com/payment-link/1ae44a1c-3ea8-47ac-b736-7d7d4c992bb4,
67f66fb7-300d-bbff-9819-dc89477a9b41,67f67052-4133-b734-938f-f1727d1e15f8,67f66f41-3022-a623-827e-e0616c0d04e7,2025-04-10T09:10:00.000000Z,2025-04-10T09:12:00.000000Z,2025-04-10T09:12:00.000000Z,,,REFUND,COMPLETED,Refund for Summer hat,ORD-2025-0042-R1,,25.00,GBP,-25.00,GBP,CARD,0.00,GBP,0.00,GBP,https://sandbox-checkout.revolut.com/payment-link/1ae44a1c-3ea8-47ac-b736-7d7d4c992bb4,
67f66fc8-411e-cc10-a92a-ed9a588b0c52,67f67063-5244-c845-a49a-a2838e2f26a9,67f66f41-3022-a623-827e-e0616c0d04e7,2025-04-11T08:30:00.000000Z,2025-04-11T08:45:00.000000Z,2025-04-11T08:45:00.000000Z,,,CHARGEBACK,COMPLETED,Chargeback for Summer hat,ORD-2025-0042-CB1,,75.00,GBP,-75.00,GBP,CARD,0.00,GBP,0.00,GBP,https://sandbox-checkout.revolut.com/payment-link/1ae44a1c-3ea8-47ac-b736-7d7d4c992bb4,
67f66fd9-522f-dd21-ba3b-feab699a1d63,67f67074-6355-d956-b50a-a3949f3a37a0,67f66f41-3022-a623-827e-e0616c0d04e7,2025-04-15T10:00:00.000000Z,2025-04-15T10:05:00.000000Z,2025-04-15T10:05:00.000000Z,,,CHARGEBACK_REVERSAL,COMPLETED,Chargeback reversal for Summer hat,ORD-2025-0042-CBR1,,75.00,GBP,75.00,GBP,CARD,0.00,GBP,0.00,GBP,https://sandbox-checkout.revolut.com/payment-link/1ae44a1c-3ea8-47ac-b736-7d7d4c992bb4,'
Res-Custom-Report:
summary: Custom report (filtered columns)
value: 'transaction_id,order_id,payment_created_date,payment_captured_date,payment_method,amount,currency,state,updated_date
649ae37f-99ca-a7db-a4fb-5924af14ad7c,649ae35c-2558-adea-bf98-3a7156a764e7,2023-06-28T13:20:46.07498Z,2023-06-28T13:30:46.07498Z,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:30:46.07498Z
649ae3de-e945-af9f-98c8-1d6172e350b5,649ae3ab-3998-ab2b-ad95-41b48346be69,2023-06-28T13:22:46.075569Z,2023-06-28T13:30:46.075569Z,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:30:46.075569Z
649ae48b-37f6-a097-9cb0-4fc2a89d9e5a,649ae479-d7e8-a139-993b-bf75865c5059,2023-06-28T13:35:46.084289Z,2023-06-28T13:38:46.084289Z,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:38:46.084289Z'
Res-Payments-Report:
summary: Payments report
value: 'payment_id,type,description,original_payment_id,order_id,state,reason,amount,currency,surcharge_amount,tip_amount,refunded_amount,created_date,captured_date,merchant_order_ext_ref,payment_method,location_id,customer_id,customer_card_number,customer_card_country,customer_card_brand,customer_card_type,customer_card_category,customer_email,fee_amount,fee_currency
67f66fa6-7e98-ae73-9570-50583cec116d,PAYMENT,Payment from customer,,67f66f41-3022-a623-827e-e0616c0d04e7,COMPLETED,,1.00,GBP,,0.00,0.00,2025-04-09T13:01:26.186Z,2025-04-10T13:02:09.837Z,ORD-2025-0042,CARD,,cust-0001-0000-0000-000000000001,528143******4148,GB,VISA,DEBIT,consumer,customer@example.com,0.01,GBP
6807b0a5-a367-afbf-b31f-353730b788b5,PAYMENT,Payment from customer,,6807b09c-c62a-a656-818e-f071ef67ee36,DECLINED,,10.01,GBP,,0.00,0.00,2025-04-22T15:07:17.352Z,,,PAY_WITH_REVOLUT,,,,,,,,customer@example.com,,
67efa316-db8a-aec6-8eb4-46e47b6ebdc4,PAYMENT,Payment from customer,,67efa305-be19-a456-a6a2-154b218ac386,FAILED,INSUFFICIENT_FUNDS,0.57,USD,,0.00,0.00,2025-04-04T09:15:02.13Z,,,CARD,,,222300******9399,GB,VISA,DEBIT,consumer,customer@example.com,,'
Res-Payout-Report:
summary: Payout statement report
value: 'created_date,completed_date,payout_affected_date,affected_payout_amount,transaction_id,order_id,dispute_id,merchant_order_reference,type,related_icpp_charge_id,transaction_amount,transaction_currency,billing_amount,billing_currency,state,original_transaction_id,original_transaction_amount,original_transaction_currency,original_order_id,original_order_channel,original_merchant_order_reference,fee_amount,fee_currency,settlement_amount,settlement_currency,location_id,location_name,submerchant_id,payout_transfer_reference,payout_total_amount,payout_date
2025-03-25T14:34:05.708899Z,2025-03-26T14:34:38.06903Z,2025-03-26T14:34:38.06903Z,true,67e2bedd-0e79-a8ea-ac4c-e9fd13693286,67e2be76-89c5-ae4f-9103-a152ae6f0584,,ORD-2025-0042,Settlement,,0.57,USD,0.57,USD,COMPLETED,67e2bedd-0e79-a8ea-ac4c-e9fd13693286,0.57,USD,67e2be76-89c5-ae4f-9103-a152ae6f0584,API,ORD-2025-0042,0.00,USD,0.57,USD,4a0f98a6-0f61-4e85-9ef0-7e5d0cb92ef0,Store London,,Revolut USD payout 2025-03-26 MerchantName,0.17,2025-03-26T15:00:00Z
2025-03-25T15:38:45.162946Z,2025-03-26T15:39:58.03824Z,2025-03-26T15:39:58.03824Z,true,67e2ce05-1a16-abeb-b05b-5059073bcdaa,67e2ce00-6665-a52b-9f10-368f886054d7,a81bba54-e3f9-450f-aa50-7aea8e4e5b9a,ORD-2025-0042-CB1,Customer dispute - withdrawal,,-0.40,USD,-0.40,USD,COMPLETED,67e2bedd-0e79-a8ea-ac4c-e9fd13693286,0.57,USD,67e2be76-89c5-ae4f-9103-a152ae6f0584,API,ORD-2025-0042,0.00,USD,-0.40,USD,4a0f98a6-0f61-4e85-9ef0-7e5d0cb92ef0,Store London,,Revolut USD payout 2025-03-26 MerchantName,0.17,2025-03-26T15:00:00Z'
schemas:
Report-Run-Custom-Options:
type: object
description: Further options to customise the report.
properties:
timezone:
$ref: '#/components/schemas/Report-Run-Timezone'
columns:
type: array
description: "Names of the columns to include in the report.\n\nIf not specified, all available columns are included. An empty array returns an error.\n\nTo include custom order metadata, use `metadata.*` with the attribute name, for example `metadata.my_attribute`.\n\nAvailable columns:\n\n | Column name | Description |\n | ----------- | ----------- |\n | `transaction_id` | Unique identifier of the ledger transaction. Matches `transaction_id` in the settlement and payout reports. Use `order_id` to cross-reference with the payments report. |\n | `related_transaction_id` | For refund and chargeback transactions, the ledger transaction ID of the original payment. Corresponds to `original_transaction_id` in the payout report. |\n | `transaction_description` | Description of the transaction. |\n | `payout_id` | Unique identifier of the payout that this transaction contributed to. |\n | `dispute_id` | Unique identifier of the dispute associated with this transaction, if applicable. |\n | `account_id` | Unique identifier of the merchant account. |\n | `account_balance` | Account balance at the time of the transaction. |\n | `order_id` | Unique identifier of the order. Use to cross-reference with the payments or payout reports. |\n | `original_order_id` | For refunds and chargebacks, the order ID of the original payment. For settlement transactions, matches `order_id`. |\n | `original_order_ext_ref` | Merchant's order identifier of the original order for external reference. |\n | `order_description` | Description of the order. |\n | `order_channel` | Channel through which the order was created. |\n | `order_customer_note` | Note added by the customer at the time of the order. |\n | `order_tip_amount` | Tip amount set at the order level. |\n | `order_created_by` | Identifier of the user who created the order. |\n | `payment_initiated_by` | Identifier of who initiated the payment. |\n | `order_line_items` | Line items included in the order, if any. |\n | `payout_reference` | Reference of the payout transfer associated with the transaction. |\n | `invoice_reference` | Invoice reference associated with the order, if any. |\n | `started_date` | Start timestamp shown on the row. For payment rows, this is the payment start timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction start timestamp. Separate from the report filter timeframe. |\n | `created_date` | Date and time the order was created. |\n | `updated_date` | Last update timestamp shown on the row. For payment rows, this is the payment update timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction update timestamp. Separate from the report filter timeframe. |\n | `completed_date` | Completion timestamp shown on the row. For payment rows, this is the payment completion timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction completion timestamp. Separate from the report filter timeframe. |\n | `payment_created_date` | Payment authorisation or creation timestamp for rows linked to a payment. Empty for refunds and non-payment-related rows where no payment timestamp applies. This is returned data, not the report filter key. |\n | `payment_captured_date` | Payment capture timestamp for rows linked to a captured payment. Empty for refunds, non-payment-related rows, or payments not captured. This is returned data, not the report filter key. |\n | `type` | Category of the reported transaction row, indicating what kind of balance-affecting event the row represents. For the full list of returned values, see [Download report file](https://developer.revolut.com/docs/api/merchant#download-report-file). |\n | `legacy_type` | Legacy type value for backwards compatibility. |\n | `state` | State of the transaction. |\n | `description` | Description of the transaction. |\n | `merchant_order_ext_ref` | Merchant's order reference. The value of the `merchant_order_data.reference` field set when the order was created. |\n | `customer_id` | Unique identifier of the customer. |\n | `amount` | Total amount of the order. |\n | `currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the order. |\n | `settlement_amount` | Total amount settled on the merchant's account. |\n | `settlement_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the settled amount. |\n | `exchange_rate` | Exchange rate applied if currency conversion occurred. |\n | `refunded_amount` | Amount refunded for the order. |\n | `statement_descriptor` | Statement descriptor shown on the customer's bank statement. |\n | `tip_amount` | Tip amount included in the transaction. |\n | `terminal_hardware_id` | Identifier of the card reader hardware used, for in-person payments. |\n | `customer_name` | Name of the customer. |\n | `customer_email` | Email address of the customer. |\n | `customer_card_number` | Masked card number used for the payment. |\n | `customer_card_brand` | Card brand used for the payment. Derived from BIN data. Example values: `VISA`, `MASTERCARD`, `MASTERCARD_DEBIT`, `MAESTRO`, `AMEX`, `DINERS`, `DISCOVER`, `JCB`. |\n | `customer_card_type` | Card funding type of the card used for the payment, for example debit, credit, prepaid, deferred debit, or charge. For the full list of returned values, see [Download report file](https://developer.revolut.com/docs/api/merchant#download-report-file). |\n | `customer_card_category` | Card commercial category. Values: `consumer` (personal card) and `commercial` (business or corporate card). |\n | `payment_method` | Payment method the customer used to pay for the order. |\n | `fee_amount` | Total fee amount applied to the order, aggregated across all fee components (acquiring markup + interchange + scheme fees). |\n | `fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the total fee. |\n | `processing_fee_amount` | Acquiring markup fee only — a subset of `fee_amount`. Represents Revolut's service fee, excluding interchange and scheme fees. |\n | `processing_fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the acquiring markup fee. |\n | `fx_fee_amount` | Foreign exchange fee amount, if applicable. |\n | `fx_fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the FX fee. |\n | `browser_url` | The URL where the customer initiated the payment. |\n | `beneficiary_name` | Name of the beneficiary, for bank transfer payments. |\n | `beneficiary_account_number` | Account number of the beneficiary, for bank transfer payments. |\n | `location_id` | Unique identifier of the location related to the transaction. |\n | `location_name` | Name of the location related to the transaction. |\n | `surcharge_amount` | Surcharge amount applied to the transaction. Omitted when no surcharge applies. |\n | `order_surcharge_amount` | Surcharge amount set at the order level. |\n | `order_custom_field_name` | Name of a custom field set on the order. |\n | `order_custom_field_value` | Value of a custom field set on the order. |\n | `offline_payment_state` | State of an offline payment, if applicable. |\n | `order_authorisation_type` | Authorisation type of the order, for example `FULL` or `PRE_AUTH`. |\n | `metadata.*` | Custom order metadata. Replace `*` with the attribute name, for example `metadata.my_attribute`. |"
items:
type: string
enum:
- transaction_id
- related_transaction_id
- transaction_description
- payout_id
- dispute_id
- account_id
- account_balance
- order_id
- original_order_id
- original_order_ext_ref
- order_description
- order_channel
- order_customer_note
- order_tip_amount
- order_created_by
- payment_initiated_by
- order_line_items
- payout_reference
- invoice_reference
- started_date
- created_date
- updated_date
- completed_date
- payment_created_date
- payment_captured_date
- type
- legacy_type
- state
- description
- merchant_order_ext_ref
- customer_id
- amount
- currency
- settlement_amount
- settlement_currency
- exchange_rate
- refunded_amount
- statement_descriptor
- tip_amount
- terminal_hardware_id
- customer_name
- customer_email
- customer_card_number
- customer_card_brand
- customer_card_type
- customer_card_category
- payment_method
- fee_amount
- fee_currency
- processing_fee_amount
- processing_fee_currency
- fx_fee_amount
- fx_fee_currency
- browser_url
- beneficiary_name
- beneficiary_account_number
- location_id
- location_name
- surcharge_amount
- order_surcharge_amount
- order_custom_field_name
- order_custom_field_value
- offline_payment_state
- order_authorisation_type
- metadata.*
example:
- transaction_id
- amount
- currency
- metadata.my_attribute
Report-Run-Payments-Report:
title: Payments report
type: object
description: A payments report contains all the query information for generating reports of payments associated with a Merchant account, including failed and declined payments.
properties:
filter:
$ref: '#/components/schemas/Report-Run-Payments-Filter'
format:
$ref: '#/components/schemas/Report-Run-Format'
type:
$ref: '#/components/schemas/Report-Run-Type'
options:
$ref: '#/components/schemas/Report-Run-Payments-Options'
required:
- filter
- format
- type
Report-Run-Entity-Types:
type: array
items:
type: string
enum:
- payment
- refund
- dispute
description: 'Select source entity families to be included in the report.
| Value | Description |
| ----- | ----------- |
| `payment` | Include rows originating from payment settlement activity. |
| `refund` | Include rows originating from refund activity. |
| `dispute` | Include rows originating from dispute and chargeback activity. |
:::note
These values are filter input categories. They do not map 1:1 to the CSV `type` output column. For example, a settlement report filtered with `payment`, `refund`, and `dispute` can still return CSV `type` values such as `SETTLEMENT`, `REFUND`, `CHARGEBACK`, and `CHARGEBACK_REV
# --- truncated at 32 KB (103 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/revolut/refs/heads/main/openapi/revolut-report-runs-api-openapi.yml