Download OpenAPI specification:
Welcome to the Partner API, your gateway to seamless integration with our platform. This API empowers your applications to connect directly with our system, allowing you to:
This API is designed for partners, looking to reach more customers and streamline their operations through our platform.
Getting Started
Glossary
Our platform uses access_tokens
to authenticate requests. You can generate access_token in the Partner Portal.
How to authenticate:
Authorization
header of every request you make to the Partner API.Bearer
followed by a space. For example:Authorization: Bearer <access_token>
Manage and optimize your product catalog with precision and efficiency. This section provides a comprehensive set of endpoints to streamline your product management workflows.
Key Features:
Add Products to your Catalog. This asynchronous endpoint enables multi-vendor product addition.
Submit product details and initiate the process.
You'll receive a job_id
to track the status of your request.
This endpoint is ideal for the following use cases:
chain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
vendors required | Array of strings Set of vendor IDs. If |
required | Array of objects (catalog.ProductAssignmentProducts) List of products to assign |
{- "vendors": [
- "urd8"
], - "products": [
- {
- "sku": "3671",
- "title": {
- "en_SG": "Canned / Jarred / Instant Meals"
}, - "barcode": "6281100875093",
- "description": {
- "en_SG": "Organic Vegetable Broth, 300 g. No Added Sugar, Yeast & Flavour Enhancer"
}, - "categories": [
- "18cad219-add0-459e-8bcf-6d6a48f57bea"
], - "price": 39.75,
- "is_sold_by_weight": true,
- "weight_specifications": {
- "base_weight": 3,
- "average_weight_per_piece": 1
}
}
]
}
{- "job_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
- "job_status": "QUEUED"
}
Track the progress of your product listings. This endpoint allows you to monitor the status of your product addition jobs. Check if your job is QUEUED
, IN_PROGRESS
, COMPLETED
or FAILED
QUEUED
the job has not yet been processedIN_PROGRESS
the products/items are being added to your outlet.COMPLETED
the job is finishedFAILED
the job processing failedchain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
job_id required | string Example: a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9 Job ID from the response of the POST |
{- "job_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
- "job_status": "IN_PROGRESS",
- "created_at": "2024-09-30T10:00:36.947Z",
- "updated_at": "2024-09-30T10:05:36.947Z",
- "result": {
- "duplicated_products": [
- "vendor1:11111"
],
}
}
Access a comprehensive, paginated list of products assigned to a vendor.
This endpoint allows you to efficiently retrieve and filter your product data.
Use query parameters to: Search for products by name, SKU or barcode (query_term
).
category_global_ids
). locale
) and active status (is_active
).page_size
) and navigate through pages (page
).chain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
vendor_id required | string Example: naez Unique vendor identifier generated by our platform |
query_term | string Example: query_term=Milk The value of text search. The vendor products retrieved are assured to be their titles containing the query or match the barcode or sku. The search is based on the provided locale |
locale | string Example: locale=en_GB The value locale of the field to be filtered |
page | integer Default: 1 Example: page=1 Page number |
page_size | integer [ 1 .. 500 ] Default: 20 Example: page_size=10 Items per page |
category_global_ids | string Example: category_global_ids=9d283d0d-af05-4640-bf41-4cac901bfca,9d283d0d-af05-4640-bf41-4cac901bfcb Comma-separated list of category global ids. The vendor products retrieved are assured to have at least one of the categories supplied. If empty, all the vendor products are considered. |
expand | boolean Default: false Example: expand=true When value is |
is_active | boolean Filter by active products. If this parameter is not provided all products are retrieved. Options:
|
{- "page_number": 1,
- "total_pages": 3,
- "page_size": 92,
- "products": [
- {
- "remote_product_id": "1234567",
- "sku": "55435436",
- "barcodes": [
- "9783193610843"
], - "title": "TEST_NAME",
- "translations": {
- "en_GB": "TEST_TITLE_1"
}, - "price": 30.1,
- "categories": [
- {
- "global_id": "18cad219-add0-459e-8bcf-6d6a48f57bea",
- "details": {
- "name": {
- "en_SG": "Chips & Dips"
}, - "description": {
- "en_SG": "Great text and structure"
}
}, - "parent_global_id": "afbf342a-add0-459e-8bcf-6d6a48f57bea",
- "active": true,
- "weight": 12,
}
], - "master_category_path": {
- "id": "/packaged_foods/canned_jarred_instant_meals/",
- "name": "Canned / Jarred / Instant Meals",
- "path": "/packaged_foods/",
- "tags": [ ],
- "status": "Active",
- "attributes": {
- "display_name": {
- "en_SG": "Canned / Jarred / Instant Meals"
}
}, - "ancestors": [
- { }
]
}, - "active": true
}
]
}
Update product information efficiently, whether it's a single item or a whole batch. We'll process your request in the background and provide a 202 Accepted
status with a job_id
for tracking.
Stay updated via webhook notifications defined under Callbacks → Update products results webhook at the bottom of this operation or use the Product Addition Status endpoint to get the results.
chain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
vendor_id required | string Example: naez Unique vendor identifier generated by our platform |
Edit parameters. sku
is a mandatory field and at least one of the fields price
, active
or quantity
must be present for every product in the payload
Product activation status is determined based on the active
flag, available quantity
, and the sales buffer configured in Partner Portal:
active | quantity vs. sales buffer | Resulting Product Status |
---|---|---|
false | Any | Inactive |
true | quantity > sales buffer | Active |
true | quantity <= sales buffer | Inactive |
Not provided | quantity > sales buffer | Active |
Not provided | quantity <= sales buffer | Inactive |
Array of objects (catalog.EditProductRequest) array of products |
Update all price and active
{- "products": [
- {
- "sku": "TEST_SKU",
- "price": 10,
- "active": true,
- "quantity": 3
}
]
}
{- "job_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
- "job_status": "QUEUED"
}
{- "job_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
- "job_status": "COMPLETED",
- "vendor_id": "naez",
}
Download a complete snapshot of your product catalog for a specific vendor. This endpoint initiates an asynchronous export job to retrieve detailed product information. Once the export is complete, the data will be sent to the webhook configured in your partner portal.
chain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
vendor_id required | string Example: naez Unique vendor identifier generated by our platform |
{- "job_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
- "job_status": "QUEUED"
}
{- "job_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
- "job_status": "COMPLETED",
- "vendor_id": "naez",
}
Organize your products effectively with a robust category structure. This section offers endpoint to retrieve the hierarchical relationships between your product categories, enabling efficient navigation and filtering for you.
Key Features:
Retrieve a list of all categories assigned to a vendor. This endpoint allows you to quickly access the category structure associated with a specific vendor.
chain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
vendor_id required | string Example: naez Unique vendor identifier generated by our platform |
only_leaves | boolean Default: true Example: only_leaves=true Boolean value indicating whether or not to include only leaf categories |
{- "categories": [
- {
- "global_id": "18cad219-add0-459e-8bcf-6d6a48f57bea",
- "details": {
- "name": {
- "en_SG": "Chips & Dips"
}, - "description": {
- "en_SG": "Great text and structure"
}
}, - "parent_global_id": "afbf342a-add0-459e-8bcf-6d6a48f57bea",
- "active": true,
- "weight": 12,
}
]
}
Streamline your order processing and fulfillment workflows for a seamless customer experience. This section provides endpoints to access, manage, and update order information in real-time, ensuring efficient and accurate order fulfillment.
Key Features:
Set Up a Webhook to receive Order Events:
You will receive a POST
request webhook notifications regarding newly placed orders or order status changes. Depending on the integration type, next options are available:
Partner Picking Device
RECEIVED
- The initial status of the order. This status means that the order processing has not yet started by the partner.READY_FOR_PICKUP
- Order picking and packing is finished by the partner and is ready for pickup by a delivery rider.DISPATCHED
- Order has been dispatched.CANCELED
- Order is canceled by the customer, delivery rider or the partner.DELIVERED
- Order is delivered to the customer.Pelican Picking Device
READY_FOR_PICKUP
- Order picking and packing is finished by the partner and is ready for pickup by a delivery rider.CANCELED
- Order is canceled by the customer, delivery rider or the partner.DELIVERED
- Order is delivered to the customer.Please note: to enhance API call security, a static token for webhook notifications can be added through the Vendor Portal.
Order details
accepted_for | string <dateTime> Time stamp in UTC which indicates the estimated delivery time |
promised_for | string <dateTime> Time stamp in UTC which indicates the promised delivery time |
comment | string Comment related to the order |
external_order_id | string Order id generated by Foodpanda Platform |
isPreorder | boolean Indicator if the order is a pre-order |
order_code | string A shortened order number used by riders to identify orders while picking them up from partners. Partners are required to refer to this code while handing over orders to riders for delivery. |
order_id | string Order id in UUID format. For eg, 9d4a63b5-3e07-4440-96af-aa04797da3a0 |
order_type | string Enum: "DELIVERY" "PICKUP" This field defines order delivery type. DELIVERY or PICKUP are the possible values |
object Order cancellation information / if there is cancellation | |
object Client/Store/Vendor information | |
object Object containing personal details of the customer. All the details inside are masked to protect customer identity | |
Array of objects (order.OrderItem) Array containing order item details | |
object Payment information of the order | |
status | string Enum: "RECEIVED" "READY_FOR_PICKUP" "DISPATCHED" "CANCELLED" "DELIVERED" Depending on the integration type, next options are available: Partner Picking Device
Pelican Picking Device
|
object Internal system fields | |
transport_type | string Enum: "VENDOR_DELIVERY" "LOGISTICS_DELIVERY" This field defines transport type for the order. Available values are:
|
{- "accepted_for": "2022-02-07T16:03:06Z",
- "promised_for": "2022-02-07T17:03:06Z",
- "comment": "My first order",
- "external_order_id": "order-78107",
- "isPreorder": false,
- "order_code": "wxfr-2440-rtbs",
- "order_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "order_type": "DELIVERY",
- "cancellation": {
- "cancelled_by": "CUSTOMER",
- "post_picked_up": false,
- "reason": "ITEM_UNAVAILABLE"
}, - "client": {
- "chain_id": "79d3a074-0f4c-44ac-892c-787fdfb04ba1",
- "country_code": "sg",
- "external_partner_config_id": "a5v3eh5",
- "id": "5ae6a211-ba40-4c38-9fa2-74a1abec229c",
- "name": "POS Test Vendor",
- "store_id": "nbet"
}, - "customer": {
- "_id": "phflgdea",
- "delivery_address": {
- "apartment": "Big Ap******",
- "block": "Bcasca******",
- "building": "******",
- "city": "Berlin",
- "company": "Delive******",
- "country": "sg",
- "entrance": "******",
- "floor": "******",
- "formattedAddress": "",
- "instructions": "Leave ******",
- "intercom": "7**0",
- "latitude": 0,
- "longitude": 0,
- "number": "******",
- "street": "Evergr******",
- "suburb": "******",
- "zipcode": "28****"
}, - "first_name": "***",
- "last_name": "***",
- "national_id": "***",
- "phone_number": "***",
- "tax_id": ""
}, - "items": [
- {
- "_id": "9d4a61a5-3e07-4240-96af-aa04797dc3a0",
- "barcode": [
- "6281100875093"
], - "container_deposit": 0,
- "discount": 0,
- "instructions": "Call me",
- "name": "Test product",
- "original_pricing": {
- "max_quantity": 1,
- "min_quantity": 0,
- "pricing_type": "UNIT",
- "quantity": 1,
- "total_price": 39.75,
- "unit_price": 39.75,
- "vat_percent": 0,
- "weight": 0
}, - "pricing": {
- "max_quantity": 1,
- "min_quantity": 0,
- "pricing_type": "UNIT",
- "quantity": 1,
- "total_price": 39.75,
- "unit_price": 39.75,
- "vat_percent": 0,
- "weight": 0
}, - "replaced_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "sku": "HSMVTE",
- "status": "IN_CART",
- "promotion": [
- {
- "name": "Drinks 0.5l and 1l on sale",
- "type": "STRIKETHROUGH",
- "discount_amount": 2.25,
- "sponsorships": [
- {
- "sponsor": "VENDOR",
- "amount": 2.25
}
]
}
]
}
], - "payment": {
- "additional_fees": {
- "holiday_fee": 1
}, - "container_charge": 1,
- "delivery_fee": 1,
- "difference_to_minimum": 0,
- "discount": -3,
- "discounts": [
- {
- "name": "First discount",
- "value": -1
}
], - "order_total": 39.75,
- "service_fee": 0,
- "sub_total": 39.75,
- "total_taxes": 1,
- "type": "PAID"
}, - "status": "RECEIVED",
- "sys": {
- "created_at": "2024-09-30T10:00:36.947Z",
- "created_by": "User 1",
- "update_status": "",
- "updated_at": "2024-09-30T10:05:36.947Z",
- "updated_by": "User 1",
- "webhook_status": ""
}, - "transport_type": "LOGISTICS_DELIVERY"
}
Retrieve comprehensive information for a specific order. This endpoint provides detailed information about an order, including:
order_id required | string Example: 9d4a63b5-3e07-4440-96af-aa04797da3a0 Order id |
{- "accepted_for": "2022-02-07T16:03:06Z",
- "promised_for": "2022-02-07T17:03:06Z",
- "comment": "My first order",
- "external_order_id": "order-78107",
- "isPreorder": false,
- "order_code": "wxfr-2440-rtbs",
- "order_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "order_type": "DELIVERY",
- "cancellation": {
- "cancelled_by": "CUSTOMER",
- "post_picked_up": false,
- "reason": "ITEM_UNAVAILABLE"
}, - "client": {
- "chain_id": "79d3a074-0f4c-44ac-892c-787fdfb04ba1",
- "country_code": "sg",
- "external_partner_config_id": "a5v3eh5",
- "id": "5ae6a211-ba40-4c38-9fa2-74a1abec229c",
- "name": "POS Test Vendor",
- "store_id": "nbet"
}, - "customer": {
- "_id": "phflgdea",
- "delivery_address": {
- "apartment": "Big Ap******",
- "block": "Bcasca******",
- "building": "******",
- "city": "Berlin",
- "company": "Delive******",
- "country": "sg",
- "entrance": "******",
- "floor": "******",
- "formattedAddress": "",
- "instructions": "Leave ******",
- "intercom": "7**0",
- "latitude": 0,
- "longitude": 0,
- "number": "******",
- "street": "Evergr******",
- "suburb": "******",
- "zipcode": "28****"
}, - "first_name": "***",
- "last_name": "***",
- "national_id": "***",
- "phone_number": "***",
- "tax_id": ""
}, - "items": [
- {
- "_id": "9d4a61a5-3e07-4240-96af-aa04797dc3a0",
- "barcode": [
- "6281100875093"
], - "container_deposit": 0,
- "discount": 0,
- "instructions": "Call me",
- "name": "Test product",
- "original_pricing": {
- "max_quantity": 1,
- "min_quantity": 0,
- "pricing_type": "UNIT",
- "quantity": 1,
- "total_price": 39.75,
- "unit_price": 39.75,
- "vat_percent": 0,
- "weight": 0
}, - "pricing": {
- "max_quantity": 1,
- "min_quantity": 0,
- "pricing_type": "UNIT",
- "quantity": 1,
- "total_price": 39.75,
- "unit_price": 39.75,
- "vat_percent": 0,
- "weight": 0
}, - "replaced_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "sku": "HSMVTE",
- "status": "IN_CART",
- "promotion": [
- {
- "name": "Drinks 0.5l and 1l on sale",
- "type": "STRIKETHROUGH",
- "discount_amount": 2.25,
- "sponsorships": [
- {
- "sponsor": "VENDOR",
- "amount": 2.25
}
]
}
]
}
], - "payment": {
- "additional_fees": {
- "holiday_fee": 1
}, - "container_charge": 1,
- "delivery_fee": 1,
- "difference_to_minimum": 0,
- "discount": -3,
- "discounts": [
- {
- "name": "First discount",
- "value": -1
}
], - "order_total": 39.75,
- "service_fee": 0,
- "sub_total": 39.75,
- "total_taxes": 1,
- "type": "PAID"
}, - "status": "RECEIVED",
- "sys": {
- "created_at": "2024-09-30T10:00:36.947Z",
- "created_by": "User 1",
- "update_status": "",
- "updated_at": "2024-09-30T10:05:36.947Z",
- "updated_by": "User 1",
- "webhook_status": ""
}, - "transport_type": "LOGISTICS_DELIVERY"
}
Update order information for seamless order management. This endpoint is crucial for integrating your 3rd party POS or Order Mnagement System with our platform. Use it to update order statuses, modify items, and manage cancellations. This real-time interaction ensures accurate order data and efficient fulfillment.
order_id required | string Example: 9d4a63b5-3e07-4440-96af-aa04797da3a0 Order Id |
Order Info
object | |
required | Array of objects (order.OrderItemToUpdate) Internal Store ID / Vendor ID defined under Q-Commerce by Catalog
Either |
order_id required | string Order id in UUID format |
status required | string Enum: "CANCELLED" "DISPATCHED" "READY_FOR_PICKUP" "UPDATE_CART" This field defines order status. Some rules must be followed providing correct status:
|
{- "cancellation": {
- "reason": "CLOSED"
}, - "items": [
- {
- "_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "name": "Test product",
- "pricing": {
- "pricing_type": "UNIT",
- "quantity": 0,
- "total_price": 39.75,
- "unit_price": 39.75,
- "weight": 0
}, - "replaced_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "sku": "101049",
- "status": "IN_CART"
}
], - "order_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "status": "CANCELLED"
}
{- "accepted_for": "2022-02-07T16:03:06Z",
- "promised_for": "2022-02-07T17:03:06Z",
- "comment": "My first order",
- "external_order_id": "order-78107",
- "isPreorder": false,
- "order_code": "wxfr-2440-rtbs",
- "order_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "order_type": "DELIVERY",
- "cancellation": {
- "cancelled_by": "CUSTOMER",
- "post_picked_up": false,
- "reason": "ITEM_UNAVAILABLE"
}, - "client": {
- "chain_id": "79d3a074-0f4c-44ac-892c-787fdfb04ba1",
- "country_code": "sg",
- "external_partner_config_id": "a5v3eh5",
- "id": "5ae6a211-ba40-4c38-9fa2-74a1abec229c",
- "name": "POS Test Vendor",
- "store_id": "nbet"
}, - "customer": {
- "_id": "phflgdea",
- "delivery_address": {
- "apartment": "Big Ap******",
- "block": "Bcasca******",
- "building": "******",
- "city": "Berlin",
- "company": "Delive******",
- "country": "sg",
- "entrance": "******",
- "floor": "******",
- "formattedAddress": "",
- "instructions": "Leave ******",
- "intercom": "7**0",
- "latitude": 0,
- "longitude": 0,
- "number": "******",
- "street": "Evergr******",
- "suburb": "******",
- "zipcode": "28****"
}, - "first_name": "***",
- "last_name": "***",
- "national_id": "***",
- "phone_number": "***",
- "tax_id": ""
}, - "items": [
- {
- "_id": "9d4a61a5-3e07-4240-96af-aa04797dc3a0",
- "barcode": [
- "6281100875093"
], - "container_deposit": 0,
- "discount": 0,
- "instructions": "Call me",
- "name": "Test product",
- "original_pricing": {
- "max_quantity": 1,
- "min_quantity": 0,
- "pricing_type": "UNIT",
- "quantity": 1,
- "total_price": 39.75,
- "unit_price": 39.75,
- "vat_percent": 0,
- "weight": 0
}, - "pricing": {
- "max_quantity": 1,
- "min_quantity": 0,
- "pricing_type": "UNIT",
- "quantity": 1,
- "total_price": 39.75,
- "unit_price": 39.75,
- "vat_percent": 0,
- "weight": 0
}, - "replaced_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "sku": "HSMVTE",
- "status": "IN_CART",
- "promotion": [
- {
- "name": "Drinks 0.5l and 1l on sale",
- "type": "STRIKETHROUGH",
- "discount_amount": 2.25,
- "sponsorships": [
- {
- "sponsor": "VENDOR",
- "amount": 2.25
}
]
}
]
}
], - "payment": {
- "additional_fees": {
- "holiday_fee": 1
}, - "container_charge": 1,
- "delivery_fee": 1,
- "difference_to_minimum": 0,
- "discount": -3,
- "discounts": [
- {
- "name": "First discount",
- "value": -1
}
], - "order_total": 39.75,
- "service_fee": 0,
- "sub_total": 39.75,
- "total_taxes": 1,
- "type": "PAID"
}, - "status": "RECEIVED",
- "sys": {
- "created_at": "2024-09-30T10:00:36.947Z",
- "created_by": "User 1",
- "update_status": "",
- "updated_at": "2024-09-30T10:05:36.947Z",
- "updated_by": "User 1",
- "webhook_status": ""
}, - "transport_type": "LOGISTICS_DELIVERY"
}
Retrieve a paginated history of orders for a specific vendor. This endpoint is ideal for reconciliation and analysis, providing detailed order information stored on our platform. Filter orders by a date range using the start
and end
parameters. You can also control pagination with page_size
and page
.
chain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
vendor_id required | string Example: naez Unique vendor identifier generated by our platform |
start_created_at_datetime | string <dateTime> Deprecated Default: "today at 00:00 time" Example: start_created_at_datetime=2023-01-01T15:00:00 Deprecated, use |
end_created_at_datetime | string <dateTime> Deprecated Default: "Today at now time" Example: end_created_at_datetime=2023-01-01T16:00:00 Deprecated, use |
start_time | string <dateTime> Default: "today at 00:00 time" Example: start_time=2023-01-01T15:00:00 Start CreatedAt datetime (ISO 8601). Maximum 60 days in the past |
end_time | string <dateTime> Default: "Today at now time" Example: end_time=2023-01-01T16:00:00 End CreatedAt datetime (ISO 8601) |
page_size | integer [ 1 .. 500 ] Default: 20 Example: page_size=10 Items per page |
page | integer Default: 1 Example: page=1 Page number |
{- "orders": [
- {
- "accepted_for": "2022-02-07T16:03:06Z",
- "promised_for": "2022-02-07T17:03:06Z",
- "comment": "My first order",
- "external_order_id": "order-78107",
- "isPreorder": false,
- "order_code": "wxfr-2440-rtbs",
- "order_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "order_type": "DELIVERY",
- "cancellation": {
- "cancelled_by": "CUSTOMER",
- "post_picked_up": false,
- "reason": "ITEM_UNAVAILABLE"
}, - "client": {
- "chain_id": "79d3a074-0f4c-44ac-892c-787fdfb04ba1",
- "country_code": "sg",
- "external_partner_config_id": "a5v3eh5",
- "id": "5ae6a211-ba40-4c38-9fa2-74a1abec229c",
- "name": "POS Test Vendor",
- "store_id": "nbet"
}, - "customer": {
- "_id": "phflgdea",
- "delivery_address": {
- "apartment": "Big Ap******",
- "block": "Bcasca******",
- "building": "******",
- "city": "Berlin",
- "company": "Delive******",
- "country": "sg",
- "entrance": "******",
- "floor": "******",
- "formattedAddress": "",
- "instructions": "Leave ******",
- "intercom": "7**0",
- "latitude": 0,
- "longitude": 0,
- "number": "******",
- "street": "Evergr******",
- "suburb": "******",
- "zipcode": "28****"
}, - "first_name": "***",
- "last_name": "***",
- "national_id": "***",
- "phone_number": "***",
- "tax_id": ""
}, - "items": [
- {
- "_id": "9d4a61a5-3e07-4240-96af-aa04797dc3a0",
- "barcode": [
- "6281100875093"
], - "container_deposit": 0,
- "discount": 0,
- "instructions": "Call me",
- "name": "Test product",
- "original_pricing": {
- "max_quantity": 1,
- "min_quantity": 0,
- "pricing_type": "UNIT",
- "quantity": 1,
- "total_price": 39.75,
- "unit_price": 39.75,
- "vat_percent": 0,
- "weight": 0
}, - "pricing": {
- "max_quantity": 1,
- "min_quantity": 0,
- "pricing_type": "UNIT",
- "quantity": 1,
- "total_price": 39.75,
- "unit_price": 39.75,
- "vat_percent": 0,
- "weight": 0
}, - "replaced_id": "9d4a63b5-3e07-4440-96af-aa04797da3a0",
- "sku": "HSMVTE",
- "status": "IN_CART",
- "promotion": [
- {
- "name": "Drinks 0.5l and 1l on sale",
- "type": "STRIKETHROUGH",
- "discount_amount": 2.25,
- "sponsorships": [
- {
- "sponsor": "VENDOR",
- "amount": 2.25
}
]
}
]
}
], - "payment": {
- "additional_fees": {
- "holiday_fee": 1
}, - "container_charge": 1,
- "delivery_fee": 1,
- "difference_to_minimum": 0,
- "discount": -3,
- "discounts": [
- {
- "name": "First discount",
- "value": -1
}
], - "order_total": 39.75,
- "service_fee": 0,
- "sub_total": 39.75,
- "total_taxes": 1,
- "type": "PAID"
}, - "status": "RECEIVED",
- "sys": {
- "created_at": "2024-09-30T10:00:36.947Z",
- "created_by": "User 1",
- "update_status": "",
- "updated_at": "2024-09-30T10:05:36.947Z",
- "updated_by": "User 1",
- "webhook_status": ""
}, - "transport_type": "LOGISTICS_DELIVERY"
}
], - "page_number": 2,
- "page_size": 20,
- "total_pages": 15
}
Drive sales and boost customer engagement with targeted promotions. This section provides endpoints for creating and managing a variety of promotional campaigns to incentivize purchases and enhance customer loyalty.
Key Features:
Create or update promotions to boost your sales and engage customers. This endpoint simplifies promotion management with its upsert functionality:
The API intelligently determines whether to create a new promotion or update an existing one based on the unique combination of name
, vendors
, condition.start_time
, and condition.end_time
.
chain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
Updating promotion
reason | string Default: "COMPETITIVENESS" Enum: "OVERSTOCK" "DELISTING" "COMPETITIVENESS" "EXPIRING_SOON" "NMR" "TRADING" Reason why the promotion is being run. Not displayed on platforms and is used for reporting purposes only. Supported options:
|
active | boolean Default: true Set as |
vendors required | Array of strings Set of vendor IDs relevant to the promotion. If |
type required | string Value: "STRIKETHROUGH" Promotion type. Currently, only strikethrough is supported |
object (promotion.DisplayName) The name of the promotion. This will be shown to customers (in the cart page). For example: Buy 1 Get 1 Free, Buy 2 get 50% off 2nd
| |
required | object (promotion.Condition) Flexible setup of the conditions |
required | Array of objects (promotion.Discount) <= 20000 items Setup of the discounted products |
object (promotion.Limits) Set of available limitations on promotion or order level |
Simple strikethrough: -10% for 2 SKUs
{- "vendors": [
- "urd8"
], - "type": "STRIKETHROUGH",
- "active": true,
- "reason": "COMPETITIVENESS",
- "display_name": {
- "en_GB": "Drinks 0.5l and 1l on sale"
}, - "conditions": {
- "start_time": "2024-03-05T15:59:59Z",
- "end_time": "2024-03-05T16:59:59Z"
}, - "discount": [
- {
- "discount_subtype": "PERCENTAGE",
- "discount_value": 10,
- "active": true,
- "sku": [
- "3671",
- "3672"
]
}
]
}
{- "job_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
- "job_status": "QUEUED"
}
This endpoint provides the status of the promotion update job:
QUEUED
if the job has not yet been processed. COMPLETED
the job has finished processing. Note that this does not necessarily mean the promotion was created. For example, if all SKUs were invalid, the promotion may not have been created. However, if all inputs were valid, the promotion should be successfully created.FAILED
the job processing failed.result
provides additional details about the job processing, such as any SKUs or vendors that will not be included in the promotion due to an error once the processing is complete.
chain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
job_id required | string Example: a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9 Job ID from the response of the PUT |
{- "job_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
- "job_status": "QUEUED",
- "created_at": "2024-09-30T10:00:36Z",
- "updated_at": "2024-09-30T10:05:36Z",
- "result": {
- "invalid_vendors": [
- "dsfr"
], - "missing_skus": {
- "v4ft": [
- "3671",
- "3672"
]
}
}
}
Control your outlet's operational status and schedule with ease, ensuring accurate availability information for customers. This section offers endpoints to manage opening hours, closures, and check-ins, providing real-time updates and flexible control over your outlet's operations.
Key Features:
Gets availability status of the given vendor. The following statuses:
CLOSED_TODAY
- the vendor was closed and will stay not operational for entire day CLOSED_UNTIL
- the vendor was closed till specific date-time. Specific closure time is specified in closed_until
fieldCLOSED
- the vendor was closed without end dateOPEN
- the vendor is operationalchain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
vendor_id required | string Example: naez Unique vendor identifier generated by our platform |
{- "vendor_id": "naez",
- "status": "CLOSED_UNTIL",
- "closed_reason": "TECHNICAL_PROBLEM",
- "closed_until": "2024-09-30T10:00:36Z",
- "checkin_interval": {
- "start_time": "2024-09-30T10:00:36Z",
- "end_time": "2024-09-30T10:30:36Z"
}
}
Updates an availability status of the given vendor. Supported statuses are:
CLOSED_TODAY
- the vendor was closed and will stay not operational for entire dayCLOSED_UNTIL
- the vendor was closed till specific date-time. Specific closure time is specified in closed_until
fieldOPEN
- the vendor is operationalchain_id required | string Example: 550e8400-e29b-41d4-a716-446655440000 Unique chain identifier |
vendor_id required | string Example: naez Unique vendor identifier generated by our platform |
Updating availability status
status required | string Enum: "CLOSED_TODAY" "CLOSED_UNTIL" "OPEN" "CHECKIN" Supported statuses are:
|
closed_reason | string Enum: "TOO_BUSY_NO_DRIVERS" "TOO_BUSY_KITCHEN" "UPDATES_IN_MENU" "UNREACHABLE" "TECHNICAL_PROBLEM" "CLOSED" "OTHER" "TOO_MANY_REJECTED_ORDERS" "ORDER_FAILURE" "COURIER_DELAYED_AT_PICKUP" "RESTRICTED_VISIBILITY" "BAD_WEATHER" "HOLIDAY_SPECIAL_DAY" "ONBOARDING" "READY_TO_GO_ONLINE" "OFFBOARDING" "RETENTION" "COMPLIANCE_ISSUES" "OWNERSHIP_CHANGE" "REFURBISHMENT" "FOOD_HYGIENE" "FRAUD" "RELIGIOUS_OBSERVANCE" "CHECK_IN_REQUIRED" "CHECK_IN_FAILED" "AREA_DISRUPTION" The reason why the vendor had been closed. Will be omitted if the vendor status is |
closed_until | string <dateTime> Default: "" Date and time till the vendor will stay closed in UTC (ISO 8601 format, UTC timezone). Filed will be omitted for all statuses, except |
{- "status": "CLOSED_UNTIL",
- "closed_reason": "TECHNICAL_PROBLEM",
- "closed_until": "2024-09-30T10:00:36Z"
}
{- "vendor_id": "naez",
- "status": "CLOSED_UNTIL",
- "closed_reason": "TECHNICAL_PROBLEM",
- "closed_until": "2024-09-30T10:00:36Z",
- "checkin_interval": {
- "start_time": "2024-09-30T10:00:36Z",
- "end_time": "2024-09-30T10:30:36Z"
}
}