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:

Choose your payment method(s)

Implement one or more of these in-store / POS methods:

MethodWhen to usePrimary API
Merchant-presented QRYour app, website, kiosk, cashier display, or terminal shows a ShopBack QRPOST /v1/instore/order/create
Customer-presented QRCashier, scanner, or terminal scans the customer’s ShopBack QRPOST /v1/instore/order/scan
URL redirectCustomer-facing app or website sends the customer into ShopBack to pay, then returns them to your app or sitePOST /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}/refund
  • POST /v1/instore/order/{referenceId}/cancel

Integration

Step 1: Request sandbox credentials

Request sandbox API credentials from the Partnership or Integration Team.

You will receive:

CredentialDescription
accessKeySecretUsed to generate HMAC signatures
accessKeyIdIdentifier paired with accessKeySecret
posIdUnique 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

  1. Create an order: POST /v1/instore/order/create
  2. Display the returned QR on your customer-facing app or website, kiosk, cashier display, or terminal
  3. Customer scans with the ShopBack app and pays
  4. Check status: GET /v1/instore/order/{referenceId} and/or handle the payment notification webhook
  5. Refund or cancel as needed

Customer-presented QR

  1. Scan the customer’s ShopBack QR: POST /v1/instore/order/scan
  2. Check status: GET /v1/instore/order/{referenceId} and/or handle the payment notification webhook
  3. Refund or cancel as needed

URL redirect (customer-facing apps and websites)

  1. Create an order: POST /v1/instore/order/create
  2. Redirect the customer to ShopBack’s payment URL to complete payment
  3. ShopBack returns the customer to your app or website
  4. Confirm final status: GET /v1/instore/order/{referenceId} and/or handle the payment notification webhook
  5. 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)

ActionEndpoint
Get order statusGET /v1/instore/order/{referenceId}
Refund a captured orderPOST /v1/instore/order/{referenceId}/refund
Cancel an order before processingPOST /v1/instore/order/{referenceId}/cancel

Certification

  1. Download the certification document here
  2. Complete the test cases for each payment method you are shipping (merchant-presented QR, customer-presented QR, and/or URL redirect)
  3. 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 accessKeySecret and accessKeyId
  • The merchant is assigned a posId for 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):

ScenarioWhat to verify
Completed paymentCreate or scan (or create + URL redirect), then complete successfully
RefundRefund from a completed transaction
CancelCreate 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



Did this page help you?