Body of POST /orders.

API
Schema

OrderCreate

Body of POST /orders. Unknown keys are rejected with the list of accepted ones, so a typo fails loudly instead of being ignored. There is NO payment_method_id / shipping_id: the API exposes those ids on no resource, so a client would have nowhere to read them from. The order inherits the payment method and shipping saved on the CUSTOMER — exactly like the dashboard's on-behalf checkout. Prices, promos, surcharges, the frozen IVA and the stock decrement are resolved server-side by the same pipeline the manager checkout uses. The request states WHAT to order; the server decides what it costs.

Ejemplo

json
{
  "customer_id": "8801",
  "items": [
    { "product_id": "REM-001", "option_id": "555", "quantity": 3 },
    { "product_id": "9202", "quantity": 1 }
  ],
  "observaciones": "Entregar por la mañana",
  "internal_notes": "Pedido cargado por el ERP",
  "notify_customer": true,
  "shipping_address": {
    "street_address": "Av. Corrientes 1234",
    "city": "CABA",
    "region": "Buenos Aires",
    "postal_code": "C1043",
    "country": "Argentina"
  }
}

Campo

CampoTipoFlagsNotas
customer_idstring
requerido
Numeric customer id. 404 when it is not a customer of this negocio, 422 when the customer is blocked.
itemsOrderItemInput[]
requerido
At least one row. An empty array is rejected.
shipping_addressAddress
Optional. Defaults to the customer's saved address. Components matching an address the customer already has reuse it instead of adding a copy.
observacionesstring
Customer-facing note, shown on the order.
internal_notesstring
Internal note, never shown to the customer.
notify_customerboolean
true sends the customer the usual order confirmation email. Defaults to false — a machine-placed order stays silent unless you ask for it.