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

# PUT /{applicationId}/orders/{id}

`PUT /{applicationId}/orders/{id}`

## 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/{id}`
- Auth: OAuth 2
  - Authorization code: `https://id.staging.grubtech.io/oauth2/authorize`
  - Token URL: `https://id.staging.grubtech.io/oauth2/token`

The aggregator platform should send the final order after calculating all prices based on the communicated order amendments.

## Path parameters

- `applicationId` string, required
- `id` string, required

## Request body

- FinalOrderInfo
  - `instructions` string: Instructions from the customer pertaining to the preparation of this order.
  - `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

## 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)
