Products · mPOS
Tap to Phone (mPOS)
Turn any NFC-enabled Android device into an EMV contactless reader. No extra hardware — the device becomes the terminal.
4 endpointsmpos_
ℹ
Requirements
Android 9 (API level 28) or higher · NFC hardware present and enabled · Meras Agent APK installed from the official distribution channel · Merchant KYC approved and live environment activated.
How it works
- 1
Install the Meras Agent app
Download the Meras Agent APK from agent.merashub.com/apk and install on any Android 9+ device with NFC. The app handles all EMV kernel initialization and communicates with the MerasPay backend over TLS. - 2
Register the device as a terminal
CallPOST /v1/terminals/mposwith the device fingerprint to create a terminal record. The API returns anactivation_codethat the Meras Agent app uses to bind itself to the merchant account. - 3
Customer taps card or NFC phone
The merchant opens the Meras Agent app and enters the transaction amount. The app activates the NFC reader. The customer taps their Visa or Mastercard contactless card — or an NFC-enabled phone — to the merchant device. - 4
EMV cryptogram verified server-side
The app captures the EMV transaction data (ARQC cryptogram, track data) and sends it to the MerasPay gateway over an encrypted channel. MerasPay forwards to Cybersource CP for authorisation and cryptogram validation. - 5
Webhook fires, receipt issued
On a successful authorisation response, MerasPay books the ledger, fires apayment_intent.succeededwebhook to your endpoint, and the Meras Agent app displays a receipt. A digital receipt can also be sent via SMS or email.
Endpoints
POST
/v1/terminals/mposRegister a new mPOS device and generate an activation code.
GET
/v1/terminals/mpos/{id}Retrieve a terminal record and its current status.
POST
/v1/terminals/mpos/{id}/activateActivate a registered terminal (confirms the device binding).
POST
/v1/terminals/mpos/{id}/deactivateDeactivate a terminal — blocks new transactions immediately.
Register — parameters
| Name | Type | Description |
|---|---|---|
device_idrequired | string | Android device fingerprint. Retrieved via the Meras Agent SDK — use DeviceInfo.getFingerprint(). |
merchant_location | string | Human-readable branch or outlet name. Shown in the merchant portal terminal list. |
label | string | Short name for this terminal (e.g. "Counter 1", "Delivery driver – Ahmed"). ≤60 chars. |
metadata | map | Free-form string-string map; round-trips on every response. |
Sample — register + payment webhook
POST /v1/terminals/mposbash
curl -X POST https://api.merashub.com/v1/terminals/mpos \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"device_id": "samsung_a54_8c3f9e2a1b4d",
"merchant_location": "Main Street branch",
"label": "Counter 1"
}'201 Createdjson
{
"id": "mpos_01HZH1CYJX5F0P9SM2G7Y6ZL3N",
"status": "pending_activation",
"device_id": "samsung_a54_8c3f9e2a1b4d",
"label": "Counter 1",
"activation_code": "MP-4821-9037",
"created_at": "2026-05-25T10:15:30Z"
}payment_intent.succeeded webhook (card-present)json
{
"id": "evt_01HZH2DYJX6G1Q0TN3H8Z7AM4P",
"type": "payment_intent.succeeded",
"data": {
"object": {
"id": "pi_01HZH2DYJX6G1Q0TN3H8Z7AM4P",
"amount_minor": 12500,
"currency": "DJF",
"status": "succeeded",
"payment_method_details": {
"type": "card_present",
"card_present": {
"brand": "visa",
"last4": "4242",
"entry_mode": "contactless",
"terminal_id": "mpos_01HZH1CYJX5F0P9SM2G7Y6ZL3N"
}
}
}
}
}Supported card types
- Visa Contactless
EMVCo Level 1 and Level 2 certified. payWave transactions up to the local CVM limit without PIN.
- Mastercard Contactless
Mastercard PayPass / Tap & Go. EMVCo Level 1 and Level 2 certified.
- NFC-enabled mobile wallets
Any HCE-based wallet presenting a Visa or Mastercard token (e.g. Google Pay, Samsung Pay) is accepted.
⚠
PCI DSS CPOC requirements
Tap to Phone is subject to PCI DSS CPOC (Contactless Payments on COTS) requirements. The Meras Agent app implements all required security controls including runtime integrity checks and secure enclave key storage. Do not load the APK from unofficial sources — only the signed APK distributed via agent.merashub.com/apk is certified.