---
title: "Submit Order"
method: POST
path: "/orders/submit"
tags: ["Shopping"]
---

# Submit Order

`POST /orders/submit`

## Request

- Base URL: `https://vesremont.com/api/v1`
- URL: `https://vesremont.com/api/v1/orders/submit`
- Auth: OAuth 2 (authorization code, authorization URL `https://vesremont.com/oauth/authorize`, token URL `https://vesremont.com/oauth/token`, scopes: `order:submit`)

Submit only an order already approved by the buyer in the confirmation page. Requires the returned token and a stable unique idempotency_key; retry the same key after uncertainty. Never bypass confirmation. OAuth scopes: order:submit. Changes buyer or order state. Requires a JSON object body; use {} for an operation without body fields.

## Headers

- `Idempotency-Key` string, required: Unique key for ONE approved submission. Keep this key and the same body for retries after uncertainty; never generate a new key to retry that order. REST sends it as Idempotency-Key.

## Request body

- object
  - `confirmation_token` string, required: Token returned by prepare_order for the exact summary the buyer personally approved on the confirmation page. It cannot replace that approval.

## Response `201`

Successful operation.

- object
  - `order_id` integer, required
  - `submission_status` 'submitted', required
  - `status` string, required: Actual Bitrix status code; submitted is not store confirmation.
  - `cancelled` boolean, required
  - `payment_status` 'paid' | 'partially_paid' | 'unpaid', required
  - `created_at` string, date-time, nullable, required
  - `updated_at` string, date-time, nullable, required
  - `status_history` unknown, required
  - `summary` object, required
    - `items` object[], required
      - `product_id` integer, required
      - `name` string, required
      - `quantity` number, required
      - `unit_price` number, required
      - `line_total` number, required
    - `recorded_order_total` number, required
    - `currency` string, required
    - `delivery_finalized` unknown, required
    - `store_confirmation` unknown, required

## Other responses

- `202`: Submission result is still being reconciled. Retry only with the original key and body.
- `400`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `401`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `403`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `404`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `405`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `406`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `409`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `413`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `414`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `415`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `422`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `429`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `431`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `500`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.
- `503`: Structured failure. The code is stable; do not retry uncertain order writes with a new key.

---

[API](https://skmtc.dev/vesremont/apis/vesremont-public-api.md) · [All operations](https://skmtc.dev/vesremont/apis/vesremont-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vesremont/apis/vesremont-public-api/revisions/3bfec100b67d?raw)
