Card payment with Softpay¶
With Softpay, the Android device that runs DiKAS becomes a contactless card terminal: the guest holds a card, phone or smartwatch to the device. No separate terminal, no cable and no pairing are needed. The payment runs in the Softpay app on the same device. DiKAS hands it the amount (app switch), the Softpay app reads the card and returns to DiKAS with the result. This page shows the prerequisites, how to set up Softpay step by step and what to do when something goes wrong.
In the terminal list this type is called Softpay.
Who is Softpay for?¶
Softpay suits businesses that want to take contactless payments with a phone or tablet and have a merchant account with Softpay. Several devices on the same DiKAS server can take payments independently of each other: each device reads the card itself. Other card solutions (ZVT terminal, SoftPOS, Stripe, SumUp) can be set up alongside. The overview is under Payments and Hardware → Card Terminals.
Supported devices and operating modes¶
| Device or operating mode | Softpay | Note |
|---|---|---|
| Android device with NFC, DiKAS app as full register (with its own licence) | ✅ Supported | The device reads the card itself. |
| Android device as client on a DiKAS server | ✅ Supported | Here too, the device in your hand reads the card, not the server. Receipt and booking continue to run via the server. |
| Cloud register in the browser with a paired Android device (device agent) | ✅ Supported | Without a paired device DiKAS reports what is missing. Background: Hardware in cloud operation. |
| iPhone / iPad | ❌ Not possible | Softpay through DiKAS exists for Android only. |
| Windows PC, Linux server, DiKAS box | ❌ Not possible | These devices have no NFC. DiKAS reports "Softpay auf diesem Host nicht verfügbar." (Softpay not available on this host). |
The DiKAS app is delivered for 64-bit ARM devices (arm64), which covers practically all current tablets and handhelds.
Euro and countries
Softpay payments run in euros. An amount in another currency is not booked but reported as a case to clarify. In which countries a Softpay merchant account is possible is determined by the contract with Softpay, not by DiKAS.
Prerequisites¶
| Prerequisite | What it is for |
|---|---|
| Merchant account with Softpay with login details and at least one store | The login takes place once in the Softpay app. Softpay, not DiKAS, issues the account and stores. |
| Softpay app on the same device | It reads the card. Use the production variant for real payments and the sandbox variant for trying things out. |
| DiKAS credentials for Softpay | DiKAS identifies itself to Softpay with its own ID for the chosen environment (sandbox or production). You do not have to enter it anywhere. If it is missing for the chosen environment, DiKAS reports "Softpay ist nicht eingerichtet: …" (Softpay is not set up). In that case contact DiKAS support. |
| NFC switched on | Contactless reading. |
| Permissions for the Softpay app | Softpay asks for several Android permissions on the device: accessibility service, notifications, camera and location. If one is missing, DiKAS names it during the readiness check. |
| Internet connection | The payment is authorised online. |
| Current DiKAS app | Download and choice of operating mode: DiKAS on Android. |
| A user with access to Admin → Settings | To set up the terminal. |
Set up in 9 steps¶
Set up on the device
Carry out the setup directly on the Android device that is to take payments with Softpay. The Softpay app is installed and logged in only there.
- Install the Softpay app — the way Softpay provides it for your merchant account.
- Log in to the Softpay app: open Softpay, log in with the merchant credentials and grant the permissions it asks for. DiKAS does not store these credentials and does not log in anywhere for you.
- Switch NFC on (Android settings).
- Open the DiKAS app and log in, then open Admin → Settings → Hardware → Payment options.
- Tap Add terminal, enter a name (e.g. "Phone service") and choose Softpay under Type. DiKAS deliberately sets Environment to Sandbox (test) first, so that a new terminal never moves real money by accident, and switches off the terminal's own printing.
- Set Environment to Production (for real payments).
- In the Softpay section (it appears as soon as a Softpay terminal is in the list) enter the Merchant name — the name under which Softpay lists your company, not the name of an individual outlet. Then Save.
- At the terminal tap Choose store and choose your store from the list (name, city and number are shown). Softpay sets up the virtual terminal for this device from it, which can take a moment. DiKAS confirms with "Store konfiguriert. Das Terminal ist jetzt einsatzbereit." (store configured, the terminal is now ready).
- Tap Check readiness. On success DiKAS reports "Bereit. Terminal …, Softpay …." (ready). Otherwise the message says what is missing (see Errors and remedies).
No store, no payment
As long as no store is chosen for the terminal (display No store), the device cannot take payments with Softpay. Be sure to Save before step 8, because choosing a store only works for a Softpay terminal that is already saved.
Changing the device
Release terminal removes the assignment of the device (after a confirmation). The device can only take payments again after a new store selection. The login in the Softpay app remains.
Default terminal and several devices
Under Default terminal you set which terminal DiKAS uses for card payments when no other assignment applies. Every device with Softpay needs its own terminal entry and its own store selection. During payment the window names the terminal, so it is noticeable when someone pays at the wrong device.
How to take a payment¶
- Enter the sale and choose Pay.
- Choose Debit card or Credit card.
- DiKAS shows the Card payment window with the amount and terminal name and switches to the Softpay app with the amount.
- The guest holds card, phone or smartwatch to the device and enters the PIN if needed.
- The Softpay app returns to DiKAS automatically. DiKAS shows Payment successful with card brand and masked card number, then the receipt is created.
Cancelling¶
Cancel in the DiKAS window only closes this window. The register cannot end a running transaction in the Softpay app; the Softpay app is authoritative for that. End it on the device. The transaction can keep running for up to three minutes. If the payment still goes through during that time, DiKAS points it out with "Kartenzahlung nachträglich eingetroffen" (card payment arrived afterwards): The card payment at the terminal … did go through after all — please check and record the receipt afterwards. The card is then charged without a receipt existing.
When the outcome stays unclear¶
If the transaction stays open or no answer arrives after three minutes, DiKAS shows Payment unconfirmed. If Softpay reports the transaction as "still in progress", DiKAS first asks by itself for about ten seconds, because the payment is usually booked only seconds later.
Do not charge again
The card may have been charged. Tap Check status in the window: DiKAS asks Softpay what became of the payment without charging again. Only when it is confirmed as declined or cancelled is a new attempt safe. If in doubt, first check in the Softpay app whether the payment appears there.
- Still open: "Zahlung unbestätigt — wird geprüft. Bitte NICHT erneut versuchen, sondern kurz warten." (payment unconfirmed, being checked; please do NOT retry, wait briefly). Use Check status again later.
- Went through, amount matches: the payment is assigned to the sale.
- Went through, amount does not match: "Unbestätigte frühere Zahlung über … gefunden — bitte klären (Storno/Abgleich), bevor der Vorgang wiederholt wird." (earlier unconfirmed payment found; please clarify by void/reconciliation before repeating).
This automatic check only applies as long as the DiKAS app has not been restarted. After that, please check the transaction in the Softpay app and with the guest.
Tips and differing amount¶
DiKAS asks Softpay for no tip, no surcharge and no currency conversion. If the terminal charges a different amount anyway, the transaction is not booked. DiKAS reports: "Das Terminal hat einen anderen Betrag belastet (… statt …). Der Vorgang wurde NICHT gebucht — bitte am Terminal stornieren und erneut kassieren (Referenz: …)." (the terminal charged a different amount; the transaction was NOT booked; please void at the terminal and take the payment again). The card is charged in this case. Note the reference and void the payment (see below).
Receipt, void and credit¶
Card receipt¶
The device has no printer of its own. With the default setting (Terminal prints receipt itself off) DiKAS prints the customer card receipt on the receipt, via the receipt printer that is set up (see Items & Printers). Softpay also reports the card brand (e.g. girocard, Visa, Mastercard). On request DiKAS shows it as its own payment method (option Use card type as payment method, see Payments).
End of day¶
Softpay has no end-of-day cut-off: the acquirer closes the settlement on its own schedule. That is why the End of day button is missing for Softpay terminals. You can reconcile card sales via the reports and the End-of-Day Report.
Void¶
You void a receipt with a Softpay payment like any receipt (see Payments → Voiding a Card Payment). DiKAS voids the card with Softpay first, without the guest having to hold the card to the device again, and then creates the void receipt.
- If settlement is already closed, DiKAS reports: "Storno nicht mehr möglich — der Abrechnungslauf ist bereits abgeschlossen. Bitte stattdessen eine Karten-Gutschrift durchführen (Karte des Gastes wird benötigt)." (void no longer possible, settlement closed; do a card credit instead, the guest's card is needed).
- If the Softpay reference is missing for the payment, DiKAS reports: "Storno nicht möglich: Zu dieser Zahlung ist keine Softpay-Referenz hinterlegt." (void not possible, no Softpay reference stored).
Only on the original device
A card void is only possible at the register with the terminal that was used to pay. At another register DiKAS shows: "This card payment was made on terminal … It can only be voided at the register with this terminal."
Card refund¶
A credit is an independent refund to the card, for example when a void is no longer possible. You start it at the register via Menu → Card Credit, or in the payment options via Card refund at the terminal. Enter the amount, Process Credit, the guest holds the card to the device. With Softpay this is a freely selectable refund with card contact. DiKAS protects against double refunds here too: if the outcome stays unclear, it does not blindly refund a second time.
Limits¶
| Topic | Behaviour |
|---|---|
| Currency | Euro only. |
| Simultaneous payments | One payment at a time per device. A second start reports "Es läuft bereits eine Kartenzahlung auf diesem Gerät." (a card payment is already running on this device). |
| Waiting time | Up to three minutes for the result, then "unconfirmed". |
| Offline | Not possible, the payment needs internet. Cash payment still works without internet. |
| Tip on the device | Not requested. |
| End of day | Not applicable, the acquirer closes the settlement. |
| Cancelling from the register | Not possible. The transaction is ended in the Softpay app. |
| Several devices | Each device has its own terminal entry and its own store selection; all take payments independently. |
| iOS | Not possible. |
Errors and remedies¶
| What you see | Cause and remedy |
|---|---|
| "Softpay ist nicht eingerichtet: Es sind keine Produktions-Zugangsdaten hinterlegt." (or "… Sandbox-Zugangsdaten …") — Softpay is not set up: no production (or sandbox) credentials stored | For the chosen Environment the device holds no DiKAS ID for Softpay. Contact DiKAS support. To try things out you can choose Sandbox (test). |
| "Softpay ist nicht eingerichtet: Es fehlt der Händler-Name in den Einstellungen." (the merchant name is missing) | Enter the Merchant name in the Softpay section and Save. |
| "Softpay ist noch nicht konfiguriert: Bitte in den Terminal-Einstellungen einen Store wählen." (choose a store) | Choose store (step 8). |
| "Softpay hat keine Stores geliefert. Mögliche Gründe: in der Softpay-App ist noch kein Händler angemeldet, dem Konto sind keine Stores zugeordnet, oder die hinterlegte Integrator-Kennung passt nicht zur gewählten Umgebung (Sandbox/Produktion)." (Softpay returned no stores; possible reasons: no merchant logged in to the Softpay app, no stores assigned to the account, or the stored ID does not match the chosen environment) | Log in to the Softpay app. Check with your Softpay account whether stores are assigned. Choose the Environment that matches the installed Softpay app (production or sandbox). |
| "Terminal '…' ist noch nicht gespeichert. Bitte die Terminal-Liste zuerst speichern …" (terminal not saved yet) | Save, then start the store selection again. The same applies if the type is not saved as Softpay. |
| "Softpay kennt den gewählten Store (…) nicht mehr. Bitte die Store-Liste erneut öffnen und neu wählen." (Softpay no longer knows the chosen store) | Open the store list again and choose the store again. |
| "Die Softpay-App ist auf diesem Gerät nicht installiert." (the Softpay app is not installed on this device) | Install the Softpay app (matching the chosen Environment). |
| "NFC ist ausgeschaltet — bitte in den Android-Einstellungen aktivieren." (NFC is switched off) | Switch NFC on. |
| "Der Softpay-App fehlen noch Freigaben auf diesem Gerät: …" (the Softpay app still lacks permissions) | Grant the permissions named: switch on the accessibility service for Softpay (Android settings → Accessibility), allow notifications, camera or location for the Softpay app. Then Check readiness. |
| "Es ist noch kein Store konfiguriert — bitte in den Terminal-Einstellungen einen Store wählen." | As above: Choose store. |
| "Das Softpay-Terminal ist nicht bereit." (the Softpay terminal is not ready) | Log in to the Softpay app or check its state there, then Check readiness. |
| "Softpay ist auf diesem Gerät nicht verfügbar." (Softpay is not available on this device) | The register runs in an environment without Softpay connection (e.g. a browser on a PC). Take the payment on the Android device with the DiKAS app. |
| "Softpay auf diesem Host nicht verfügbar." | The payment is executed on a machine without NFC (server, PC, box). Take the payment on the Android device or pair an Android device with the cloud register. |
| "Es läuft bereits eine Kartenzahlung auf diesem Gerät." | An earlier payment is still open. End it in the Softpay app, wait up to three minutes, then try again. |
| "Zahlung abgebrochen." | Cancelled in the Softpay app. Nothing was charged, start again. |
| Payment declined (error text from Softpay, "Kartenzahlung fehlgeschlagen.") | The card was declined. Offer another card or cash. The error text starts with a number that support needs for troubleshooting. |
| Payment unconfirmed, "Softpay hat den Vorgang noch nicht abgeschlossen — der Ausgang ist unbestätigt und wird geprüft. Bitte NICHT erneut kassieren." (Softpay has not yet completed the transaction; outcome unconfirmed, being checked; please do NOT charge again) | Outcome unknown. Do not charge again: Check status, see When the outcome stays unclear. |
| "Das Terminal hat einen anderen Betrag belastet …" | The card is charged, the transaction is not booked. Void the payment with the reference given, then take the payment again. |
| "Kartenzahlung nachträglich eingetroffen" | A cancelled payment went through after all. Check and record the receipt afterwards (or void). |
| "Kartenzahlung ohne Zuordnung" (card payment without assignment) | A result arrived that belongs to no payment of this device. Check in the Softpay app whether a card was charged before taking payment again. |
| "Storno nicht mehr möglich — der Abrechnungslauf ist bereits abgeschlossen. …" | Do a card credit instead. |
| "Ein laufender Softpay-Vorgang kann von der Kasse nicht abgebrochen werden — die Softpay-App ist die maßgebliche Stelle. Bitte den Vorgang am Gerät beenden." (a running Softpay transaction cannot be cancelled from the register) | End the transaction in the Softpay app on the device. |
Next step¶
→ Payments — card payment in daily use, void and credit → Settings → Terminals — all terminal types at a glance