orders_endpoints

Update order

Replaces the order identified by orderId with the full order payload provided in the request body. Send the complete order representation (the same shape used to create it), not a partial patch. To change only the status, customer payment, or delivery information, prefer the dedicated /status, /payments, and /delivery endpoints. Returns 404 if no order matches the given orderId for this store. Rate limit: 32 requests per minute.

put/v1/orders/{orderId}

Request

Path parameters

orderIdstring required

The external order identifier supplied by your app in externalIdentifiers.id when the order was created.

Example:295f76b4-5725-4bf5-a8ab-97943dbdc3b4

Headers

X-Store-Idstring required

The unique identifier of the store in your app. This ID, along with the Application ID, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to onboarding:905bb725-b141-4a9b-832a-1f254f772c94 (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided internalStoreId (a.k.a. Sku-Sku ID).

Example:partner-store-unique-identifier

Request body

currencyCodestring required

The 3-letter currency code (ISO 4217) used for all monetary values in this order (item prices, modifier prices, and every amount in orderTotal / orderTotalV2). All amounts are expressed in the major unit of this currency (for example 12.50), never in minor units (cents).

status'NEW_ORDER' | 'CONFIRMED' | 'PICKED_UP' | 'CANCELED' | 'FULFILLED' | 'PREPARED' | 'REJECTED' | 'PREVISIT_COMPLETED' | 'PREVISIT_NO_SHOW' | 'UNKNOWN' required

The current status of the order. When creating an order this is typically NEW_ORDER (awaiting confirmation) or CONFIRMED. UNKNOWN is returned only when the status cannot be mapped.

orderedAtstring date-time nullable

The date (in UTC) when the order was placed by the customer.

customerNotestring nullable

An order-level note provided by the customer.

cutleryRequest'CUTLERY_REQUESTED' | 'CUTLERY_NOT_NEEDED' nullable

The customer's cutlery (utensils) preference. Only present when the ordering marketplace offers the customer this choice and reported it to Otter. An absent or null value means no preference was reported and must not be treated as a request for cutlery — some marketplaces and first-party channels never report it.

Example request

{
  "externalIdentifiers": {
    "id": "69f60a06-c335-46d9-b5a1-97f1a211c514",
    "friendlyId": "ABCDE",
    "source": "ubereats",
    "sourceExternalIdentifiers": {
      "id": "69f60a06-c335-46d9-b5a1-97f1a211c514",
      "friendlyId": "ABCDE",
      "source": "ubereats"
    }
  },
  "currencyCode": "EUR",
  "items": [
    {
      "quantity": 1,
      "skuPrice": 5.9,
      "id": "33e0418f-3d56-4360-ba03-18fc5f8844a3",
      "lineItemId": "2f91f9f3-2d7e-4898-ae81-00fe06ed7dbf",
      "skuId": "867b8fdc-cf7b-4fc3-b7e0-4c7b68d8b1cc",
      "name": "Juicy Cheeseburger",
      "note": "Please cook to well done!",
      "categoryId": "303de078-870d-4349-928b-946869d4d69b",
      "internalCategoryId": "76a66bba-48fb-4bac-80ee-2616a5ca1ab9",
      "categoryName": "Burgers",
      "internalCategoryName": "Burgers",
      "stationId": "5247b8a1-77de-4844-b024-cb59fcec59bd",
      "price": 5.9,
      "modifiers": [
        {
          "quantity": 1,
          "skuPrice": 1,
          "id": "d7a21692-9195-43aa-a58f-5395bba8a804",
          "lineItemId": "2f91f9f3-2d7e-4898-ae81-00fe06ed7dbf",
          "skuId": "867b8fdc-cf7b-4fc3-b7e0-4c7b68d8b1cc",
          "name": "Avocado",
          "price": 1,
          "groupName": "Add ons",
          "groupId": "fb52b138-7ac4-42c1-bfd8-664d57113a41",
          "stationId": "a49cbd3e-94e2-462d-a6de-1985e5d98d1c"
        }
      ]
    }
  ],
  "orderedAt": "2007-12-03T09:15:30.000Z",
  "customer": {
    "name": "Jane Doe",
    "phone": "+1-555-555-5555",
    "phoneCode": "111 11 111",
    "email": "email@email.com",
    "personalIdentifiers": {
      "serviceProviderId": "12345ba6-789e-123f-4e56-d78db90d123b"
    }
  },
  "customerNote": "Please include extra napkins!",
  "deliveryInfo": {
    "courier": {
      "name": "Jane Doe",
      "phone": "+1-555-555-5555",
      "phoneCode": "111 11 111",
      "email": "email@email.com",
      "personalIdentifiers": {
        "serviceProviderId": "12345ba6-789e-123f-4e56-d78db90d123b"
      }
    },
    "destination": {
      "fullAddress": "123 Sample Street Ste 100, San Francisco, CA 94103",
      "postalCode": "20500",
      "city": "Washington",
      "state": "DC",
      "countryCode": "US",
      "addressLines": [
        "1600 Pennsylvania Avenue NW",
        "123 Sample Street Ste 100, San Francisco, CA 94103"
      ],
      "linesOfAddress": [
        "1600 Pennsylvania Avenue NW",
        "123 Sample Street Ste 100, San Francisco, CA 94103"
      ],
      "location": {
        "latitude": 38.8977,
        "longitude": 77.0365
      }
    },
    "licensePlate": "ABC 123",
    "makeModel": "Honda CR-V",
    "lastKnownLocation": {
      "latitude": 38.8977,
      "longitude": 77.0365
    },
    "dropoffInstructions": {
      "verificationRequirements": {
        "signatureRequirement": {
          "enabled": true,
          "collectSignerName": true,
          "collectSignerRelationship": true
        },
        "pictureRequirement": {
          "enabled": true
        }
      }
    },
    "note": "Gate code 123"
  },
  "orderTotal": {
    "subtotal": 11.97,
    "claimedSubtotal": 11.97,
    "discount": -1.1,
    "tax": 1.1,
    "tip": 2,
    "deliveryFee": 5,
    "total": 19.07,
    "couponCode": "VWXYZ98765"
  },
  "orderTotalV2": {
    "customerTotal": {
      "foodSales": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "feeForRestaurantProvidedDelivery": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "restaurantFundedDiscount": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "voucherDiscount": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "promotionDiscount": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "operatorDiscount": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "loyaltyDiscount": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "tipForRestaurant": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "adjustments": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "packingFee": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "bagFee": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "serviceProviderDiscount": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "tipForServiceProviderCourier": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "feeForServiceProviderDelivery": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "smallOrderFee": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "serviceFee": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "otherFee": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "netPayout": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "couponCodes": [
        "TACOWED5OFF"
      ]
    },
    "customerPayment": {
      "customerPaymentDue": 1,
      "customerPrepayment": 1,
      "customerAmountToReturn": 1,
      "paymentDueToRestaurant": 1
    },
    "payout": {
      "payoutFromServiceProvider": 1,
      "payoutFrom3rdParty": 1,
      "cashPayout": 1
    },
    "serviceProviderCharge": {
      "commission": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "processingFee": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "salesTaxWithheld": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "deliveryFeeForRestaurant": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "advertisingFee": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "chargesAdjustments": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      },
      "otherFees": {
        "breakdown": [
          {
            "name": "sales tax.",
            "value": 3.4
          }
        ]
      }
    }
  },
  "customerPayments": [
    {
      "value": 2,
      "paymentRecords": [
        {
          "otterPaymentRecordId": "otter_123456789",
          "recordProviderType": "STRIPE",
          "recordPaymentType": "CARD",
          "paymentRecordId": "pm_123456789",
          "payerId": "payer_123456789",
          "balanceTransactionId": "ext_bt_123456789",
          "paymentDetails": {
            "brandType": "VISA",
            "expiration": {
              "year": 2025,
              "month": 12
            },
            "fundingType": "CREDIT",
            "walletType": "APPLE_PAY",
            "lastFour": "1234",
            "walletLastFour": "5678",
            "authorizationCode": "auth_code_123",
            "applicationPreferredName": "MyApp",
            "fingerprint": "fingerprint_abc123",
            "readMethod": "chip"
          }
        }
      ],
      "loyaltyInfo": {
        "hasMembershipPass": true
      }
    }
  ],
  "fulfillmentInfo": {
    "pickupTime": "2007-12-03T09:15:30.000Z",
    "estimatedPickupTime": "2007-12-03T09:15:30.000Z",
    "deliveryTime": "2007-12-03T09:15:30.000Z",
    "tableIdentifier": "R-45"
  },
  "promotionsDetails": [
    {
      "name": "20% off, up to $5",
      "value": 2
    }
  ],
  "preparationTime": {
    "estimatedPreparationTime": "PT30M"
  },
  "cutleryRequest": "CUTLERY_REQUESTED"
}

Response

The order was successfully updated.

storeIdstring required

The identifier of the store.

Example response

{
  "externalIdentifiers": {
    "id": "69f60a06-c335-46d9-b5a1-97f1a211c514",
    "friendlyId": "ABCDE",
    "source": "ubereats",
    "sourceExternalIdentifiers": {
      "id": "69f60a06-c335-46d9-b5a1-97f1a211c514",
      "friendlyId": "ABCDE",
      "source": "ubereats"
    }
  },
  "storeId": "ckdss-store-id"
}

Changes

No recorded changes to this operation across all 1 revision of this API.