Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/shopback-orders-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Shopback Orders API
version: '1.0'
description: 'Operations tagged Orders across 2 of this provider''s published API definitions: shopback-in-store-payments-openapi.yml, shopback-online-payments-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://integrations-sandbox.shopback.com
description: Sandbox
- url: https://integrations-sandbox.shopback.com/demo/merchant
description: staging environment
tags:
- name: Orders
paths:
/posi-sandbox/v1/instore/order/{referenceId}/cancel:
servers:
- url: https://integrations-sandbox.shopback.com
description: Sandbox
post:
tags:
- Orders
operationId: Cancel order
summary: Cancel order
description: Use this endpoint to cancel a payment before processing. Cancellations are not allowed once a customer has swiped-to-pay on ShopBack’s mobile application.
parameters:
- name: referenceId
required: true
in: path
description: The unique payment attempt identifier generated by the POS terminal that was sent in the request to `POST /v1/instore/order/create` or `POST /v1/instore/order/scan`.
schema:
type: string
- name: Authorization
in: header
description: 'Header required for authorization. Specify the HMAC signature in the Authorization header along with `accessKeyId`.
Please refer to **Generating an HMAC Signature** for a step by step guide to generating the Authorization signature.'
required: true
schema:
example: SB1-HMAC-SHA256 <accessKeyId>:<hmacSignature>
type: string
- name: Date
in: header
description: The date and time of request in <a href=https://en.wikipedia.org/wiki/ISO_8601 target="_blank">ISO-8601</a> format. This should be the same value used in the generation of the HMAC signature
required: true
schema:
type: string
example: '2022-08-22T02:29:33.123Z'
- name: X-ShopBack-Idempotent-Id
in: header
description: Idempotent Id for the request. If this is absent, every request will be treated as unique and will be processed as such. (This is optional for now, but will be made required in the future)
schema:
example: faa5e09a-8cf3-43f7-8309-d94deb426e66
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxCancelOrderReqDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CancelOrderResDto'
'400':
description: ''
content: {}
'401':
description: ''
content: {}
'404':
description: ''
content: {}
'409':
description: ''
content: {}
x-source-doc: https://docs.shopback.com/reference/cancel-order
/posi-sandbox/v1/instore/order/create:
servers:
- url: https://integrations-sandbox.shopback.com
description: Sandbox
post:
tags:
- Orders
operationId: Create dynamic QR order
summary: Create order - QR / URL (dynamic)
description: Use this endpoint to create an order to accept payment using ShopBack’s dynamic QR code or to accept payments for an in-store context through a customer-facing app or website. This endpoint creates a payment order with the dynamic QR code or relevant URL for redirect.
parameters:
- name: Authorization
in: header
description: 'Header required for authorization. Specify the HMAC signature in the Authorization header along with `accessKeyId`.
Please refer to **Generating an HMAC Signature** for a step by step guide to generating the Authorization signature.'
required: true
schema:
example: SB1-HMAC-SHA256 <accessKeyId>:<hmacSignature>
type: string
- name: Date
in: header
description: The date and time of request in <a href=https://en.wikipedia.org/wiki/ISO_8601 target="_blank">ISO-8601</a> format. This should be the same value used in the generation of the HMAC signature
required: true
schema:
type: string
example: '2022-08-22T02:29:33.123Z'
- name: X-ShopBack-Idempotent-Id
in: header
description: Idempotent Id for the request. If this is absent, every request will be treated as unique and will be processed as such. (This is optional for now, but will be made required in the future)
schema:
example: faa5e09a-8cf3-43f7-8309-d94deb426e66
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxCreateOrderReqDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrderResDto'
'400':
description: API Request could not be processed. This could be due to validation errors or invalid inputs.
content:
application/json:
schema:
$ref: '#/components/schemas/BadReqDto'
'401':
description: Invalid signature. Failed to match HMAC signatures.
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedDto'
'404':
description: Target resource(s) not found.
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResDto'
'409':
description: Invalid ReferenceId. ReferenceId provided is already assigned to an existing resource.
content:
application/json:
schema:
$ref: '#/components/schemas/ResouceConflictDto'
x-source-doc: https://docs.shopback.com/reference/create-dynamic-qr-order
/posi-sandbox/v1/instore/order/{referenceId}:
servers:
- url: https://integrations-sandbox.shopback.com
description: Sandbox
get:
tags:
- Orders
operationId: Get order status
summary: Get order status
description: Use this endpoint to check for the status and details of an order.
parameters:
- name: referenceId
required: true
in: path
description: The unique payment attempt identifier generated by the POS terminal that was sent in the request to `POST /v1/instore/order/create` or `POST /v1/instore/order/scan`.
schema:
type: string
example: 352c530dd7f747161a5e6c990c720bec
- name: Authorization
in: header
description: 'Header required for authorization. Specify the HMAC signature in the Authorization header along with `accessKeyId`.
Please refer to **Generating an HMAC Signature** for a step by step guide to generating the Authorization signature.'
required: true
schema:
example: SB1-HMAC-SHA256 <accessKeyId>:<hmacSignature>
type: string
- name: Date
in: header
description: The date and time of request in <a href=https://en.wikipedia.org/wiki/ISO_8601 target="_blank">ISO-8601</a> format. This should be the same value used in the generation of the HMAC signature
required: true
schema:
type: string
example: '2022-08-22T02:29:33.123Z'
- name: X-ShopBack-Idempotent-Id
in: header
description: Idempotent Id for the request. If this is absent, every request will be treated as unique and will be processed as such. (This is optional for now, but will be made required in the future)
schema:
example: faa5e09a-8cf3-43f7-8309-d94deb426e66
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetOrderDetailsResDto'
'400':
description: ''
content: {}
'401':
description: ''
content: {}
'404':
description: ''
content: {}
'409':
description: ''
content: {}
x-source-doc: https://docs.shopback.com/reference/get-order-status
/posi-sandbox/v1/instore/order/{referenceId}/refund:
servers:
- url: https://integrations-sandbox.shopback.com
description: Sandbox
post:
tags:
- Orders
operationId: Order refund
summary: Order refund
description: Use this endpoint to refund captured orders with ShopBack.
parameters:
- name: referenceId
required: true
in: path
description: The unique payment attempt identifier generated by the POS terminal that was sent in the request to `POST /v1/instore/order/create` or `POST /v1/instore/order/scan`.
schema:
type: string
- name: Authorization
in: header
description: 'Header required for authorization. Specify the HMAC signature in the Authorization header along with `accessKeyId`.
Please refer to **Generating an HMAC Signature** for a step by step guide to generating the Authorization signature.'
required: true
schema:
example: SB1-HMAC-SHA256 <accessKeyId>:<hmacSignature>
type: string
- name: Date
in: header
description: The date and time of request in <a href=https://en.wikipedia.org/wiki/ISO_8601 target="_blank">ISO-8601</a> format. This should be the same value used in the generation of the HMAC signature
required: true
schema:
type: string
example: '2022-08-22T02:29:33.123Z'
- name: X-ShopBack-Idempotent-Id
in: header
description: Idempotent Id for the request. If this is absent, every request will be treated as unique and will be processed as such. (This is optional for now, but will be made required in the future)
schema:
example: faa5e09a-8cf3-43f7-8309-d94deb426e66
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxRefundOrderReqDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RefundOrderResDto'
'400':
description: ''
content: {}
'401':
description: ''
content: {}
'404':
description: ''
content: {}
'409':
description: ''
content: {}
x-source-doc: https://docs.shopback.com/reference/order-refund
/posi-sandbox/v1/instore/order/scan:
servers:
- url: https://integrations-sandbox.shopback.com
description: Sandbox
post:
tags:
- Orders
operationId: Scan consumer QR
summary: Scan consumer QR
description: Use this endpoint to create an order to initiate payment using ShopBack’s consumer-presented QR code.
parameters:
- name: Authorization
in: header
description: 'Header required for authorization. Specify the HMAC signature in the Authorization header along with `accessKeyId`.
Please refer to **Generating an HMAC Signature** for a step by step guide to generating the Authorization signature.'
required: true
schema:
example: SB1-HMAC-SHA256 <accessKeyId>:<hmacSignature>
type: string
- name: Date
in: header
description: The date and time of request in <a href=https://en.wikipedia.org/wiki/ISO_8601 target="_blank">ISO-8601</a> format. This should be the same value used in the generation of the HMAC signature
required: true
schema:
type: string
example: '2022-08-22T02:29:33.123Z'
- name: X-ShopBack-Idempotent-Id
in: header
description: Idempotent Id for the request. If this is absent, every request will be treated as unique and will be processed as such. (This is optional for now, but will be made required in the future)
schema:
example: faa5e09a-8cf3-43f7-8309-d94deb426e66
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxScanOrderReqDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrderResDto'
'400':
description: ''
content: {}
'401':
description: ''
content: {}
'404':
description: ''
content: {}
'409':
description: ''
content: {}
x-source-doc: https://docs.shopback.com/reference/scan-consumer-qr
/order/{uuid}:
servers:
- url: https://integrations-sandbox.shopback.com/demo/merchant
description: staging environment
get:
tags:
- Orders
summary: Get order status
operationId: getOrderInfo
parameters:
- name: Authorization
in: header
description: Authorization
required: true
schema:
type: string
- name: uuid
in: path
description: order uuid
required: true
schema:
type: string
- name: X-ShopBack-Idempotent-Id
in: header
description: Idempotent Id for the request. If this is absent, every request will be treated as unique and will be processed as such. (This is optional for now, but will be made required in the future)
schema:
example: faa5e09a-8cf3-43f7-8309-d94deb426e66
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/MerchantOrderResponse'
'404':
description: Not Found, Merchant not found/Currency not found, No order found for provided uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'412':
description: Precondition Failed, Provided token is invalid or expired
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error, Something went wrong on servers's end.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-source-doc: https://docs.shopback.com/reference/getorderinfo
/order/initiate:
servers:
- url: https://integrations-sandbox.shopback.com/demo/merchant
description: staging environment
post:
tags:
- Orders
summary: Create order
description: This is where you can initiate an order with ShopBack, by using the **initiateOrder** method. We also provide a number of methods to refund orders. For example if the consumer returns one (or all) item(s) of an order, you can initiate a full or partial refund. You would be asked to send us the SKU number of the items to be refunded.
operationId: initiateOrder
parameters:
- name: Authorization
in: header
description: Authorization
required: true
schema:
type: string
- name: X-ShopBack-Idempotent-Id
in: header
description: Idempotent Id for the request. If this is absent, every request will be treated as unique and will be processed as such. (This is optional for now, but will be made required in the future)
schema:
example: faa5e09a-8cf3-43f7-8309-d94deb426e66
type: string
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/InitiateOnlineOrderRequest'
required: false
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/InitiatedOrderResponse'
'404':
description: Not Found, Merchant not found/Currency not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'412':
description: 'Precondition Failed.**Example of** possible error messages:
* Provided token is invalid or expired
* Order with requested external ids already exists
* Consumer country is not supported for this operation
* BillingAddress Country is not merchant supported
* There was an error with the scanned QR code. Please ensure that you have scanned the correct QR code from our merchant partners.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error, Something went wrong on servers's end.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-codegen-request-body-name: body
x-source-doc: https://docs.shopback.com/reference/initiateorder
/order/{orderUuid}/refund:
servers:
- url: https://integrations-sandbox.shopback.com/demo/merchant
description: staging environment
post:
tags:
- Orders
summary: Order refund
operationId: initiateOrderRefund
parameters:
- name: orderUuid
in: path
description: order uuid
required: true
schema:
type: string
- name: Authorization
in: header
description: Authorization
required: true
schema:
type: string
- name: X-ShopBack-Idempotent-Id
in: header
description: Idempotent Id for the request. If this is absent, every request will be treated as unique and will be processed as such. (This is optional for now, but will be made required in the future)
schema:
example: faa5e09a-8cf3-43f7-8309-d94deb426e66
type: string
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/PartialRefundRequestModel'
required: false
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/RRVResponseModel'
'404':
description: Not Found, Merchant not found/Currency not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'412':
description: 'Precondition Failed.**Example of possible error messages:**
* Provided token is invalid or expired
* Unable to Refund Order in status [INITIATED]
* This request has been accepted earlier, Unable to Refund Order in status [REFUNDED]
* You are not permitted to perform this operation.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error, Something went wrong on servers's end.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-codegen-request-body-name: body
x-source-doc: https://docs.shopback.com/reference/initiateorderrefund
components:
schemas:
OrderItemRequest:
required:
- name
type: object
properties:
name:
type: string
description: The name of the item
example: radioactive man comic book
quantity:
type: integer
description: Quantity of the item
format: int32
price:
type: number
description: Actual price of the item
sku:
type: string
description: Store keeping unit at the merchant level
example: '93847598347'
ean:
type: string
description: The items EAN
description:
type: string
description: Short description of the item
example: radioactive man comic book
detailedDescription:
type: string
description: Detailed description of the item
originalPrice:
type: number
description: Pre discount amount of the item
taxAmount:
type: number
description: Tax amount of the item
images:
type: array
description: List of order item images
items:
$ref: '#/components/schemas/OrderItemImageRequest'
merchantItemId:
type: string
description: The unique ID for each order item, if SKU is not explicitly used.
warranty:
type: number
description: This field captures the warranty amount per order item
example: 100
discount:
type: number
description: This field captures the discount amount per order item
example: 10
SandboxCreateOrderReqDto:
type: object
properties:
posId:
type: string
description: Unique Id for the POS terminal given during onboarding.
example: 802c987em7f747269a5e6c260c630kpl
country:
type: string
description: Two-letter ISO country code according to <a href=https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 target="_blank">ISO 3166-1 Alpha-2</a> standard.
example: SG
enum:
- SG
- HK
- AU
- MY
amount:
type: number
description: 'Transaction amount as integer. A positive integer in the smallest currency unit. For example:
* `SGD`: in cents. 1234 stands for S$12.34'
example: 1234
currency:
type: string
description: Currency that is associated with the payment amount. Specify the three-letter ISO currency code following <a href=https://en.wikipedia.org/wiki/ISO_4217 target="_blank">ISO 4217</a> standard, in UPPERCASE.
enum:
- SGD
- HKD
- AUD
- MYR
example: SGD
referenceId:
type: string
description: A unique payment identifier generated by the POS terminal. This must be unique for every payment attempt.
example: 352c530dd7f747161a5e6c990c720bec
qrType:
type: string
description: Type of QR.
enum:
- base64
- payload
- url_payload
example: base64
partner:
description: Merchant information for ShopBack partner. Please sort keys in alphabetical order during hmac generation.
$ref: '#/components/schemas/PartnerMerchantInfoRequest'
orderMetadata:
description: Additional information for the order. Please sort keys in alphabetical order during hmac generation.
$ref: '#/components/schemas/AdditionalOrderMetadata'
webhookUrl:
description: The url to which ShopBack partner wants to receive payment notification webhook.
required:
- posId
- country
- amount
- currency
- referenceId
- qrType
SandboxScanOrderReqDto:
type: object
properties:
posId:
type: string
description: Unique Id for the POS terminal given during onboarding.
example: 802c987em7f747269a5e6c260c630kpl
country:
type: string
description: Two-letter ISO country code according to <a href=https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 target="_blank">ISO 3166-1 Alpha-2</a> standard.
example: SG
enum:
- SG
- HK
- AU
- MY
amount:
type: number
description: 'Transaction amount as integer. A positive integer in the smallest currency unit. For example:
* `SGD`: in cents. 1234 stands for S$12.34'
example: 1234
currency:
type: string
description: Currency that is associated with the payment amount. Specify the three-letter ISO currency code following <a href=https://en.wikipedia.org/wiki/ISO_4217 target="_blank">ISO 4217</a> standard, in UPPERCASE.
enum:
- SGD
- HKD
- AUD
- MYR
example: SGD
referenceId:
type: string
description: A unique payment identifier generated by the POS terminal. This must be unique for every payment attempt.
example: 352c530dd7f747161a5e6c990c720bec
consumerQrPayload:
type: string
description: Payload of the consumer-presented QR code scanned
example: 0101234567890128TECI
partner:
description: Merchant information for ShopBack partner. Please sort keys in alphabetical order during hmac generation.
$ref: '#/components/schemas/PartnerMerchantInfoRequest'
orderMetadata:
description: Additional information for the order. Please sort keys in alphabetical order during hmac generation.
$ref: '#/components/schemas/AdditionalOrderMetadata'
webhookUrl:
description: The url to which ShopBack partner wants to receive payment notification webhook.
required:
- posId
- country
- amount
- currency
- referenceId
- consumerQrPayload
RRVResponseModel:
required:
- code
- message
- status
- type
type: object
properties:
status:
type: string
description: Request processing status
example: ACCEPTED, REJECTED, DONE, FAILED
enum:
- ACCEPTED
- REJECTED
- DONE
- FAILED
requestId:
type: string
description: Request identifier. Present only if request has been accepted.
example: d04f56e9-412c-4e7a-8cb7-3f405ff96a13
createdAt:
type: string
description: Request creation date-time in ISO-8601 date-time format. Present only if request has been accepted.
format: date-time
example: '2022-04-01T04:01:41.041Z'
type:
type: string
description: Type of refund.
example: FULL
enum:
- FULL
- PARTIAL
code:
type: string
description: Response code. Useful to extract error details.
example: accepted, in_process, duplicated_request, invalid_order_status, no_active_merchant_fee_schema_found, refund_amount_too_large, refund_limit_exceeded
message:
type: string
description: Response message
example: Request accepted
details:
$ref: '#/components/schemas/RRVResponseDetailsModel'
PartialRefundItemRequestModel:
required:
- sku
type: object
properties:
sku:
type: string
description: Store keeping unit at the merchant level. Needed to link requests with specific order items.
example: '93847598347'
OrderItemImageRequest:
required:
- imageLocation
type: object
properties:
imageLocation:
type: string
description: ImageLocation
example: https://homepages.cae.wisc.edu/~ece533/images/serrano.png
ShippingAddressRequest:
type: object
properties:
line1:
type: string
description: line1 of address
example: Blk 35 Mandalay Road
line2:
type: string
description: line2 of address
example: '# 13-37 Mandalay Towers'
line3:
type: string
description: line3 of address
suburb:
type: string
description: suburb
example: Sentosa
city:
type: string
description: city
example: Malacca City
province:
type: string
description: province
example: Shanghai
state:
type: string
description: state
example: Selangor
district:
type: string
description: District. A required field for addresses in Honk Kong, India, Indonesia, Pakistan
example: New Delhi
subDistrict:
type: string
description: Sub-District. This is an optional field for addresses in Indonesia - called Kecamatan in Indonesia.
example: Kecamatan Walakaka
municipality:
type: string
description: Municipality. This is an optional field for addresses in Japan, Philippines and India.
example: Sapporo
village:
type: string
description: Village. This is an optional field for addresses in Bengladesh, Pakistan and India.
example: Kakran
road:
type: string
description: Road. This is an optional field for addresses in Thailand.
example: 111 Chaengwatthana Road
county:
type: string
description: County. This is an optional field for addresses in Bangladesh - functionally same as Upazila/Thana, South Korea - functionally same as Gun, United Kingdom among other countries.
example: Pudong
viaName:
type: string
description: via route. This is an optional field for addresses in India.
example: New Delhi
taluk:
type: string
description: Taluk. This is an optional field for addresses in India.
example: Meenachil Taluk
postcode:
type: string
description: postcode
example: '308215'
countryCode:
type: string
description: countryCode
example: SG
ResouceConflictDto:
type: object
properties:
statusCode:
type: number
example: 409
message:
type: string
example: Invalid ReferenceId. ReferenceId provided is already assigned to an existing resource.
traceId:
type: string
description: A unique identifier for this API response. This will be used for reconciliation as necessary.
example: 0dc44317-1c4b-4b62-83a8-8997435511e4
required:
- statusCode
- message
- traceId
PartnerMerchantInfoRequest:
required:
- merchantId
type: object
properties:
merchantId:
type: string
description: Partner's unique merchant ID. This field is required if partner field is provided
merchantCategoryCode:
type: number
description: Merchant ISO 18245 category code determined by the partner
merchantTradingName:
type: string
description: Trading name of the merchant to help with customer UX when completing a purchase with ShopBack
merchantEntityId:
type: string
description: Legally registered ID with the regulatory in country of registration
example: UEN in Singapore
CreateOrderResDto:
type: object
properties:
referenceId:
type: string
description: The unique payment attempt identifier generated by the POS terminal that was sent in the request to `POST /v1/instore/order/create` or `POST /v1/instore/order/scan`.
qrType:
type: string
description: Type of QR code returned, as specified in request.
enum:
- base64
- payload
- url_payload
example: base64
qrCode:
type: string
description: Dynamic QR code according to qrType.
example: data:image/png;base64,iVBORw0KGgoAAAAN...
traceId:
type: string
description: A unique identif
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shopback/refs/heads/main/openapi/shopback-orders-api-openapi.yml