1. Orders
Omnihub - Shoppertise
  • Shoppertise
    • Outlets
      • List Shoppertise outlets
      • Outlet detail
    • Orders
      • Order webhook (new order intake)
        POST
      • Update order status
        POST
      • List orders (paginated)
        GET
      • Order detail
        GET
    • Menu
      • Get menu by partnerMerchantID
      • Notify Shoppertise to pull menu (SHOPPERTISE API)
    • Availability
      • Update product availability (SHOPPERTISE API)
    • Schemas
      • Order
      • Currency
      • Price
      • OrderItem
      • Campaign
      • CampaignFreeItem
      • Modifier
      • Receiver
      • VirtualContact
      • OrderCancelRequest
      • OutletSummary
      • OutletDetail
      • OrderAccepted
      • OrderDuplicate
      • SuccessBool
      • ErrorString
      • InvalidOutletError
      • InvalidItemError
      • InvalidModifierError
      • StatusStringMessage
      • ShoppertiseMenu
      • MenuPushRequest
      • MenuPushNotification
      • MenuPushResponse
      • ProductAvailabilityRequest
      • ProductAvailabilityItem
      • ProductAvailabilityCallback
  1. Orders

Order webhook (new order intake)

POST
/api/shoppertise/orders
Receives a new Shoppertise order. Requires orderID. The raw payload is stored and processing is queued asynchronously. If an order with the same orderID already exists it is treated as a duplicate and acknowledged with 200 (idempotent).

Request

Body Params application/jsonRequired

Examples

Responses

🟢200
application/json
Order accepted (queued for processing) or acknowledged as an already-existing duplicate.
Bodyapplication/json

🟠400
🟠401
🟠404
🟠422
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/api/shoppertise/orders' \
--header 'Content-Type: application/json' \
--data '{
    "orderID": "123456789-C742AGCGJPNHUE",
    "merchantID": "SHOPPERTISE",
    "partnerMerchantID": "DGFBPC",
    "orderTime": "2026-04-10T06:17:26Z",
    "paymentType": "CASH",
    "shortOrderNumber": "SP-5957",
    "cutlery": true,
    "currency": {
        "code": "MYR",
        "symbol": "RM",
        "exponent": 2
    },
    "price": {
        "subtotal": 5569,
        "tax": 0,
        "deliveryFee": 500,
        "eaterPayment": 6069,
        "serviceChargeFee": 0
    },
    "campaigns": [
        {
            "id": "1-C4K1G3VGBAKYVN-C8BELBMZCXDWFE-50086773",
            "name": "30% off on selected items for delivery and pickup orders",
            "deductedAmount": 3088,
            "deductedPart": "basket_amount",
            "appliedItemIDs": [
                "PROD_E727F",
                "PROD_E9124"
            ],
            "level": "item",
            "mexFundedRatio": 100,
            "type": "percentage",
            "usageCount": 5,
            "freeItem": {
                "id": "",
                "name": "",
                "quantity": 0,
                "price": 0
            }
        }
    ],
    "items": [
        {
            "id": "DYNAMOD-GFBP071",
            "sku": "GFBP071",
            "shopperItemID": "MYITE20260410061726169555",
            "price": 2999,
            "discount": 0,
            "quantity": 1,
            "tax": 0,
            "modifiers": [
                {
                    "id": "MOD-LESS-SUGAR",
                    "sku": "GFBP090-LS",
                    "name": "Less Sugar",
                    "quantity": 1,
                    "price": 0
                }
            ],
            "status": null
        },
        {
            "id": null,
            "sku": "GFBP062",
            "shopperItemID": "MYITE20260410061726939649",
            "price": 2570,
            "discount": 899,
            "quantity": 1,
            "tax": 0,
            "modifiers": null,
            "status": null
        }
    ],
    "receiver": {
        "name": "shoppertise-test",
        "virtualContact": {
            "phoneNumber": "+60123456789",
            "PIN": "1234",
            "status": "ACTIVE",
            "expiredAt": "2026-04-10T12:17:26.435899586Z"
        }
    },
    "orderState": "NEW"
}'
Response Response Example
200 - New order accepted
{
    "status": "success",
    "orderID": "123456789-C742AGCGJPNHUE"
}
Modified at 2026-10-20 14:43:16
Previous
Outlet detail
Next
Update order status
Built with