---
api: 'Merchant API'
---

# Terminals

Operations for managing Revolut Terminal devices and push payment integrations with Point of Sale (POS) systems.

The Terminals API enables POS software providers to integrate with Revolut Terminal devices for accepting in-person payments through a **push payments** model. This server-to-server integration allows your POS system to:

- Discover available terminals at specific locations
- Push payment requests to physical terminal devices
- Track payment intent and payment status in real-time
- Cancel pending payment requests when needed

## Push payments workflow

1. **Terminal discovery:** Use the [Retrieve terminal list](/docs/api/merchant#retrieve-terminal-list) endpoint to find available terminals at a location (filtered by `operation_mode=pos`)
1. **Payment intent creation:** Push a payment request to a specific terminal using [Create a payment intent](/docs/api/merchant#create-a-payment-intent)
1. **Status tracking:** Poll the payment intent status until completion using [Retrieve a payment intent](/docs/api/merchant#retrieve-a-payment-intent) endpoint
1. **Payment confirmation:** Once the payment intent reaches `completed` state, [retrieve the final payment status](/docs/api/merchant#retrieve-payment-details) using the returned `payment_id`

:::info
For detailed implementation guidance, see: [Push payments to Revolut Terminal](/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).
:::
