Implementation
Overview
This guide walks through integrating, certifying, and going live with the ShopBack In-Store Payments API.
Use it when you accept ShopBack Pay for in-store and point-of-sale (POS) payments — including 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).
Before you start:
- Confirm product fit on In-Store Integrations (surfaces, in-store vs online, payment methods)
- Use API Reference — Getting Started for credentials, environments, and endpoint details
Choose your payment method(s)
Implement one or more of these in-store / POS methods:
| Method | When to use | Primary API |
|---|---|---|
| Merchant-presented QR | Your app, website, kiosk, cashier display, or terminal shows a ShopBack QR | POST /v1/instore/order/create |
| Customer-presented QR | Cashier, scanner, or terminal scans the customer’s ShopBack QR | POST /v1/instore/order/scan |
| URL redirect | Customer-facing app or website sends the customer into ShopBack to pay, then returns them to your app or site | POST /v1/instore/order/create, then redirect to ShopBack and confirm status on return |
All methods share status, refund, and cancel:
GET /v1/instore/order/{referenceId}POST /v1/instore/order/{referenceId}/refundPOST /v1/instore/order/{referenceId}/cancel
Integration
Step 1: Request sandbox credentials
Request sandbox API credentials from the Partnership or Integration Team.
You will receive:
| Credential | Description |
|---|---|
accessKeySecret | Used to generate HMAC signatures |
accessKeyId | Identifier paired with accessKeySecret |
posId | Unique ID for each in-store / POS payment surface — including each customer-facing app or website instance, kiosk, cashier register, or payment terminal |
Note: Sandbox and production credentials may differ. Production credentials are issued at go-live.
Step 2: Connect to the correct API environment
Use the sandbox or production base URL for your country, as listed in API Reference — Getting Started (API environment).
Step 3: Generate an HMAC signature
Generate an HMAC signature for each API request using accessKeySecret.
See Generating an HMAC Signature.
Step 4: Implement the APIs for your method(s)
Merchant-presented QR
- Create an order:
POST /v1/instore/order/create - Display the returned QR on your customer-facing app or website, kiosk, cashier display, or terminal
- Customer scans with the ShopBack app and pays
- Check status:
GET /v1/instore/order/{referenceId}and/or handle the payment notification webhook - Refund or cancel as needed
Customer-presented QR
- Scan the customer’s ShopBack QR:
POST /v1/instore/order/scan - Check status:
GET /v1/instore/order/{referenceId}and/or handle the payment notification webhook - Refund or cancel as needed
URL redirect (customer-facing apps and websites)
- Create an order:
POST /v1/instore/order/create - Redirect the customer to ShopBack’s payment URL to complete payment
- ShopBack returns the customer to your app or website
- Confirm final status:
GET /v1/instore/order/{referenceId}and/or handle the payment notification webhook - Refund or cancel as needed
URL redirect is for customer-facing apps and websites used as the in-store / POS payment UI — not for kiosk-only, cashier-scan, or payment-terminal hardware flows that rely on QR at the device.
Shared operations (all methods)
| Action | Endpoint |
|---|---|
| Get order status | GET /v1/instore/order/{referenceId} |
| Refund a captured order | POST /v1/instore/order/{referenceId}/refund |
| Cancel an order before processing | POST /v1/instore/order/{referenceId}/cancel |
Certification
- Download the certification document here
- Complete the test cases for each payment method you are shipping (merchant-presented QR, customer-presented QR, and/or URL redirect)
- Send the completed document back to ShopBack for verification
After test case verification, run an additional round of production testing before go-live.
Production testing
When you are ready to go live:
- You receive live
accessKeySecretandaccessKeyId - The merchant is assigned a
posIdfor each payment surface (terminal, kiosk, cashier register, or customer-facing app / website instance)
Coordinate a production testing session with the Integration Team. Recommended coverage (one round each, for each method you support):
| Scenario | What to verify |
|---|---|
| Completed payment | Create or scan (or create + URL redirect), then complete successfully |
| Refund | Refund from a completed transaction |
| Cancel | Create or scan (or create + redirect start), then cancel before completion |
For URL redirect, also confirm the customer returns correctly to your app or website and that final status matches the order status API / webhook.
Live
When certification and production testing are complete, you are ready to go live.
Related documents
- In-Store Integrations — who this is for, surfaces, method selection
- API Reference — Getting Started — credentials, environments, endpoints
- In-Store (POS) API Troubleshooting List
- Postman Payload Sample
Updated 13 days ago