Solutions
We currently offer this product in the following countries:
| Countries | Netherlands, Belgium |
|---|---|
| Countries for partners | Netherlands, Belgium, Italy, Spain |
If you are interested in our Point of Sale solutions, email [email protected].
MultiSafepay POS devices support different payment flows depending on your integration setup and business needs:
Process payments directly on the device without external integration.
Initiate payments from an external system such as your POS or backend.
Trigger payments from applications running on the same device.
Compare payment flows
| Feature | Manual input | Cloud POS payment | On-device applications |
|---|---|---|---|
| Initiated from | Device | External system (POS/backend) | Same device (app or browser) |
| Integration needed | None | Backend or POS integration | Web or Android app integration |
| Best for | Simple setups, standalone usage | POS systems and external integrations | Custom apps and embedded experiences |
| User interaction | Manual input on device | Triggered remotely | Triggered from app or browser |
| Development effort | None | Medium to high | Medium to high |
| Flexibility | Low | High | High |
Manual input
To start processing payments manually on your device:
- Enter Amount due and select Pay.
- The customer taps or inserts their card to complete the payment.
- Once the payment is completed, a confirmation is displayed on the device.
Cloud POS payment
With cloud POS payment, you can initiate payments from an external application.
This diagram shows a successful cloud-based POS payment flow. Click to magnify.
NoteBefore initiating payments, ensure cloud mode is enabled. See features.
Cloud POS payments are not designed for on-device integrations.
Avoid using Cloud POS for native applications running on the same device.Instead, use the on-device applications flow.
How to initiate payments
Enable cloud mode
Enable cloud mode on your device. To learn how to enable this setting, see Cloud Mode - Features.
Create an order
In your backend, create an order and include the parameters mentioned in the request:
curl --request POST \
--url 'https://testapi.multisafepay.com/v1/json/orders?api_key=YOUR_GROUP_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '
{
"type": "redirect",
"order_id": "test-663",
"gateway": "",
"currency": "EUR",
"amount": 100,
"description": "Test Order Kiosk Description",
"payment_options": {
"notification_url": "https://www.example.com/event/notifications",
"notification_method": "POST"
},
"customer": {
"locale": "nl_NL",
"phone": "0612345678",
"email": "[email protected]"
},
"gateway_info": {
"terminal_id": "000000MB"
}
}'For more information, see Recipe – Cloud POS payment
Wake up the device
Once the payment is created from your backend, the device will wake up and show the amount and details on the payment screen.
Subscribe to event notifications
Subscribe to our event notifications to receive real-time status updates. You can integrate this in your backend to show success and declined screens.
On-same device third-party applications
Web applications
Web applications let you initiate payments on the same device from a browser to the MultiSafepay payment app.
This diagram shows a successful web application payment flow. Click to magnify.
How to initiate payments
Create an order
Create an order using the MultiSafepay API.
Example
curl -X POST \
"https://api.multisafepay.com/v1/json/orders?api_key={your-api-key}" \
-d '{
"type": "redirect",
"order_id": "my_order_id",
"gateway": "",
"currency": "EUR",
"amount": 10,
"description": "Order Description",
"payment_options": {
"notification_url": "https://www.example.com/paymentnotification",
"notification_method": "POST"
}
}'Initiate the payment
Use the following URL to initiate a payment:
msp://?amount={$amount}&order_id={$order_id}&callback={$callback_url}&printing=true&tipping=true¬ification_url={$notification_url}Parameters
amount: Amount in EUR centsorder_id: Unique identifier (max 50 characters, allowed: a-z A-Z 0-9 / - _)callback_url: Redirect URL to return payment statusnotification_url(optional): Receive asynchronous payment updatestipping: Enable tippingprinting: Enable receipt printing
Handle the payment result
The payment will return one of the following statuses:
- completed
- cancelled
Native applications (App-to-app)
Native applications let you initiate payments from your app to the MultiSafepay payment app on the same device.
This diagram shows a successful native application payment flow. Click to magnify.
How to initiate payments
For native integrations, we provide an Android integration using Android Intents .
Your application sends a payment request via an Intent, which is handled by the MultiSafepay app. Once the transaction is processed, the user is redirected back to your app with a callback containing the payment result.
Possible statuses:
completedcanceleddeclined- Return an
exception
See the integration guide:
MultiSafepay Android POS integration
Tap to PayApp-to-app behavior on Tap to Pay devices may differ slightly from SmartPOS terminals.
See the Tap to Pay notes in the integration guide for specific limitations and requirements:
Next step: Device setup
Updated 9 days ago