Point of Sale (POS)

Take card-present EMV payments on a POS device: prerequisites, device setup and pairing, payments and refunds.

The POS module lets platforms, sellers and PSPs take card-present EMV payments on a physical payment device and get the result through the Payments API.

How to: Take in-person payments with a POS device walks through the whole flow, including pairing a device yourself (pos/pair, pos/authenticate) and transmitting the day's transactions (pos/transmit).

Supported payment methods

The device accepts payment cards (Visa, Mastercard, American Express, Diners Club). Other methods depend on the device; ask PayMe Partners (partners@payme.io) for the current list.

Before you start

Item Description
seller_payme_id The seller's MPL. It authenticates payments and refunds.
payme_client_key Partners only. Needed to order devices with vas-enable. A seller can take payments with seller_payme_id alone.
Active POS service The seller must have an active POS service; otherwise payment calls return error 720.
A paired device A supported POS device, paired and authenticated. Its pos_id names the device in each payment request.

Set up a device

  1. Order the devices with Order POS devices. A new terminal takes up to 5 business days.
  2. PayMe pairs the device and then authenticates it. Each step sends a callback: point-of-sale-action-pair-update, which carries the pos_id, then point-of-sale-action-authenticate-update. The device can't take payments until both steps are done.
  3. The device ships to the seller.

Take a payment

Call Create a POS payment (POST /sales) with payment.method pos and the device's payment.pos_id. PayMe pushes the payment to the device and waits for the buyer. The result comes back in the same response; there is nothing to poll.

A declined or canceled payment returns HTTP 200 with status_code 1. Always check status_code, not the HTTP status.

You can also do it in two steps: create the sale with generate-sale and sale_payment_method pos, then push it to the device with PUT /sales/{payme_sale_id}, sending seller_payme_id and a payment object with method pos and pos_id.

Refund a payment

Call Refund a POS sale (PUT /sales/{payme_sale_id}) with payment.action refund. The refund is sent to the device.

Base URLs

Environment Base URL
Sandbox https://sandbox.payme.io/api
Production https://live.payme.io/api

Endpoints