---
title: "POST /{applicationId}/orders"
method: POST
path: "/{applicationId}/orders"
tags: ["Order"]
---

# POST /{applicationId}/orders

`POST /{applicationId}/orders`

## Request

- Base URL: `https://virtserver.swaggerhub.com/GrubTech/grubtech-grocery-integration-apis/1.0.0`
- URL: `https://virtserver.swaggerhub.com/GrubTech/grubtech-grocery-integration-apis/1.0.0/{applicationId}/orders`
- Auth: OAuth 2
  - Authorization code: `https://id.staging.grubtech.io/oauth2/authorize`
  - Token URL: `https://id.staging.grubtech.io/oauth2/token`

Push an order to the Grubtech platform.

## Path parameters

- `applicationId` string, required

## Request body

- Order
  - `id` string, required: Unique ID for the order from the aggregator platform.
  - `storeId` string, required: Store ID is for identifying the relevant store of the order. This ID will be provided by either Grubtech or the aggregator.
  - `displayId` string, required: Displayable friendly five-character ID, used by stores and couriers to identify the order easily
  - `type` 'DELIVERY_BY_AGGREGATOR' | 'DELIVERY_BY_MERCHANT' | 'PICK_UP', required: Type of an order
  - `currencyCode` string, required: Applicable currency code for the menu. According to ISO-4217
  - `instructions` string: Instructions from the customer pertaining to the preparation of this order.
  - `delivery` Delivery: Delivery details of the order. If the requested party is planning to do the delivery by the Grubtech end, delivery information is mandatory.
    - `receiverName` string, required: Name of the receiver
    - `receiverMobileNumber` string, required: Mobile number of the receiver
    - `location` Location, required: Geographical information of the order receiving party.
      - `address` string, required: Complete address of the location.
      - `street` string: Street name of the location.
      - `area` string: Area name of the location.
      - `city` string: City name of the location.
      - `latitude` string, required: Geographic coordinates of the location
      - `longitude` string, required: Geographic coordinates of the location
    - `notes` string: A special note for delivery
    - `pickupTime` string, date-time: The time items were picked up or will be picked up, represented in ISO 8601 format.
  - `customer` Customer: The details of the person who is placing the order.If the order type equals to DELIVERY_BY_MERCHANT or PICK_UP, then this object is required.
    - `name` string, required: Name of the customer
    - `contactNumber` string, required: Contact number of the customer
    - `email` string: e-mail address of the customer
  - `items` Item[], required
    - `id` string, required: Unique identifying ID for the item, provided by the Grubtech.
    - `lineId` string, required: Unique identifying ID for the order line item within order, provided by the store.
    - `quantity` integer, required: Quantity of the items
    - `price` Price, required: Pricing information of the order, which contains the unit price, discounts, and total price
      - `unitPrice` integer, required: Specifies the unit price to charge for ordering the item. Price should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
      - `discountAmount` integer: Specifies the unit price to charge for ordering the item. Price should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
      - `totalPrice` integer, required: Specifies the unit price to charge for ordering the item. Price should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
    - `adjustmentActions` AllowedAction[]
    - `instructions` string: Item level instructions.
  - `archivedItems` ArchivedItem[]
    - `id` string, required: Unique identifying ID for the item, provided by the Grubtech.
    - `lineId` string, required: Unique identifying ID for the order line item within order, provided by the store.
    - `quantity` integer, required: Quantity of the items
    - `price` Price, required: Pricing information of the order, which contains the unit price, discounts, and total price
      - `unitPrice` integer, required: Specifies the unit price to charge for ordering the item. Price should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
      - `discountAmount` integer: Specifies the unit price to charge for ordering the item. Price should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
      - `totalPrice` integer, required: Specifies the unit price to charge for ordering the item. Price should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
    - `archivedReason` 'ITEM_REMOVAL' | 'ITEM_SUBSTITUTION' | 'QTY_ADJUSTMENT', required: Reason for the item amendment
    - `amendItems` OrderAmends[]
      - `id` string, required: Unique identifier for the item which is related to the amendment
      - `lineId` string, required: Unique identifying ID for the order line item within the order provided by the store.
      - `quantity` integer, required: Quantity related to the item amendment
  - `payment` Payment, required: payment information related to an order
    - `status` 'PREPAID' | 'POSTPAID' | 'UNPAID' | 'FOC', required: Payment status of an order
    - `charges` Charges, required: The charges that compose the payment for an order
      - `subTotal` integer, required: The substotal of the complete order without discounts
      - `total` integer, required: Total of the order after applying discounts and other chareges to the subtotal
    - `discounts` Discount[]
      - `amount` integer, required: Specifies the discount amount based on the discount type. The amount should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
      - `code` string
      - `type` 'PROMOTION' | 'VOUCHER', required: Discount type
    - `settlements` PaymentSettlement[], required
      - `method` 'CASH' | 'CARD' | 'PREPAID' | 'FOC' | 'LOYALTY_POINTS' | 'VOUCHER', required: Payment method of the order
      - `amount` integer, required: Amount of the settlement. The amount should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
      - `notes` string: Remarks regarding the payment settlement
    - `loyaltyPoints` LoyaltyPoints: Loaylty points information
      - `system` string, required: System which provides loyalty points scheme
      - `points` string, required: Number of loyalty points redeemed
      - `reference` string: Loyalty points usage reference
      - `notes` string: Remarks regarding the loyalty points
    - `additionalCharges` Charge[]
      - `type` 'SERVICE_FEE' | 'DELIVERY_FEE' | 'DELIVERY_TIPS' | 'PACKAGE_FEE' | 'OTHER_FEES' | 'SURCHARGE', required: Type of an additional charge.
      - `amount` integer, required: A specific amount of the relevant charge type. This should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
      - `discountAmount` integer: A specific price amount that will be taken off from an item. This should always be an integer value (never decimals) because the price is set in the lowest denomination (e.g., cents for US currency, not dollars). Price should always be set even if the price is 0.
  - `scheduledOrder` object: Scheduled order details. This object should be included only if the order is expected to be prepared at a future time.
    - `scheduledAt` string: The time at which the order will be scheduled is represented in ISO 8601 format.
  - `status` 'PLACED' | 'APPROVED', required: Order status. This will indicate the current status of the order
  - `placedAt` string, required: The time at which the order was placed, represented in ISO 8601 format.

## Response `204`

Successful response OK

- NoContent (unresolved $ref)

## Other responses

- `400`: Bad request
- `500`: Internal server error

---

[API](https://skmtc.dev/grubtech/apis/grubtech-grocery-apis.md) - [All operations](https://skmtc.dev/grubtech/apis/grubtech-grocery-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/grubtech/apis/grubtech-grocery-apis/revisions/38664609b45c?raw)
