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 lifecycle 1. **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 state 1. **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` :::info For 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). :::