{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/revolut/main/json-schema/revolut-order-v7-schema.json", "title": "Order v7", "description": "To process the order from a credit or debit card, you create an `Order` object. You can then retrieve, capture, cancel, refund, or pay an order using its unique `id`. Alternatively, you can use its unique `token` to process a card payment with the Revolut Checkout Widget.", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/revolut-orders-api-openapi.yml#/components/schemas/Order-v7", "type": "object", "properties": { "id": { "$ref": "#/$defs/Order-Id" }, "token": { "$ref": "#/$defs/Order-Token" }, "type": { "$ref": "#/$defs/Order-Type-v2" }, "state": { "$ref": "#/$defs/Order-State" }, "created_at": { "type": "string", "description": "The date and time the order was created.", "format": "date-time" }, "updated_at": { "type": "string", "description": "The date and time the order was last updated.", "format": "date-time" }, "description": { "$ref": "#/$defs/Order-Description" }, "capture_mode": { "$ref": "#/$defs/Capture-Mode-v2" }, "authorisation_type": { "$ref": "#/$defs/Authorisation-Type" }, "cancel_authorised_after": { "$ref": "#/$defs/Cancel-Authorised-After" }, "amount": { "$ref": "#/$defs/Order-Amount-v2" }, "outstanding_amount": { "$ref": "#/$defs/Outstanding-Amount" }, "refunded_amount": { "$ref": "#/$defs/Refunded-Amount" }, "currency": { "$ref": "#/$defs/Currency" }, "settlement_currency": { "$ref": "#/$defs/Settlement-Currency" }, "customer": { "$ref": "#/$defs/Customer-v2" }, "payments": { "type": "array", "description": "The details of all the payments that have been made towards this order (successful or unsuccessful).", "items": { "$ref": "#/$defs/Payment-v3" } }, "incremental_authorisations": { "$ref": "#/$defs/Incremental-Authorisations" }, "location_id": { "$ref": "#/$defs/Location-Id" }, "metadata": { "$ref": "#/$defs/Metadata" }, "industry_data": { "$ref": "#/$defs/Industry-Data-v3" }, "merchant_order_data": { "$ref": "#/$defs/Merchant-Order-Data" }, "upcoming_payment_data": { "$ref": "#/$defs/Upcoming-Payment" }, "checkout_url": { "$ref": "#/$defs/Checkout-Url" }, "redirect_url": { "$ref": "#/$defs/Redirect-Url" }, "shipping": { "$ref": "#/$defs/Shipping" }, "enforce_challenge": { "$ref": "#/$defs/Enforce-Challenge-v2" }, "line_items": { "$ref": "#/$defs/Line-Items" }, "statement_descriptor_suffix": { "$ref": "#/$defs/Statement-Descriptor-Suffix" }, "related_order_id": { "$ref": "#/$defs/Related-Order-Id" }, "subscription_data": { "$ref": "#/$defs/Subscription-Data" } }, "$defs": { "Address-v2": { "type": "object", "description": "Object containing address details.", "properties": { "street_line_1": { "type": "string", "description": "Street line 1 information.", "maxLength": 100 }, "street_line_2": { "type": "string", "description": "Street line 2 information.", "maxLength": 100 }, "region": { "type": "string", "description": "The region associated with the address.", "maxLength": 100 }, "city": { "type": "string", "description": "The city associated with the address.", "maxLength": 100 }, "country_code": { "type": "string", "description": "The 2-letter country code of the country associated with the address.", "maxLength": 2 }, "postcode": { "type": "string", "description": "The postcode associated with the address.", "maxLength": 100 } }, "required": [ "country_code", "postcode" ] }, "Address-v3": { "type": "object", "description": "Details of a physical address.", "properties": { "street_line_1": { "type": "string", "description": "Primary address line.", "maxLength": 100 }, "street_line_2": { "type": "string", "description": "Secondary address line, such as floor and apartment number.", "maxLength": 100 }, "region": { "type": "string", "description": "State or province of the address.", "maxLength": 100 }, "city": { "type": "string", "description": "City of the address.", "maxLength": 100 }, "country_code": { "type": "string", "pattern": "^[A-Z]{2}$", "description": "ISO 2-letter country code.", "minLength": 2, "maxLength": 2 }, "postcode": { "type": "string", "description": "Postal code of the address.", "maxLength": 100 } }, "required": [ "street_line_1", "city", "country_code", "postcode" ] }, "Address-v4": { "type": "object", "description": "Details of a physical address.", "properties": { "street_line_1": { "type": "string", "description": "Primary address line.", "maxLength": 100 }, "street_line_2": { "type": "string", "description": "Secondary address line, such as floor and apartment number.", "maxLength": 100 }, "region": { "type": "string", "description": "State or province of the address.", "maxLength": 100 }, "city": { "type": "string", "description": "City of the address.", "maxLength": 100 }, "country_code": { "type": "string", "pattern": "^[A-Z]{2}$", "description": "ISO 2-letter country code.", "minLength": 2, "maxLength": 2 }, "country_subdivision_code": { "type": "string", "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$", "description": "The subdivision code represents the state, province, or region within the country, following the [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) standard. This code uniquely identifies subdivisions within a country. \n\nFor example, for London in the United Kingdom, use `GB-LND`.\n\n:::warning\nThe parameter is required for countries listed on the [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) page.\n:::", "minLength": 5, "maxLength": 6 }, "postcode": { "type": "string", "description": "Postal code of the address.", "maxLength": 100 } }, "required": [ "street_line_1", "city", "country_code", "postcode" ] }, "Airline-Data-v2": { "type": "object", "description": "Object containing additional information about an airline booking associated with the order.\n\nUse this object to provide required data to enable **Revolut Flight Alerts**. This feature allows users to receive real-time flight updates such as check-in reminders, boarding alerts, and notifications for cancellations or delays in the Revolut app.\n\nTo enable **Revolut Flight Alerts** functionalities in the Revolut app, the following fields are **required** on order creation or update, before capturing the order:\n ```\n tickets_purchase,\n journey_legs,\n booking_url\n ```\n\n:::note\nThese are the specific data field requirements for merchants who must provide airline data. Note that these requirements can be extended on a case by case basis as decided by Revolut.\n\n| Required for airline/charter merchants | Required for OTA merchants |\n| -------------------------------------- | -------------------------- |\n|