Email the customer a counter receipt
- Credentials, one of
- Station token
- OAuth access token
- Scopes
orders:write- Subscription
- Needs an active plan. Otherwise
403 subscription_locked. - Idempotency
- Send an
Idempotency-Keyheader. A retry with the same key does the work once.
A walk-in only gets a receipt when asked, so this is that ask: it goes to the email on the order, for a customer of any kind. Once per order: a repeat, or a retry, sends nothing and answers already_sent. The order must have an email (422 validation_error: "No email for this customer.") and be paid (422: a receipt says the money arrived). A send that failed is 500 internal_error; try again.
The mail is sent from the store's name; it is transactional, so it does not count against the daily email limit of connected AI apps.
Access: OAuth scope orders:write; write-gated by the subscription.
AuthorizationBearer <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).
storeId*stringA store the person can reach. Any other id answers 404, never 403.
orderId*stringIdempotency-Key*stringRequired on every write. Minted on the device when the person taps, reused on every retry. A write without one, or with one that does not match the pattern, is refused with 422 validation_error. Scoped to the token's subject, remembered 24 hours. A replay returns the first 2xx response with Idempotent-Replay: true; a request still running answers 409 in_flight; the same key with a different method, path or body answers 409 idempotency_key_reused; non-2xx results are not remembered. If the key store cannot be read nothing is processed and the answer is 503 idempotency_unavailable: retry with the same key.
^[A-Za-z0-9_-]{8,128}$OK
application/json- response
data*curl -X POST 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/orders/<orderId>/counter-receipt/email' \ -H 'Authorization: Bearer <access_token>' \ -H 'Idempotency-Key: <unique_key>'{ "data": { "status": "sent" }}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.
Storefront client
@shopeazy/storefront-client: the typed client for the Storefront API.