1. Webhooks
Gokoo Third-Party Integration API
  • Start Readme Channel API Guide
  • Authentication
    • Channel Partner Authorization Login
      GET
    • Get Channel Partner AccessToken
      GET
    • Get Merchant OpenID
      GET
  • Product Management - Categories
    • Create Category
      POST
    • Edit Category
      POST
    • Delete Category
      POST
    • Get Category Detail
      POST
    • List Categories (Management)
      POST
    • List All Categories (For Product List)
      POST
    • Sort Categories
      POST
  • Product Management - Products
    • Create Product
      POST
    • Edit Product
      POST
    • Delete Product
      POST
    • Get Product Detail
      POST
    • List Products
      POST
    • Search Products
      POST
    • Upload Product Image
      POST
    • Set Product On/Off Shelf (Batch)
      POST
    • Batch Update Product Stock
      POST
    • Batch Sold Out (Clear Stock)
      POST
    • Sort Products
      POST
  • Delivery Orders
    • Accept Order
      POST
    • Cancel Order (Merchant Reject)
      POST
    • Mark Food Ready (Prepared)
      POST
    • Apply for Delivery / Merchant Start Self-Delivery
      POST
    • Merchant Self-Delivery Completed
      POST
    • Query Order by Pickup Code
      POST
    • Verify Pickup Order (Scan Code)
      POST
    • List Orders (By Status)
      POST
    • Get Order Detail
      POST
    • Get Order Financial Details
      POST
    • Reprint Receipt
      POST
  • Webhooks
    • Order Status Change Callback
      POST
  • Schemas
    • CommonBodyParams
    • SuccessResponse
    • ErrorResponse
    • TimeSlot
    • TimeSlotWithSeconds
    • CategoryItem
    • ProductItem
    • NormSpec
    • NormGroup
    • OrderProduct
    • ShowButtons
    • StaffInfo
  1. Webhooks

Order Status Change Callback

POST
/{NOTIFY_URL}
Platform notification to channel partner when order status changes. The platform sends a POST request to the channel partner's configured NOTIFY_URL.

Signature Verification#

The signature is generated using HMAC-SHA1:
1.
Sort the data object keys alphabetically
2.
Concatenate key=value pairs with & (JSON-encode array values)
3.
Append &timestamp={time}&nonce_str={nonce_str}
4.
Sign with HMAC-SHA1 using APP_SECRET as the key
Order Status Table:
StatusDescription
WAIT_MERCHANT_CONFIRMPending merchant acceptance
WAIT_DRIVER_CONFIRMWaiting for rider acceptance
MERCHANT_CONFIRMEDMerchant accepted
DRIVER_CONFIRMEDRider accepted
DRIVER_ARRIVEDRider arrived at store
DRIVER_DELIVERINGRider delivering
DRIVER_DELIVEREDRider delivery completed
WAIT_COMMENTPending review
MERCHANT_DELIVERINGMerchant started delivery
MERCHANT_DELIVEREDMerchant delivered
ORDER_DONECompleted
ORDER_REFUNDEDRefunded
ORDER_CANCELCancelled
Parameter Encryption Method:
Signature generation rules:
$data_str = Sort the data array by key in ascending order and concatenate with &. If the value is an array, perform json_encode first;

Request

Path Params

Body Params application/jsonRequired

Example
{
    "time": 1760143449,
    "nonce_str": "abc123random",
    "sign": "a1b2c3d4e5f6...",
    "data": {
        "openid": "merchant_openid_xxx",
        "type": "ORDER_STATUS_CHANGE",
        "data": {
            "order_id": "5208510",
            "status": "MERCHANT_CONFIRMED"
        },
        "label": "Merchant Confirmed"
    }
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST '/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "time": 1760143449,
    "nonce_str": "abc123random",
    "sign": "a1b2c3d4e5f6...",
    "data": {
        "openid": "merchant_openid_xxx",
        "type": "ORDER_STATUS_CHANGE",
        "data": {
            "order_id": "5208510",
            "status": "MERCHANT_CONFIRMED"
        },
        "label": "Merchant Confirmed"
    }
}'

Responses

🟢200
Acknowledge receipt of callback
This response does not have a body.
Modified at 2026-04-14 04:06:42
Previous
Reprint Receipt
Next
CommonBodyParams
Built with