ShopBack · Authentication Profile

Shopback Authentication

Authentication

ShopBack secures its APIs with http, hmac, and apiKey across 3 declared security schemes, as derived from its OpenAPI definitions.

CompanyPaymentsCashbackRewardsLoyaltyE-CommerceBuy Now Pay LaterPoint Of SaleCheckoutSingapore
Methods: http, hmac, apiKey Schemes: 3 OAuth flows: API key in: header

Security Schemes

bearer http
scheme: bearer
SB1-HMAC-SHA256 hmac
X-ShopBack-App-Token apiKey
· in: header ()

Source

Authentication Profile

Raw ↑
generated: '2026-08-02'
method: searched
source: >-
  derived from openapi/shopback-online-payments-openapi.yml securitySchemes,
  upgraded from https://docs.shopback.com/reference/getting-started-authentication,
  https://docs.shopback.com/reference/generating-hmac-signature,
  https://docs.shopback.com/docs/token-validity and
  https://docs.shopback.com/docs/online-payment-credentials
docs: https://docs.shopback.com/reference/generating-hmac-signature
summary:
  types: [http, hmac, apiKey]
  api_key_in: [header]
  oauth2_flows: []
  note: >-
    ShopBack publishes two distinct auth models, one per API. Only the Online
    Payments API declares a securityScheme in its OpenAPI; the In-Store Payments
    API models its credentials as required header parameters rather than a
    declared scheme, so the derived pass alone missed it.
schemes:
- name: bearer
  api: ShopBack Online Payments API
  type: http
  scheme: bearer
  bearerFormat: JWT
  description: Merchant JWT obtained from the merchant login operation.
  header: 'Authorization: Bearer <merchant_jwt>'
  token_endpoint: POST /auth/login
  token_endpoint_note: >-
    The published securityScheme description says "POST
    /merchant-gateway/auth/login", while the documented path item (operationId
    `login`) is /auth/login relative to the declared server. Recorded verbatim;
    not reconciled.
  credentials:
    username: Merchant ID
    password: Merchant Secret (separate sandbox and production values)
    issued_by: ShopBack for Business merchant portal, Settings → Generate credential
    portals:
    - https://business.shopback.sg/signin
    - https://business.shopback.my/signin
    docs: https://docs.shopback.com/docs/online-payment-credentials
    note: The Merchant Secret can only be viewed once, at generation time.
  token_lifetime: 8 hours
  guidance: ShopBack recommends generating a new token per transaction.
  sources:
  - openapi/shopback-online-payments-openapi.yml
  - https://docs.shopback.com/docs/token-validity
- name: SB1-HMAC-SHA256
  api: ShopBack In-Store Payments API
  type: hmac
  algorithm: HMAC-SHA256
  encoding: hex
  header: 'Authorization: SB1-HMAC-SHA256 <accessKeyId>:<hmacSignature>'
  additional_required_headers:
  - name: Date
    description: ISO-8601 UTC timestamp; must be byte-identical to the value used
      in the signature. Non-UTC offsets or roughly a minute of clock skew expire
      the signature.
  - name: Content-Type
    description: application/json
  signed_string_order:
  - HTTP method (uppercase)
  - request content type
  - ISO-8601 UTC date-time
  - fully qualified request path including query parameters
  - SHA-256 hex digest of the alphabetically key-sorted, stringified JSON body
  credentials:
    accessKeyId: identifier paired with the secret
    accessKeySecret: HMAC signing secret
    posId: one per terminal, kiosk, cashier register, app or website instance
    note: Sandbox and production credentials differ; production keys are issued at
      go-live.
  sources:
  - https://docs.shopback.com/reference/generating-hmac-signature
  - https://docs.shopback.com/reference/in-store-getting-started
  - openapi/shopback-in-store-payments-openapi.yml
- name: X-ShopBack-App-Token
  api: ShopBack Online Payments API (tokenized payments, client-side)
  type: apiKey
  in: header
  parameter_name: X-ShopBack-App-Token
  description: >-
    Short-lived JWT returned by the link-session endpoint. Passed by the merchant
    app as a custom header when opening the ShopBack consent page in an in-app
    browser (SFSafariViewController / Chrome Custom Tabs). Not a server-to-server
    credential.
  sources:
  - https://docs.shopback.com/reference/account-linking-1
  - openapi/shopback-online-payments-openapi.yml
bearer_tokens_of_record:
- name: paymentToken
  kind: long-lived user payment token
  description: >-
    Issued after a user completes the ShopBack consent flow; scoped to one user
    and one merchant channel. States LINKED / UNLINKED. Not an API credential —
    it is a payment instrument reference sent in the request body.
  docs: https://docs.shopback.com/reference/account-linking-1
oauth2:
  supported: false
  note: >-
    Account linking is OAuth-shaped (hosted consent page, single-use 60-second
    auth code, code-for-token exchange, revocation endpoint) but is not an OAuth
    2.0 profile: there is no authorization-server metadata, no scope model, no
    refresh token, and /.well-known/oauth-authorization-server returns 404 on
    every ShopBack host. No scopes/ artifact was written for this reason.
transport:
  https_required: true
  tls_minimum: TLS 1.2
  source: https://docs.shopback.com/docs/quickstart-api