Skip to content
Guides
Terminal Payments

Terminal Payments

Integrate your POS (Point of Sale) terminal with Unipaas to accept in-person, card-present payments, giving your staff and customers a seamless checkout at the counter.

You initiate a payment from your server, the cardholder taps or inserts their card at the terminal, and Unipaas confirms the result through a webhook.

To take terminal payments you need a Unipaas device. To find out more about getting a Unipaas device and to place an order for terminals, contact support@unipaas.com.

To initiate a terminal payment, make a POST /pay-ins request from your server with isCardPresent set to true.

FieldTypeRequiredDescription
amountNumberYesAmount to charge, in major currency units.
currencyStringYesCurrency code, for example GBP.
countryStringYesCountry code, for example GB.
isCardPresentBooleanYesMust be true for terminal transactions.
vendorIdStringYesUnique identifier of the vendor using the terminal.
orderIdStringYesYour unique reference for this payment.
curl --location --request POST 'https://sandbox.unipaas.com/platform/pay-ins' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer --YOUR_PRIVATE_KEY--' \
--data-raw '{
"amount": 19,
"currency": "GBP",
"country": "GB",
"isCardPresent": true,
"vendorId": "{{vendor_id}}",
"orderId": "1000456"
}'

Listen for the authorization/update webhook

Section titled “Listen for the authorization/update webhook”

After the customer taps or inserts their card at the terminal, Unipaas sends an authorization/update webhook to confirm the result. Listen for this webhook to reconcile the payment.

{
"event": "authorization/update",
"data": {
"transactionId": "txn_123456789",
"status": "Captured",
"amount": 19,
"currency": "GBP",
"cardType": "VISA",
"cardLast4": "1234",
"timestamp": "2025-05-29T14:32:10Z",
"orderId": "1000456"
}
}
FieldDescription
transactionIdThe Unipaas transaction identifier.
statusUpdates to Captured once the cardholder approves the transaction. You may also receive failed or declined statuses.
amountThe amount of the payment.
currencyThe currency of the payment.
cardTypeThe card scheme, for example VISA.
cardLast4The last four digits of the card.
timestampWhen the transaction was processed.
orderIdYour reference, echoed back from the payment request.

The status updates to Captured once the cardholder approves the transaction. You may also receive failed or declined statuses, so handle these in your POS interface and show the customer the outcome.

  • Confirm the terminal is connected and ready before you send the payment request.
  • Display clear payment instructions on your POS screen while waiting for authorisation.
  • Store the webhook response for reconciliation and support purposes.