Revolut Payment intents API
Operations for managing payment intents in the push payments to Revolut Terminal flow.A **payment intent** represents the intention to complete payment for a specific order on a specific Revolut Terminal device. Payment intents are the mechanism that links orders created via the Merchant API with physical terminal devices in **Pay at Counter** mode.## What is a payment intent?When you create a payment intent, you're pushing a payment request from your POS system to a Revolut Terminal. The payment intent:- Links an order to a specific terminal device- Triggers the payment request to appear on the terminal screen- Tracks the customer's interaction with the terminal (pending → processing → completed)- Provides a `payment_id` when completed, which you use to retrieve the final payment status## Payment intent lifecycle1. **Create:** Push a payment intent to a terminal by [creating a payment intent](https://developer.revolut.com/docs/api/merchant#create-payment-intent)1. **Track:** Poll the payment intent status by [retrieving payment intent details](https://developer.revolut.com/docs/api/merchant#retrieve-payment-intent) until it reaches a final state1. **Complete:** When state is `completed`, extract the `payment_id` and [retrieve the final payment status](https://developer.revolut.com/docs/api/merchant#retrieve-payment-details)1. **Cancel (optional):** Cancel pending payment intents using [Cancel a payment intent](https://developer.revolut.com/docs/api/merchant#cancel-payment-intent)## Important notes- A payment intent reaching `completed` state means the checkout process finished on the terminal, but it does **not** guarantee the payment succeeded- You must check the actual payment status using the `payment_id` returned in the completed payment intent- Payment status can be `captured`/`completed` (successful), `declined` (card rejected), `failed` (technical error), or `cancelled`:::infoFor the complete push payments integration guide, see: [Push payments to Revolut Terminal](https://developer.revolut.com/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).:::
Revolut Payment intents API is one of 46 APIs that Revolut publishes on the APIs.io network, described by a machine-readable OpenAPI specification.
Tagged areas include Payment intents. The published artifact set on APIs.io includes an OpenAPI specification.
This API exposes 3 operations across 3 paths, and defines 10 schemas. It is described by OpenAPI 3.0.1, at version 1.0.
Requests are made against 2 base URLs: https://b2b.revolut.com/api/1.0, https://sandbox-b2b.revolut.com/api/1.0.
Metadata
The identity and technical contract details declared by the specification.
Authentication & Security 1
Revolut Payment intents API declares
1 security scheme
for authenticating requests.
It accepts HTTP bearer tokens (AccessToken).
AccessToken— Each Business API request must contain an authorization header in the following format to make a call: Bearer . The access token will be obtained the first tim…
Paths & Operations 3
Across 3 paths, the API surfaces 3 operations — 1 GET, 2 POST. Each is listed below with its method, path, parameters, and response codes.
Operations for managing payment intents in the push payments to Revolut Terminal flow. A payment intent represents the intention to complete payment for a specific order on a spec…
Schemas 10
The contract defines 10 schemas that model the data the API accepts and returns. The most detailed are Payment-Intent (9 properties), Payment-Intent-Creation (2 properties), Error (2 properties). Each schema is shown below with its type and property counts.
Specification
The full machine-readable OpenAPI contract behind this narrative.
Source
More from Revolut 12
Other APIs Revolut publishes across the network.