Revolut · Schema

Payments report CSV

CSV output for `payments_report` report type. Contains all payments including failed and declined ones. The first row is a header row with column names. Subsequent rows contain payment data, one row per payment. For failed and declined payments, `fee_amount` and `fee_currency` are omitted. For payments made without a card, card-related columns are omitted. :::note The actual response is a raw `text/csv` string. The object schema below is a documentation convention only: OpenAPI's schema language (JSON Schema) describes JSON data shapes and has no native construct for typed CSV columns, so each property here corresponds to a CSV column header rather than a JSON field. :::

CompanyFintechPaymentsBankingOpen BankingMerchant AcquiringCryptocurrencyCardsConsumer Banking

Properties

Name Type Description
payment_id string Unique identifier of the payment attempt in the acquiring system. Corresponds to `id` in the IC++ fee breakdown report for the same payment. Not the same as `transaction_id` in the settlement or payou
type string Type of the payment. | Value | Description | | ----- | ----------- | | `PAYMENT` | A payment attempt made against the order. | | `REFUND` | A refund record reversing a previously completed payment. |
description string Description of the payment.
original_payment_id string For refunds, the acquiring ID of the original payment that this record reverses. Corresponds to `payment_id` on the original payment row. Populated only when `type` is `REFUND`.
order_id string Unique identifier of the order associated with this payment. An order can have multiple payment attempts — for example, a retry after a declined payment. Use `order_id` to cross-reference with the set
state string State of the payment. | Value | Description | | ----- | ----------- | | `COMPLETED` | The payment completed successfully. | | `FAILED` | The payment failed during processing. | | `DECLINED` | The paym
reason string Reason code for a failed or declined payment. Present only when `state` is `FAILED` or `DECLINED`. Example values: `INSUFFICIENT_FUNDS`, `DO_NOT_HONOUR`, `EXPIRED_CARD`, `INVALID_CVV`, `THREE_DS_CHALL
amount number Total amount of the payment.
currency string The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the payment.
surcharge_amount number Surcharge amount applied to the payment. Empty when no surcharge applies — this field is empty, not set to `0`.
tip_amount number Tip amount included in the payment, if any.
refunded_amount number Amount refunded for the payment.
created_date string Date and time the payment was created.
captured_date string Date and time the payment was captured, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC date-time format. Empty when the payment has not been captured.
merchant_order_ext_ref string Merchant's order reference. The value of the `merchant_order_data.reference` field set when the order was created.
payment_method string Payment method used.
location_id string Unique identifier of the location where the payment was made.
customer_id string Unique identifier of the customer.
customer_card_number string Masked card number used for the payment.
customer_card_country string Country of the card used for the payment, as an [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.
customer_card_brand string Card brand used for the payment. Derived from BIN data. Example values include `VISA`, `MASTERCARD`, `MASTERCARD_DEBIT`, `MAESTRO`, `AMEX`, `DINERS`, `DISCOVER`, `JCB`.
customer_card_type string Card funding type. | Value | Description | | ----- | ----------- | | `DEBIT` | Debit card. | | `CREDIT` | Credit card. | | `PREPAID` | Prepaid card. | | `DEFERRED_DEBIT` | Deferred debit card. | | `CH
customer_card_category string Card commercial category. | Value | Description | | ----- | ----------- | | `consumer` | Personal card. | | `commercial` | Business or corporate card. |
customer_email string Email address of the customer.
fee_amount number Total fee amount charged for the payment. Omitted for failed and declined payments.
fee_currency string The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the fee. Omitted for failed and declined payments.
View JSON Schema on GitHub

JSON Schema

revolut-report-run-csv-payments-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/revolut/main/json-schema/revolut-report-run-csv-payments-schema.json",
  "title": "Payments report CSV",
  "description": "CSV output for `payments_report` report type. Contains all payments including failed and declined ones.\n\nThe first row is a header row with column names. Subsequent rows contain payment data, one row per payment.\n\nFor failed and declined payments, `fee_amount` and `fee_currency` are omitted. For payments made without a card, card-related columns are omitted.\n\n:::note\nThe actual response is a raw `text/csv` string. The object schema below is a documentation convention only: OpenAPI's schema language (JSON Schema) describes JSON data shapes and has no native construct for typed CSV columns, so each property here corresponds to a CSV column header rather than a JSON field.\n:::",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/revolut-report-runs-api-openapi.yml#/components/schemas/Report-Run-Csv-Payments",
  "type": "object",
  "properties": {
    "payment_id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier of the payment attempt in the acquiring system. Corresponds to `id` in the IC++ fee breakdown report for the same payment. Not the same as `transaction_id` in the settlement or payout reports — a payment and its resulting ledger transaction have different UUIDs. Use `order_id` to cross-reference with the settlement or payout reports."
    },
    "type": {
      "type": "string",
      "description": "Type of the payment.\n\n| Value | Description |\n| ----- | ----------- |\n| `PAYMENT` | A payment attempt made against the order. |\n| `REFUND` | A refund record reversing a previously completed payment. |",
      "enum": [
        "PAYMENT",
        "REFUND"
      ]
    },
    "description": {
      "type": "string",
      "description": "Description of the payment."
    },
    "original_payment_id": {
      "type": "string",
      "format": "uuid",
      "description": "For refunds, the acquiring ID of the original payment that this record reverses. Corresponds to `payment_id` on the original payment row. Populated only when `type` is `REFUND`."
    },
    "order_id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier of the order associated with this payment. An order can have multiple payment attempts — for example, a retry after a declined payment. Use `order_id` to cross-reference with the settlement or payout reports."
    },
    "state": {
      "type": "string",
      "description": "State of the payment.\n\n| Value | Description |\n| ----- | ----------- |\n| `COMPLETED` | The payment completed successfully. |\n| `FAILED` | The payment failed during processing. |\n| `DECLINED` | The payment was rejected by the issuer or payment flow. |\n| `CANCELLED` | The payment was cancelled before completion. |\n| `PROCESSING` | The payment is still being processed. |",
      "enum": [
        "COMPLETED",
        "FAILED",
        "DECLINED",
        "CANCELLED",
        "PROCESSING"
      ]
    },
    "reason": {
      "type": "string",
      "description": "Reason code for a failed or declined payment. Present only when `state` is `FAILED` or `DECLINED`.\n\nExample values: `INSUFFICIENT_FUNDS`, `DO_NOT_HONOUR`, `EXPIRED_CARD`, `INVALID_CVV`, `THREE_DS_CHALLENGE_FAILED`, `SUSPECTED_FRAUD`, `LOST_CARD`, `STOLEN_CARD`, `TECHNICAL_ERROR`."
    },
    "amount": {
      "type": "number",
      "description": "Total amount of the payment."
    },
    "currency": {
      "type": "string",
      "description": "The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the payment."
    },
    "surcharge_amount": {
      "type": "number",
      "description": "Surcharge amount applied to the payment. Empty when no surcharge applies — this field is empty, not set to `0`."
    },
    "tip_amount": {
      "type": "number",
      "description": "Tip amount included in the payment, if any."
    },
    "refunded_amount": {
      "type": "number",
      "description": "Amount refunded for the payment."
    },
    "created_date": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time the payment was created."
    },
    "captured_date": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time the payment was captured, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC date-time format. Empty when the payment has not been captured."
    },
    "merchant_order_ext_ref": {
      "type": "string",
      "description": "Merchant's order reference. The value of the `merchant_order_data.reference` field set when the order was created."
    },
    "payment_method": {
      "type": "string",
      "description": "Payment method used."
    },
    "location_id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier of the location where the payment was made."
    },
    "customer_id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier of the customer."
    },
    "customer_card_number": {
      "type": "string",
      "description": "Masked card number used for the payment."
    },
    "customer_card_country": {
      "type": "string",
      "description": "Country of the card used for the payment, as an [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code."
    },
    "customer_card_brand": {
      "type": "string",
      "description": "Card brand used for the payment. Derived from BIN data. Example values include `VISA`, `MASTERCARD`, `MASTERCARD_DEBIT`, `MAESTRO`, `AMEX`, `DINERS`, `DISCOVER`, `JCB`."
    },
    "customer_card_type": {
      "type": "string",
      "description": "Card funding type.\n\n| Value | Description |\n| ----- | ----------- |\n| `DEBIT` | Debit card. |\n| `CREDIT` | Credit card. |\n| `PREPAID` | Prepaid card. |\n| `DEFERRED_DEBIT` | Deferred debit card. |\n| `CHARGE` | Charge card. |",
      "enum": [
        "DEBIT",
        "CREDIT",
        "PREPAID",
        "DEFERRED_DEBIT",
        "CHARGE"
      ]
    },
    "customer_card_category": {
      "type": "string",
      "description": "Card commercial category.\n\n| Value | Description |\n| ----- | ----------- |\n| `consumer` | Personal card. |\n| `commercial` | Business or corporate card. |",
      "enum": [
        "consumer",
        "commercial"
      ]
    },
    "customer_email": {
      "type": "string",
      "format": "email",
      "description": "Email address of the customer."
    },
    "fee_amount": {
      "type": "number",
      "description": "Total fee amount charged for the payment. Omitted for failed and declined payments."
    },
    "fee_currency": {
      "type": "string",
      "description": "The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the fee. Omitted for failed and declined payments."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/revolut-report-run-csv-payments"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.