Data dictionary

AddressDetail

Note: D-Store passes each parameter in this data model if it can obtain the parameter value.

Field

Data type

Required

Description

addressDetail

String

No

The buyer's address. The value is based on the buyer's input, which might include the following details in the given order: street number, street name, area, city, and country.

Maximum length: 255 characters

blockNo

String

No

The block number.

Maximum length: 255 characters

floorNo

String

No

The floor number.

Maximum length: 255 characters

unitNo

String

No

The unit number.

Maximum length: 255 characters

postCode

String

No

The postcode of the buyer's address. You can use this parameter to calculate delivery distance and time.

Maximum length: 6 characters

latitude

String

No

The latitude of the user's address. You can use this parameter and longitude to calculate delivery distance and time.

Value range: -180.000000-180.000000

longitude

String

No

The longitude of the user's address. You can use this parameter and latitude to calculate delivery distance and time.

Value range: -90.000000-90.000000

additionalInformation

String

No

The additional address information.

Maximum length: 255 characters

Amount

Field

Data type

Required

Description

value

Integer

Yes

The amount value in the currency's smallest unit. For example, 10000 means 100.00 in SGD.

Value range: 0-2147483647

currency

String

Yes

The 3-character currency code that follows ISO-4217. For example, USD.

Maximum length: 3 characters

ClosingEndTimes

Field

Datatype

Required

Description

defaultClosingEndTime

Datetime

No

The end time of the closing period for all order channels. The value follows the ISO 8601 standard format.

Note: If the specified value exceeds the maximum closing duration allowed by any order channel where the store operates, it is automatically adjusted to align with the maximum closing end time allowed by that channel. The maximum closing duration for each channel is as follows:

    • Foodpanda: 12 hours
    • GrabFood: 24 hours
    • D-Store: 240 hours

Customer

Field

Data type

Required

Description

buyerName

String

No

The buyer's name.

Maximum length: 64 characters

mobileNo

String

No

The buyer's phone number.

Maximum length: 64 characters

areaCode

String

No

The international calling code of the buyer's phone number without the plus sign or zero prefixes.

Maximum length: 10 characters

email

String

No

The buyer's email address.

Maximum length: 64 characters

DeliveryDetail

Field

Data type

Required

Description

deliveryProvider

String

Yes

The entity that provides the delivery service for the order.

  • MERCHANT: The delivery service is provided by the merchant.
  • CHANNEL: The delivery service is provided by the order channel.

addressInfo

AddressDetail

No

The details of the delivery address. This parameter is specified if the delivery service is provided by the merchant.

riderCollectionTime

Datetime

No

The estimated time when the delivery rider is expected to arrive at the merchant's location to collect the order. The value follows the ISO 8601 standard format. This parameter might be specified if the delivery service is provided by the order channel.

DetailedStoreInfo

Field

Data type

Required

Description

posStoreId

String

Yes

The unique ID that is assigned by the POS provider to identify a store.

Maximum length: 255 characters

name

String

No

The store name.

Maximum length: 255 characters

Note: Specify this parameter if you call the syncStore API to create a new store.

status

String

No

The store status. Valid values are:

  • OPEN: The store is open.
  • CLOSED: The store is temporarily closed.

Notes:

  • Specify this parameter if you call the syncStore API to create a new store or change the store status.
  • If you set the value to CLOSED in the syncStore API, you need to specify the end time of the closing period using extendInfo.closingEndTimes. Otherwise, a default time is applied. For more information, refer to the description of extendInfo.

fullAddress

String

No

The full address of the store. Include the following details when applicable: street name and number, area, province, and city.

Maximum length: 2048 characters

Note: Specify this parameter if you call the syncStore API to create a new store.

mobileNo

String

No

The contact number of the store. Specify this parameter using the local phone number without the area code and spaces.

Maximum length: 32 characters

Note: Specify this parameter if you call the syncStore API to create a new store.

extendInfo

Object

No

An extended attribute that is used to provide additional information if necessary.

Maximum length: 4096 characters

This parameter is specified in key-value pairs with the following valid key:

  • closingEndTimesOptional: The end time of the closing period. The value is Object that conforms to the ClosingEndTimes data model. Specify this key if status is set to CLOSED.

Notes:

    • If not specified, each channel shares a default closing end time, which is the earliest closing end time required among your integrated order channels. The maximum closing duration for each channel is as follows:
      • Foodpanda: 12 hours
      • GrabFood: 24 hours
      • D-Store: 240 hours
    • At the specified closing end time, the POS provider must call the syncStore API and set store.status to OPEN to open the store. Otherwise, the store automatically opens five minutes after the specified closing end time. Note that if a channel's automatic opening time exceeds its maximum closing duration, the store instead opens at the latest allowed closing end time for that channel.

OrderAmountDetail

Field

Data type

Required

Description

subTotalAmount

Amount

Yes

The subtotal, which is the sum of all product prices.

tax

Amount

No

The tax amount.

taxDetail

TaxDetail

No

The tax breakdown. This parameter is specified if tax is specified.

serviceCharge

Amount

No

The service charge.

takeawayAmount

Amount

No

The takeaway fee.

deliveryFee

Amount

No

The delivery fee.

discountAmount

Amount

No

The discount amount.

paymentAmount

Amount

Yes

The paid amount, which equals the amount specified in orderAmount minus the one in orderAmountDetail.discountAmount.

paymentDetails

Array<PaymentDetail>

Yes

The payment breakdown based on payment methods.

refundDetails

Array<RefundDetail>

No

The refund details. Specify this parameter if the order includes a refund.

extendInfo

Object

No

An extended attribute that is used to provide additional information if necessary.

Maximum length: 2048 characters

This parameter is specified in key-value pairs with the following valid key:

  • customizedFeeDetails:OptionalThe details of customized fees. Specify this key if the order includes customized fees set by the merchant. Its value is Object with custom String keys, and the value assigned to each key conforms to the Amount data model.
  • riderTip: OptionalThe tip amount that the buyer gives to the delivery rider. This key is specified if the buyer tips the rider. Its value conforms to the Amount data model.

OrderProduct

Field

Data type

Required

Description

subOrderId

String

No

The unique ID that is assigned by D-Store in createOrder requests to identify each top-level product with its set of subproducts within an order. This ID ensures distinctions between items that might have the same top-level product but different subproducts. This parameter value is used in order modification requests.

posProductId

String

Yes

The unique ID that is assigned by the POS provider to identify a product.

price

Amount

No

The product price. Specify this parameter if the value of products.type is SINGLE or MODIFIER.

quantity

Integer

Yes

The product quantity.

Value range: 0-unlimited

subProducts

Array<OrderProduct>

No

The subproduct that is associated with a product or another subproduct, which can be a product in a bundle or combo, a variant, or a modifier.

memo

String

No

The buyer's notes on a product.

Maximum length: 2048 characters

PaymentDetail

Field

Data type

Required

Description

paymentAmount

Amount

Yes

The amount of money that is paid through the specified payment method.

paymentMethod

String

Yes

The method by which the specified payment amount is paid. Valid values are:

  • CASH: The payment is made in cash.
  • EWALLET: The payment is made using e-wallets.
  • CARD: The payment is made using a debit card or credit card.
  • UNKNOWN: The payment method used is unknown.

extendInfo

Object

No

An extended attribute that is used to provide additional information if necessary.

Maximum length: 2048 characters

This parameter is specified in key-value pairs. If the payment is processed by an acquiring service provider, specify the following keys:

  • acqProvider:OptionalThe unique identifier of an acquiring service provider. Its value is String with the following valid values:
    • RAZER: The acquiring service provider is Razer.
    • 2C2P: The acquiring service provider is 2C2P.
    • OPEN_RICE: The acquiring service provider is OpenRice.
    • ALIPAY_PLUS: The acquiring service provider is Alipay+.
  • acqMerchantId:OptionalThe unique ID that is assigned by the acquiring service provider to identify a merchant. Its value is String.
  • paymentRequestId:OptionalThe unique ID that is assigned by the acquiring service provider to identify a payment request. Its value is String.

Product

Note: Products with an identical posProductId share the following parameters across all stores: type, name, description, images, and subProducts. Therefore, when the POS provider calls syncProduct to synchronize full product information for a different store of the same merchant, any updates to the shared parameters in one store are automatically applied across all other stores with the specified products.

Field

Data type

Required

Description

posProductId

String

Yes

The unique ID that is assigned by the POS provider to identify a product.

Notes:

  • It is recommended to use consistent IDs for equivalent products across stores of the same merchant. This simplifies product management for the merchant.
  • The ID cannot be changed after the product synchronization. A new ID indicates a new product even if other product parameters are the same.

type

String

No

The product type. Valid values are:

  • SINGLE: Set to this value if the product is a single item, a variant product, a combo meal, or a bundle.
  • MODIFIER: Set to this value if the product is a modifier.
  • GROUP: Set to this value if the product is a group of single items or modifiers.

Note: Specify this parameter if you call the syncProduct API to synchronize full product information.

status

String

Yes

The product status. Valid values are:

  • AVAILABLE: Set to this value if the product is available.
  • SOLDOUT: Set to this value if the product is sold out.

Note: You can remove a product by removing its data from the syncProduct request.

name

String

No

The product name.

Maximum length: 255 characters

Note: Specify this parameter if you call the syncProduct API to synchronize full product information.

description

String

No

The product description.

Maximum length: 2048 characters

images

Array<String>

No

The product images shown in the menu.

Maximum size: 5 elements

Maximum length: 255 characters

price

Amount

No

The product price.

Note: Specify this parameter if you call the syncProduct API to synchronize full product information.

quantityRule

QuantityRule

No

The quantity rule of the product.

overloads

Array<ProductOverload>

No

The adjusted price or quantity rule of a product.

subProducts

Array<String>

No

The ID list of products that you want to attach the product to.

ProductOverload

Field

Data type

Required

Description

posProductIds

Array<String>

Yes

The ID list of products that you want to adjust the price for.

Maximum length: 255 characters

price

Amount

No

The adjusted price of the product. This parameter can only take effect for products whose type is SINGLE or MODIFIER.

quantityRule

QuantityRule

No

The adjusted quantity rule of the product.

PromotionDetail

Field

Data type

Required

Description

promoId

String

Yes

The unique ID that is assigned by D-Store to identify a promotional campaign.

Maximum length: 64 characters

promoType

String

Yes

The type of the promotional campaign. Valid values are:

  • INSTANT_DISCOUNT: Set to this value if an instant discount is used on this order.
  • COUPON: Set to this value if a coupon is used on this order.

promoName

String

No

The name of the promotional campaign.

Maximum length: 256 characters

discountAmount

Amount

Yes

The discount amount of this order.

promoInvestorType

String

Yes

The investor who funds the promotional campaign. Valid values are:

  • MERCHANT: Set to this value if the merchant funds the promotional campaign.
  • PLATFORM: Set to this value if D-Store funds the promotion campaign.
  • SUPER_APP: Set to this value if the super app funds the promotional campaign.

extendInfo

String

No

The extended information about the promotional campaign.

  • Maximum length: 1024 characters
  • Characters not allowed: special characters such as @ # ?

QuantityRule

Field

Data type

Required

Description

max

Integer

Yes

The maximum number of products a user can choose. The value of this parameter cannot be smaller than that of the quantityRule.min parameter.

Value range: 0-2147483647

min

Integer

Yes

The minimum number of products a user can choose. The value of this parameter cannot be greater than that of the quantityRule.max parameter.

Value range: 0-2147483647

Receipt

Field

Data type

Required

Description

cashierReceipt

String

No

The receipt provided for merchants displays the transaction information.

customerReceipt

String

No

The receipt provided for buyers displays the transaction information.

RefundDetail

Field

Data type

Required

Description

refundAmount

Amount

Yes

The amount of money that is refunded through the specified refund method.

refundMethod

String

Yes

The method by which the specified refund amount is refunded. Valid values are:

  • CASH: The refund is made in cash.
  • EWALLET: The refund is made using e-wallets.
  • CARD: The refund is made using a debit card or credit card.
  • UNKNOWN: The refund method used is unknown.

refundReason

String

No

The refund reason.

extendInfo

Object

No

An extended attribute that is used to provide additional information if necessary.

Maximum length: 2048 characters

This parameter is specified in key-value pairs. If the refund is processed by an acquiring service provider, specify the following keys:

  • acqProvider:OptionalThe unique identifier of an acquiring service provider. Its value is String with the following valid values:
    • RAZER: The acquiring service provider is Razer.
    • 2C2P: The acquiring service provider is 2C2P.
    • OPEN_RICE: The acquiring service provider is OpenRice.
    • ALIPAY_PLUS: The acquiring service provider is Alipay+.
  • acqMerchantId:OptionalThe unique ID that is assigned by the acquiring service provider to identify a merchant. Its value is String.
  • paymentRequestId:OptionalThe unique ID that is assigned by the acquiring service provider to identify the original payment request. Its value is String.

RefundInfo

Field

Data type

Required

Description

requestRefundId

String

Yes

The unique ID that is assigned by the order channel to identify a refund.

refundStatus

String

Yes

The status of the refund. Valid value is:

  • REFUNDED: The specified amount is or will be refunded to the buyer. For the actual refund status, consult the order channel or the buyer.

refundAmount

Amount

Yes

The amount to be refunded to the buyer.

Result

Field

Data type

Required

Description

resultStatus

String

Yes

The result status. Valid values are:

  • S: Successful
  • F: Failed
  • U: Unknown

resultCode

String

No

The result code.

Maximum length: 64 characters

resultMessage

String

No

The result message that describes the result code in detail.

Maximum length: 256 characters

Store

Field

Data type

Required

Description

posStoreId

String

Yes

The unique ID that is assigned by the POS provider to identify a store.

Maximum length: 255 characters

name

String

No

The store name.

Maximum length: 255 characters

TaxDetail

Field

Data type

Required

Description

subTotalTaxAmount

Amount

Yes

The tax amount for the subtotal.

serviceChargeTaxAmount

Amount

No

The tax amount for the service charge. This parameter is specified if the service charge and its tax are both applied to the order.

takeawayTaxAmount

Amount

No

The tax amount for the takeaway fee. This parameter is specified if the takeaway fee and its tax are both applied to the order.

UpdatedOrderProduct

Field

Data type

Required

Description

subOrderId

String

No

The unique ID that is assigned by D-Store to identify each top-level product with its set of subproducts within an order. This ID ensures distinctions between items that might have the same top-level product but different subproducts.

Note: This parameter is specified in the pushOrderChange requests if order modifications are made.

posProductId

String

Yes

The unique ID that is assigned by the POS provider to identify a product.

Note: The product specified by this parameter is a top-level product.

updateType

String

Yes

The type of changes that are made to the specified top-level product. Valid values are:

  • ADD: Add new top-level products, or existing top-level products that have different subproducts.
  • UPDATE: Update the information of existing top-level products. This value is set in the following scenarios:
    • Adjusting the price and quantity of the top-level product.
    • Updating subproducts, including their prices and quantities.
  • REMOVE: Remove the existing top-level products and their subproducts.

price

Amount

No

The updated price of the specified product. This parameter is specified if the value of updateType is ADD or UPDATE.

quantity

Integer

No

The updated quantity of the specified product. This parameter is specified if the value of updateType is ADD or UPDATE.

Value range: 0-unlimited

subProducts

Array<OrderProduct>

No

The subproducts that are ordered with the top-level products. This parameter is specified if any subproducts are ordered.