ShopEazydevelopers
API referenceMerchant API BetaPoint Of Sale

Has the customer paid yet

Beta
Credentials, one of
  • Station token
  • OAuth access token
Scopes
orders:read
GET
/v1/merchant/stores/{storeId}/till/scan-to-pay/{orderId}

waiting, paid, or cancelled (the order was cancelled). The till asks every few seconds while the QR is up and stops when it is closed: one order, read by id. Nothing is charged or changed.

Access: OAuth scope orders:read; not write-gated.

Authorization

headerAuthorizationBearer <token>

It may call only the operations whose x-stations lists its kind, on its own store, and acts through the access of the owner or admin who paired it. Unpairing it, or that person leaving the business, ends it (401 station_revoked).

Path Parameters

storeId*string

A store the person can reach. Any other id answers 404, never 403.

orderId*string

Response Body

OK

application/json
  1. response
data*
Example Request
curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/till/scan-to-pay/<orderId>' \  -H 'Authorization: Bearer <access_token>'
Example Response
{  "data": {    "orderId": "riEhGrBxE2kF04RzXyaz",    "number": "ORD-00001",    "status": "waiting",    "totalMinor": 32900,    "paidMinor": 0  }}

Start a Scan to pay sale POST

The customer pays on their own phone. The sale is priced from the catalogue as the till prices it (a keyed-in `custom` line, a price agreed at the till and the shelf check included), made as an UNPAID order, and the answer is the link for its pay page to show as a QR. It charges through the merchant's own card partner (Yoco, iKhokha or Peach: the first connected one the storefront charges through); the link carries a pass for this one order and works with the online shop switched off. Nothing is charged by this call: the partner confirms the payment like any online one, so VAT, the platform fee and stock follow the online rules. Poll `getScanToPayStatus`. The `Idempotency-Key` makes a retry return the first answer, so one tap makes one order and one link. No card partner connected is 422 `validation_error`; an item that shows out of stock is 409 `out_of_stock` (send `allowOversell` to sell it anyway). An order the customer never pays is cancelled with `cancelOrder`; a paid one is handed over with `fulfilOrder`. Till PINs: when the store uses them, the cashier is the one `cashierTicket` names (403 `cashier_required` without one). Access: OAuth scope `orders:write`; write-gated by the subscription.

The data of a counter receipt, to print or show GET

What the till's own slip is built from, so a printer, WhatsApp and the screen never disagree: the shop's name, address, phone and (for a VAT vendor only) VAT number, the lines, any discount, the total, the VAT inside it, each payment with the cash tendered and the change given, and the first name of who served. Minor units, ZAR. Printing is the client's. Access: OAuth scope `orders:read`; not write-gated.