Processing Payments
Take a card-present payment for an invoice on a RevKeen terminal from the dashboard
Once your terminal is activated and online, you can take card-present payments for invoices from the RevKeen dashboard.
Terminal payments are started from the dashboard. The terminal payment and device endpoints are not part of the public RevKeen API or SDK; they are available to approved partners only. You can still receive the published terminal_payment.*, terminal_refund.succeeded and terminal_void.succeeded webhook events.
- How to take payment for an invoice on a terminal
- Choosing a terminal when you have more than one
- What each payment state means
- How to cancel a payment and handle a decline
Take payment for an invoice
The Take payment in person action appears on an invoice when all of these are true:
- the invoice is Sent, Viewed, Overdue or Partially paid
- the terminal app is activated for your account
- at least one terminal is online
To take the payment:
- Open the invoice in Invoices.
- Select Take payment in person. The Terminal payment window opens.
- Check the terminal. If only one terminal is online, it is selected for you. If several are online, choose one from Select terminal....
- Choose the notifications to send: Email invoice to the customer and Email receipt to you are on by default.
- Select the charge button. It shows the invoice amount, for example Charge £50.00 to terminal.
- Ask the customer to present their card on the terminal.
The amount is always the invoice total, in the invoice currency. It cannot be edited in this window. When the payment is approved, the invoice is marked as paid.
You can also charge a terminal from the Terminal channel in the invoice send dialog.
Only terminals that are online can take payments. If none are online, the window shows No terminals online. Check that the connector is running and the terminal is powered on. See Troubleshooting.
Payment states
While the payment is in progress, the window shows its state:
| State | What it means |
|---|---|
| Waiting for payment | The amount is on the terminal. The customer should present their card. |
| Payment approved | The card was charged. The window shows the auth code and masked card number. |
| Terminal payment failed or a decline reason | The payment did not complete. See Handling declines. |
| Payment cancelled | The payment was cancelled before the card was charged. The invoice is still payable. |
| Payment timed out | The terminal did not return a result in time. |
The window cannot be closed while a payment is being processed.
If a payment times out or the connection drops, check the invoice and its payments before you try again. A terminal can complete a payment even when the dashboard did not receive the result.
Cancelling a payment
While the window shows Waiting for payment, select Cancel. Once a payment is approved it cannot be cancelled. Use a void or refund instead.
Handling declines
When a payment is declined, the window shows the reason, for example Insufficient funds or Card expired. Ask the customer to use a different card. Where a retry makes sense, the window offers Try again on the same terminal.
Receiving results in your own systems
The terminal payment flow publishes these webhook events:
| Event | When it is sent |
|---|---|
terminal_payment.requested | The payment was sent to the terminal |
terminal_payment.succeeded | The payment was approved |
terminal_payment.declined | The card was declined |
terminal_payment.cancelled | The payment was cancelled |
terminal_payment.error | The payment failed, for example a timeout or lost connection |
See the webhook event catalogue for payloads.
Related
- Refunds and Voids -- Reverse terminal transactions
- Terminal Integration Overview -- What developers can build on today
- Troubleshooting -- Common issues and solutions
Owner: david · Reviewed 30 Sep 2026 · Next review 29 Dec 2026