Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

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.

3 operations 3 paths 10 schemas 1 GET2 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.1
API Version
1.0
Base URL
https://b2b.revolut.com/api/1.0
Authentication
HTTP Bearer
Resource Areas
1

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.

Payment intents 3

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…

POST
/api/orders/{order_id}/payment-intents
Create a payment intent
createPaymentIntent 3 params body → 201400401404
GET
/api/payment-intents/{payment_intent_id}
Retrieve a payment intent
retrievePaymentIntent 3 params → 200401404
POST
/api/payment-intents/{payment_intent_id}/cancel
Cancel a payment intent
cancelPaymentIntent 3 params → 200400401404

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.

Currency
string
[ISO 4217](https://en.wikipedia.org/wiki/ISO4217) currency code in upper case. :::info For more information about the supported currencies, see: [Help Center](…
Payment-Intent-Id
string
The unique identifier of the payment intent.
Error
object
2 properties 2 required
Payment-Intent-State
string
The current state of the payment intent. | State | Description | |-------|-------------| | pending | Payment intent created and sent to terminal, customer has…
Payment-Intent
object
Represents a payment intent that has been pushed to a Revolut Terminal device. When the payment intent reaches completed state, it includes a paymentid that ca…
9 properties 8 required
Payment-Intent-Amount
integer
The payment amount expressed in minor currency units, according to the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO4217). For example, 7034 in EUR cor…
Terminal-Id
string
The unique identifier of the terminal.
Payment-Intent-Creation
object
Request body for creating a payment intent to push to a terminal.
2 properties 2 required
Order-Id
string
Permanent order ID used to retrieve, capture, cancel, or refund an order after authorization.
Payment-Id
string
The ID of the payment.

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

revolut-payment-intents-api-openapi.yml Raw ↑

Other APIs Revolut publishes across the network.

Revolut Accounting API
Revolut Accounting categories API
Revolut Accounts API
Revolut Apple Pay merchant registration API
Revolut Applications API
Revolut Balance API
Revolut Card invitations API
Revolut Cards API
Revolut Configuration API
Revolut Counterparties API
Revolut Customers API
Revolut Disputes API