For Agents
Drive in-person payments and POS interactions on Adyen terminals — accept payments, refunds, loyalty, stored-value, displays, prints, and reconciliation.
Get started with Adyen Terminal API in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"take an in-person payment on an Adyen terminal"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Adyen Terminal API API.
Initiate an in-person card payment via POST /payment with the SaleToPOIRequest envelope and PaymentRequest body
Reverse an in-flight or completed payment via POST /reversal using the original transactionID
Run end-of-day totals and reconciliation via POST /reconciliation and POST /gettotals
Display custom prompts on the terminal via POST /display and collect input via POST /input
GET STARTED
Use for: Take an in-person card payment on an Adyen terminal, Reverse a card payment that was just taken at the till, Print a custom receipt on a Pax or Verifone terminal supplied by Adyen, Display a prompt on the terminal screen and capture the cashier's input
Not supported: Does not handle online card-not-present payments, terminal hardware ordering, or merchant onboarding — use only for driving payments and POS interactions on Adyen-supplied terminals.
The Adyen Terminal API is the JSON message protocol for in-person payments and point-of-sale interactions on Adyen-supplied terminals. The 19 endpoints cover the full POS lifecycle: login and logout, payment, card acquisition, loyalty, stored value, reversal, reconciliation, totals reporting, balance inquiry, transaction status, abort, diagnosis, and direct device interactions such as display, input, print, and card-reader APDU. Both synchronous and asynchronous transport modes are supported, and the same protocol is used for cloud and local terminal integrations.
Process loyalty enquiries and redemption via POST /loyalty alongside the payment
Acquire card details for a non-payment use case via POST /cardacquisition
Print a custom receipt on the terminal via POST /print and abort a request via POST /abort
Patterns agents use Adyen Terminal API API for, with concrete tasks.
★ In-Person Card Payment at the Till
A POS application sends a SaleToPOIRequest containing a PaymentRequest to POST /payment. The terminal prompts the shopper to tap, dip, or swipe; runs PIN, signature, or contactless flows as required; and returns a SaleToPOIResponse with the result. The same call handles EMV, magstripe, contactless, and mobile wallets, as well as gratuity and split tender. Synchronous mode waits for the result on the HTTP call; asynchronous returns immediately and pushes the result to a configured webhook.
Send a SaletoPOIRequest to POST /payment with MessageHeader.SaleID, MessageHeader.POIID, and a PaymentRequest body containing PaymentTransaction.AmountsReq and currency
Reversals and End-of-Day Reconciliation
A cashier can void the immediately previous transaction with POST /reversal, passing the original transactionID, before the shopper leaves the till. At end-of-day, POST /reconciliation totals all transactions for the period and POST /gettotals returns the figures the till expects to match against the cash drawer. Both endpoints are part of the same SaleToPOI envelope used for payments, keeping operational tooling on a single transport.
Send a SaletoPOIRequest to POST /reversal with the OriginalPOITransaction.POITransactionID matching the previous payment transactionID
Custom Display and Input on the Terminal
Retailers running cashier-prompt flows (loyalty enrolment, age check, signature on screen) use POST /display to render text or buttons on the terminal screen, then POST /input to capture the cashier's or shopper's response. POST /print pushes a custom receipt to the terminal printer for warranty terms, marketing inserts, or legal disclosures. POST /cardacquisition acquires card data without authorising a payment, useful for loyalty enrolment or tokenisation.
Send a SaletoPOIRequest to POST /display with a DisplayRequest containing OutputContent.PredefinedContent and OutputText for each line
AI Agent POS Operations via Jentic
An ops agent monitoring store reconciliations searches Jentic for 'run Adyen terminal reconciliation', loads the schema for /reconciliation, and triggers it for each store at close-of-business. The agent receives the totals payload, compares to the till's expected figures, and flags discrepancies in the operations dashboard. Jentic injects X-API-Key and the SaleID/POIID context per store from its encrypted vault.
Search Jentic for 'run Adyen terminal reconciliation', load the reconciliation schema, then execute one call per store at close-of-business and compare totals to till figures
19 endpoints — the adyen terminal api is the json message protocol for in-person payments and point-of-sale interactions on adyen-supplied terminals.
METHOD
PATH
DESCRIPTION
/payment
Take an in-person payment
/reversal
Reverse a previous payment
/reconciliation
Run end-of-day reconciliation
/gettotals
Pull terminal totals
/transactionstatus
Query the status of a prior transaction
/cardacquisition
Acquire card data without payment
/display
Display content on the terminal screen
Print a receipt on the terminal
/payment
Take an in-person payment
/reversal
Reverse a previous payment
/reconciliation
Run end-of-day reconciliation
/gettotals
Pull terminal totals
/transactionstatus
Query the status of a prior transaction
Three things that make agents converge on Jentic-routed access.
Credential isolation
Adyen Terminal API keys and basic-auth credentials are stored encrypted in the Jentic vault. Agents receive scoped access tokens for cloud transport at execution time — the raw X-API-Key value never enters the agent context.
Intent-based discovery
Agents search by intent (e.g., 'take an in-person payment' or 'run terminal reconciliation') and Jentic returns the matching /payment or /reconciliation operation with its full SaleToPOIRequest schema, so the agent picks the right endpoint without learning the JSON envelope from scratch.
Time to first call
Direct Adyen Terminal API integration: 4-7 days for SaleToPOI envelope handling, sync vs async transport, and reversal/reconciliation logic. Through Jentic: a few hours — search, load, execute against a single terminal.
Alternatives and complements available in the Jentic catalogue.
Adyen POS Terminal Management API
Manage the fleet of terminals that drive Terminal API requests
Use Terminal Management to assign terminals to stores and inspect their config; use Terminal API to drive transactions on those terminals
Adyen Checkout API
Online (CNP) equivalent of the in-person Terminal API
Choose Checkout for online and unattended commerce, Terminal for attended in-person payments at a physical till
Adyen Payment API
Server-to-server card payments used in classic integrations
Use Payment API for backend card-not-present authorisations and Terminal API for the in-store leg of the same merchant
Adyen Management API
Manage merchant accounts and stores referenced by Terminal API requests
Use Management API to provision stores and merchant accounts; reference those identifiers from Terminal API SaletoPOIRequest envelopes
Specific to using Adyen Terminal API API through Jentic.
What authentication does the Adyen Terminal API use?
Cloud Terminal API requests are signed with an API key in the X-API-Key header (ApiKeyAuth); HTTP Basic auth (BasicAuth) is also supported, as declared in the spec. Local terminal integrations use a different transport that goes directly to the terminal's IP address. Through Jentic, the cloud credential is held encrypted in the vault and only a scoped token is exposed to the agent.
Can I take an in-person payment with the Adyen Terminal API?
Yes. POST /payment accepts a SaleToPOIRequest envelope containing a PaymentRequest body with the amount, currency, and SaleID/POIID identifiers. The terminal handles tap, chip, and contactless flows; the response carries the SaleToPOIResponse with the result and any printed receipt content.
Does the Terminal API support synchronous and asynchronous modes?
Yes. Both transport modes are documented in the API description: synchronous responses use https://terminal-api-test.adyen.com/sync and asynchronous responses use https://terminal-api-test.adyen.com/async, with results pushed to a configured webhook in async mode. Choose async for long-running flows such as signature capture; choose sync for simple tap-and-go.
How do I run end-of-day reconciliation through Jentic with the Adyen Terminal API?
Search Jentic for 'run Adyen terminal reconciliation', load the reconciliation schema, then execute with the SaleID, POIID, and a ReconciliationRequest specifying the period. Jentic injects X-API-Key from the encrypted vault. Get an account at https://app.jentic.com/sign-up.
What are the rate limits for the Adyen Terminal API?
Adyen does not publish a fixed numeric rate limit for Terminal in the spec; throughput is bounded by the terminal hardware itself for sync flows. For cloud transport, contact Adyen support if you receive 429 responses on a busy estate of terminals.
Can I print a custom receipt or display a prompt on the terminal?
Yes. POST /print accepts a PrintRequest with output content for the terminal printer; POST /display accepts a DisplayRequest with text and predefined content for the terminal screen. POST /input collects the cashier's or shopper's response from the screen, which is useful for cashier-prompt flows like loyalty enrolment or age verification.
/cardacquisition
Acquire card data without payment
/display
Display content on the terminal screen
Print a receipt on the terminal