POS integration guide

This guide provides implementation details and examples for each supported MultiSafepay POS payment flow.

Before integration, ensure that the terminal is connected to a stable network and has been activated from your MultiSafepay dashboard.



Manual input

Manual input allows you to process standalone transactions from the MultiSafepay payment application and does not require additional integration steps.

How to initiate a payment

To process a payment using Manual input:

  1. Enter Amount due and select Pay.
  2. The customer taps or inserts their card to complete the payment.
  3. When the payment is completed, a confirmation is displayed on the device.


Payments processed with Manual input are automatically assigned an order_id.

To use a custom order_id, choose one of the following methods:



Cloud POS payments

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.

---
config:
  theme: default
  themeVariables:
    mainBkg: "#3fa9f5"
    actorTextColor: white
    actorBorder: "#d2dae3"
    noteBkgColor: "#faebbf"
    noteBorderColor: "#faebbf"
    labelBoxBkgColor: "#f2f7fc"
    labelBoxBorderColor: "#d2dae3"
  sequence:
    messageFontFamily: "mulish extralight"
    messageFontWeight: normal
    messageFontSize: 12
    actorFontWeight: normal
    actorFontFamily: "mulish"
    actorFontSize: 16
    noteFontFamily: "mulish"
    noteFontSize: 12
---
sequenceDiagram
    participant Kiosk
    participant Merchant
    participant MultiSafepay
    participant Terminal

    Kiosk->>Merchant: Initiates an order payment
    Merchant->>MultiSafepay: Creates an order via API
    MultiSafepay->>Merchant: Returns response
    MultiSafepay->>Terminal: Initiates payment
    Merchant->>MultiSafepay: Subscribes to event notifications
    Terminal->>MultiSafepay: Authorizes payment process
    MultiSafepay->>Kiosk: Event notifications
    opt
        MultiSafepay->>Kiosk: Webhook
    end
⚠️

Note:

Cloud POS payments are not designed for on-device integrations.
Avoid using Cloud POS for applications running on the same device.

Instead, use the App-to-app or Web-to-app flows.

Integration steps


Check the example in the dropdown below to see how the request is sent to our server.

Example /orders request with cloud mode

Example request

curl --request POST \
  --url 'https://api.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": "your-order-id",
  "currency": "EUR",
  "amount": 100,
  "description": "Order description",
  "payment_options": {
    "notification_url": "https://www.example.com/event-notifications",
    "notification_method": "POST"
  },
  "gateway_info": {
    "terminal_id": "your-terminal-id"
  }
}'

Example response

{
  "success": true,
  "data": {
    "order_id": "your-order-id",
    "payment_url": "https://pay.multisafepay.com/your-payment-url",
    "session_id": "your-session-id",
    "events_token": "your-events-token",
    "events_stream_url": "https://api.multisafepay.com/events/stream/"
  }
}


How to initiate a payment

After integrating Cloud POS payments into your system, you can process your first payment. Make sure you have correctly integrated Cloud POS payments.

To complete a Cloud POS payment:



Web applications

Web applications allow you to initiate payments from a browser to the MultiSafepay payment app on the same device.

This diagram shows a successful web application payment flow. Click to magnify.

---
config:
  theme: default
  themeVariables:
    mainBkg: "#3fa9f5"
    actorTextColor: white
    actorBorder: "#d2dae3"
    noteBkgColor: "#faebbf"
    noteBorderColor: "#faebbf"
    labelBoxBkgColor: "#f2f7fc"
    labelBoxBorderColor: "#d2dae3"
  sequence:
    messageFontFamily: "mulish extralight"
    messageFontWeight: normal
    messageFontSize: 12
    actorFontWeight: normal
    actorFontFamily: "mulish"
    actorFontSize: 16
    noteFontFamily: "mulish"
    noteFontSize: 12
---
sequenceDiagram
    participant Web applications
    participant Terminal

    Web applications->>Terminal: Initiates payment
    Terminal->>Web applications: Returns payment status via callback
    opt
        Terminal->>Web applications: Webhook
    end

Integration steps



How to initiate a payment

After completing the integration, you can initiate payments from your web application.



Native applications

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.

---
config:
  theme: default
  themeVariables:
    mainBkg: "#3fa9f5"
    actorTextColor: white
    actorBorder: "#d2dae3"
    noteBkgColor: "#faebbf"
    noteBorderColor: "#faebbf"
    labelBoxBkgColor: "#f2f7fc"
    labelBoxBorderColor: "#d2dae3"
  sequence:
    messageFontFamily: "mulish extralight"
    messageFontWeight: normal
    messageFontSize: 12
    actorFontWeight: normal
    actorFontFamily: "mulish"
    actorFontSize: 16
    noteFontFamily: "mulish"
    noteFontSize: 12
---
sequenceDiagram
    participant Native applications
    participant Terminal

    Native applications->>Terminal: Initiates payment via intent call
    Terminal->>Native applications: Returns payment status via callback
    opt
        Terminal->>Native applications: Webhook
    end

Integration steps



How to initiate a payment

After completing the integration, you can initiate payments from your native application.



Next step



Did this page help you?