Viva.com and the card terminal
Updated on 2026-08-28
Viva.com
Stuur het bedrag van de kassa naar de betaalterminal op de balie, zonder het over te typen. (Send the amount from the till to the card terminal at the desk, without retyping it.)
Without the connection the hairdresser retypes the amount on the card reader. With it, the till pushes the amount across and sees for itself whether the payment went through — no more typos, and the receipt closes by itself.
At Viva this runs over their Cloud Terminal API: the till sends the amount to Viva, Viva pushes it to your device, and the till then asks every second what became of it. So the device does not have to be on the same wifi network as the iPad.
Not available yet. You can already fill in the keys and test them, but the switch stays away:
De koppeling is gebouwd maar nog niet tegen een echt toestel gedraaid, en het is bij Viva nog niet bevestigd of Bancontact op de terminal aangenomen wordt. (The connection is built but has not yet been run against a real device, and Viva has not yet confirmed whether Bancontact is accepted on the terminal. Fill in the keys and press test connection — switching it on becomes possible once a test payment on a real terminal has succeeded.)
Read this before ordering anything: Bancontact is not confirmed
In a Belgian hair salon, most people pay with Bancontact. We do not know today for certain whether a Viva terminal accepts that card, and we are not going to make it sound nicer than it is:
- Its Belgian price list names Bancontact explicitly as a card payment on the spot: Card Present — Bancontact consumer card — € 0.14. That is the strongest sign that it can work.
- But in the list of payment methods on the device in its developer documentation, Bancontact does not appear. There it shows up only among the online methods ("Bancontact QR").
A rate is not yet a working terminal. Ask Viva explicitly before ordering a device or signing a contract, and ask at the same time whether it is settled as Bancontact or as co-badged Maestro — that changes the rate and what your client sees on screen.
And mind the device's commitment period
There are two ways to get a card reader at Viva, and the difference is bigger than the price:
| Buy | you pay for the device once and are tied to nothing; the cheapest reader in their shop is € 49 |
| Per month | cheaper to start — from around € 8 a month — but with a 24-month term and an early-termination fee if you want out sooner |
That term sits in the small print of the monthly rate rather than next to the price; have it confirmed before you sign. And anyone unsure whether Bancontact works should not start a two-year contract: buy the device, or wait until you have seen a test payment succeed.
What you need
| A Viva.com account | in your own business's name, with your own payouts |
| POS API keys | a client id and a client secret from the Viva portal |
| A registered terminal | via the Viva.com Terminal app, and visible as Live |
| The terminal id of each device | in the app under More → About → Source Terminal ID |
Setting it up
Instellingen → Koppelingen → Betalen → Viva.com → Instellen (Settings → Integrations → Payments → Viva.com → Configure).
| Field | Required | Explanation |
|---|---|---|
| Client-id | yes | Viva portal → Settings → API access → POS APIs credentials. A long code ending in .apps.vivapayments.com. |
| Client secret | yes | From the same screen. Viva shows it once; store it right away. |
| Omgeving (environment) | yes | Start in the demo environment. Only switch to production once you have seen a test payment succeed. |
The keys belong to the salon; which terminal hangs on which till is recorded per till. Two desks with two devices are two different terminal ids under one set of keys.
The test
Click Verbinding testen (test connection). The test asks which devices are live: nothing is created and no money moves. Possible answers:
- 2 terminals live gevonden (eerste: 16000010). (2 terminals found live (first: 16000010).)
- De sleutels kloppen, maar er staat geen enkele terminal live op dit Viva-account. (The keys are correct, but no terminal is live on this Viva account.) — switch the device on and register it with the Viva.com Terminal app.
- Viva: de client-id of het geheim wordt geweigerd. (Viva: the client id or the secret is refused.)
- Viva is niet bereikbaar. Netwerkprobleem? (Viva cannot be reached. Network problem?)
Zero terminals is a failed test here, unlike with Stripe: this connection exists only to take payments with a device.
At the till
You ring up the receipt, the till puts the amount on the terminal and waits. What the till shows:
| What you see | What it means |
|---|---|
| Bezig (busy) | The amount is on the terminal. The client has not offered their card yet. |
| Betaald (paid) | The payment succeeded and is on the receipt. |
| Geweigerd (declined) | The card was declined — not enough funds, wrong PIN. Try another card. |
| Geannuleerd (cancelled) | It was broken off, on the device or from the till. |
| Geen antwoord (no answer) | Nobody knows whether money moved. Check the device or the Viva portal before ringing it up again. |
That last one is deliberately not "failed". A payment whose answer never reached us may not be quietly written off: the hairdresser would ring it up a second time while the client has already paid.
Tipping is switched off. The till always sends exactly the amount on the receipt and does not ask for a tip on the device: an amount that grows on the terminal no longer matches your daily takings.
Breaking off
If you cancel at the till, HairConnect asks Viva to withdraw the order. That only works as long as the card has not been read. If the client has already started, you read De betaling loopt al op de terminal (the payment is already running on the terminal) — breaking off is then only possible on the device, and the till waits to see how it ends.
Refunding
A refund also goes to the terminal: somebody has to be there to complete it, just like an ordinary payment. So the till puts the refund on busy and not straight to done — the money is only on its way once the device confirms.