Overview
This page is the technical starting point for the ShopBack In-Store Payments API: credentials, payment flows, core endpoints, and environment base URLs.
Use these APIs to accept ShopBack Pay for in-store and point-of-sale (POS) payments — including classic counter and terminal checkout, and in-store / POS payments through a customer-facing app or customer-facing website (for example table ordering, order through app, browse-and-pay in store).
For product fit (surfaces, in-store vs online, when to use each payment method), see In-Store Integrations.
Prerequisites
You must be onboarded with ShopBack before calling these APIs. You will receive:
| Credential | Description |
|---|---|
accessKeySecret | Secret key used to generate HMAC signatures for API requests |
accessKeyId | Identifier paired with accessKeySecret |
ShopBack also issues:
| Credential | Description |
|---|---|
posId | Unique ID for each in-store / POS payment surface that accepts ShopBack Pay — including each customer-facing app or website instance, kiosk, cashier register, or payment terminal. Send the assigned posId on every request for that surface. |
Note: Sandbox and production credentials may differ. Production
accessKeyId/accessKeySecretare issued at go-live. Assign aposIdper terminal or payment surface (app, website, kiosk, cashier, or terminal).
Payment flows
The In-Store Payments API supports three methods. Implement one or more depending on your surface.
| Method | Best for | Typical surfaces |
|---|---|---|
| Merchant-presented QR | Your UI shows a ShopBack QR; customer scans with the ShopBack app | App, website, kiosk, cashier display, terminal |
| Customer-presented QR | You scan the customer’s ShopBack QR | Cashier, scanner, terminal |
| URL redirect | Customer is sent into ShopBack to pay, then returned to your app or site | Customer-facing apps and websites only |
Merchant-presented QR
- Create an order:
POST /v1/instore/order/create - Display the returned QR on your customer-facing app or website, or on a kiosk, cashier display, or terminal
- Customer scans with the ShopBack app and pays
- Poll order status and/or handle the payment notification webhook
- Refund or cancel via the order APIs as needed
Customer-presented QR
- Customer presents a ShopBack QR
- Your cashier, scanner, terminal, or assisted flow reads it and calls
POST /v1/instore/order/scan - Confirm order status and/or handle the payment notification webhook
- Refund or cancel via the order APIs as needed
URL redirect (customer-facing apps and websites)
Use this for in-store / POS payments where the UI is a customer-facing app or website, and you want ShopBack to host the payment step.
- Create the in-store / POS payment via the In-Store Payments API (same order lifecycle as other in-store methods)
- Redirect the customer to ShopBack’s payment URL to complete payment
- ShopBack returns the customer to your app or website (return / deep link URL you configure)
- Confirm final status via order status API and/or payment notification webhook
- Refund or cancel via the order APIs as needed
Do not use URL redirect for kiosk-only, cashier-scan, or payment-terminal hardware flows that rely on QR at the device. For those, use merchant-presented or customer-presented QR.
Core endpoints
Use these endpoints for in-store / POS create, scan, status, refund, and cancel — including when the payment UI is a customer-facing app or website (QR or URL redirect).
| Action | Endpoint | Flow |
|---|---|---|
| Create order (show QR or start redirect) | POST /v1/instore/order/create | Merchant-presented QR; URL redirect (apps / websites) |
| Scan consumer QR | POST /v1/instore/order/scan | Customer-presented QR |
| Get order status | GET /v1/instore/order/{referenceId} | All methods |
| Refund captured order | POST /v1/instore/order/{referenceId}/refund | All methods |
| Cancel order | POST /v1/instore/order/{referenceId}/cancel | All methods |
After create, merchant-presented QR displays the QR from the response; URL redirect sends the customer to ShopBack’s payment URL, then verifies status when they return to your app or website.
Certification and go-live: Implementation.
API contract
Note: Paths below are relative. Prefix with the base URL for your country and environment.
Change log
| Document version | Date introduced | Changes made |
|---|---|---|
| v1.1 | 11 Aug 2022 | Support both Pay and PayLater |
| v1.2 | 22 Aug 2022 | Add clarifying text for referenceId; use ISO-3166-1 Alpha for country code |
| v1.3 | 1 Sept 2022 | Surface HTTP 409 codes; show partnerId as not part of query param |
| v1.4 | 1 Jan 2023 | Add Consumer Presented QR Code endpoints |
| v1.5 | 7 Sep 2023 | Add POSI AU API environment |
| v1.6 | 13 June 2025 | Add POSI HK API environment |
API environment
| Country | Environment | URL |
|---|---|---|
| All | Sandbox | https://integrations-sandbox.shopback.com/posi-sandbox |
| Singapore | Production | https://integrations.shopback.sg/posi |
| Hong Kong | Production | https://integrations.shopback.com.hk/posi |
What's next
- Authentication
- Generating an HMAC Signature
- Create / Scan order endpoints in this API reference
- Implementation — certification and go-live
- In-Store Integrations — product fit and method selection