With a cloud integration, your POS software and the payment terminal talk to each other over the internet – no physical cable or local connection needed.
How it works (high level):
The POS software sends a payment request to the Market Pay platform.
The Market Pay platform forwards this request to the payment terminal.
The terminal handles the customer interaction and processes the payment.
The result is sent back through the platform.
Your POS software receives the final transaction status.
This approach makes the setup simpler, more flexible, and easier to scale across multiple devices.
Setting up secure communication
Before your ECR can exchange messages with the payment terminal, a secure certificate must be in place:
You create a Certificate Signing Request (CSR) and send it to Market Pay (your implementation manager)
The Market Pay AppOps team issues the certificate and returns it to you.
You install the certificate on your system.
👉 Read the step-by-step guide for certificate setup
Configure your network
Ensure your network and firewall allow outgoing HTTPS traffic to the Market Pay services and partner endpoints. Whitelist the IPs and TCP ports below so POS apps and terminals can reach the services they need.
NTMS – Terminal Management System: Manage settings and updates.
MPG – Market Pay Gateway: Process and route all transactions.
RKI – Remote Key Injection: Manage encryption keys remotely.
👉 Check the full list of network configuration requirements
POS ↔ Terminal Communication
Your ECR communicates with the terminal using the following API endpoints:
You will find detailed specifications here: api-hub.market-pay.com
1. POST /process-transaction
What it does: Starts a new payment and shows the payment screen on the terminal.
How it works: Status updates (card inserted, PIN entered, payment authorized) are sent to your configured notification URL.
When to use: Any time a cashier initiates a payment.
👉 See detailed docs for /process-transaction
2. GET /last-transaction
What it does: Retrieves the result of the most recent transaction.
How it works: Helps recover results if the POS lost connection. Always check the transactionId to ensure you match the right request.
When to use: If your POS didn’t receive a result and you need to confirm what happened.
👉 See detailed docs for /last-transaction
3. POST /cancel-transaction/{terminal-id}
What it does:
Cancels a previously successful payment by performing a transaction reversal.
How it works:
The terminal sends a reversal request to the acquirer. Status updates (initiated, in progress, completed) are sent to your notification URL.
When to use:
Use when a payment was made in error or needs to be voided before settlement.
👉 See detailed docs for /cancel-transaction
4. POST /update-terminal
What it does: Requests the terminal to update its software or configuration.
When to use: During rollouts, maintenance, or before introducing new features.
👉 See detailed docs for /update-terminal
5. POST /abort-transaction
What it does: Cancels a transaction in progress.
How it works: If the request arrives early, the transaction is stopped. If too late, the terminal may complete it anyway; in that case, the POS must send a Refund.
When to use: If a customer or cashier decides to cancel before completion.
👉 See detailed docs for /abort-transaction
6. GET /terminals
What it does: Lists all connected terminals for a given store code.
How it works: Returns an empty response if no sessions are active.
When to use: At POS startup, to check which terminals are available.
👉 See detailed docs for /get-terminals
7. How to Generate Your CSR (Certificate Signing Request)
To obtain your certificate, you need to generate a CSR (Certificate Signing Request) and a private key using OpenSSL.
1. Generate the CSR and Private Key
Use the following command depending on your environment:
For pre-production:
openssl req -nodes -newkey rsa:2048 -keyout POS_MerchantName_PREPROD_PRIVATEKEY.key -out POS_MerchantName_PREPROD_CSR.csr
For production:
openssl req -nodes -newkey rsa:2048 -keyout POS_MerchantName_PROD_PRIVATEKEY.key -out POS_MerchantName_PROD_CSR.csr
Replace
MerchantNamewith your actual merchant identifier (e.g.POS_MyShop_PREPROD_PRIVATEKEY.key).
2. Fill in the Required Information
When prompted by the OpenSSL command, fill in the following fields:
| Field | Description | Example |
|---|---|---|
| Country Name (C) | 2-letter ISO code | FR |
| Organization Name (O) | Legal name of your company | MyShop SAS |
| Common Name (CN) | Usually your domain or merchant identifier | myshop.com |
| Organizational Unit (OU) | Specify the usage: either POS Cloud or Online Payments | POS Cloud |
⚠️ Please ensure the Organizational Unit (OU) field clearly indicates the certificate usage — this information is mandatory.
Other fields can be left empty.
3. Send the CSR File
Once the CSR is generated, send the .csr file to your Market Pay contact.
Do not send the .key file — keep it securely stored.
4. Optional (Testing Only)
You can also generate a CSR using an online tool (not recommended for production):
👉 Online CSR and Key Generator – SSL.com