Criar pedido
Cria um pedido em nome de um cliente, com itens, endereços e forma de pagamento, como um ERP, um PDV ou o atendimento fazem.
Use esta operação quando o pedido não nasce no checkout da loja: um representante digitou a venda por telefone, o ERP gera o pedido a partir de uma proposta, ou um sistema externo precisa registrar uma compra. O cliente final continua comprando pelo checkout da loja; essa rota é para integrações e para a equipe da loja.
Ao criar, a plataforma recalcula os preços a partir do catálogo, baixa o estoque, grava o histórico de status e dispara o evento de pedido criado (e-mails e demais reações configuradas na loja). Se os itens são de sellers diferentes, o pedido é dividido em um pedido pai e um sub-pedido por seller (veja Sub-pedidos).
/api/v1/admin/ordersAdminCria um pedido
Exige o privilégio manage_orders. O corpo usa UUIDs e centavos. Se customer_id for omitido, o pedido é de visitante e customer_email passa a ser obrigatório.
Corpo da requisição
customer_iduuidcustomer_emailstringcustomer_id.customer_namestringitemsarrayobrigatórioItens. Pelo menos um.
product_iduuidobrigatóriovariation_iduuidquantitynumberobrigatóriooptionsobjectnotestringbilling_addressobjectEndereço de cobrança. Se omitido, a plataforma usa o endereço de entrega também como cobrança.
first_namestringobrigatóriolast_namestringaddress_line1stringobrigatórioaddress_line2stringdistrictstringcitystringobrigatóriostatestringobrigatórioSP).postal_codestringobrigatóriocountrystringobrigatórioBR).phonestringcpfstringshipping_addressobjectobrigatóriobilling_address. Obrigatório para pedido com produto físico: é dele que o frete é calculado.payment_methodstringobrigatóriopix, credit_card, boleto, pagamento-na-entrega...).shipping_method_iduuidshipping_methodstringshipping_method_id.shipping_selectionsarrayEscolha de frete por seller, para pedidos com mais de um seller.
vendor_iduuidshipping_method_iduuidservice_codestringshipping_totalintegerdiscount_totalintegertax_totalintegercoupon_codestringcustomer_notesstringadmin_notesstringidempotency_keystringinstallmentsintegerinvoiced_plan_idstringExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/orders" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"customer_email": "maria.souza@example.com",
"customer_name": "Maria Souza",
"payment_method": "pagamento-na-entrega",
"shipping_method_id": "50000000-0000-0000-0000-000000000001",
"idempotency_key": "erp-pedido-10492",
"items": [
{ "product_id": "d8a6c5e7-8e44-4055-a0e2-49014f5d17f6", "quantity": 1 },
{ "product_id": "c3f92551-9dda-4fc7-b518-353d1c4e4035", "quantity": 2 }
],
"billing_address": {
"first_name": "Maria", "last_name": "Souza", "address_line1": "Avenida Paulista, 1000",
"city": "São Paulo", "state": "SP", "postal_code": "01310-100", "country": "BR",
"phone": "11999990000"
},
"shipping_address": {
"first_name": "Maria", "last_name": "Souza", "address_line1": "Avenida Paulista, 1000",
"city": "São Paulo", "state": "SP", "postal_code": "01310-100", "country": "BR",
"phone": "11999990000"
},
"admin_notes": "Venda por telefone"
}'Resposta
{
"order": {
"id": "e148b6aa-d495-4b89-92ab-f38b5979a43f",
"order_number": "PEDIDO-20261011-0001",
"customer_id": "",
"subtotal": 190895,
"shipping_total": 2000,
"tax_total": 0,
"discount_total": 0,
"total": 192895,
"currency": "BRL",
"payment_method": "pagamento-na-entrega",
"payment_method_name": "Pagamento na Entrega (COD)",
"payment_status": "pending",
"shipping_method": "Entrega Padrão",
"shipping_method_id": "50000000-0000-0000-0000-000000000001",
"customer_email": "maria.souza@example.com",
"customer_name": "Maria Souza",
"is_guest": true,
"guest_email": "maria.souza@example.com",
"created_at": "2026-10-11T20:14:40.706632Z",
"status": "O",
"status_text": "pending"
},
"items": [
{
"id": "04b62cb6-7421-41ed-9e27-4eb3c11343c4",
"product_id": "d8a6c5e7-8e44-4055-a0e2-49014f5d17f6",
"product_name": "Notebook Vintage Vermelho",
"unit_price": 167895,
"quantity": 1,
"total": 167895
},
{
"id": "bc30e5de-b012-4bb8-a46c-628a932e6fd4",
"product_id": "c3f92551-9dda-4fc7-b518-353d1c4e4035",
"product_name": "Notebook Slim Rosa",
"unit_price": 11500,
"quantity": 2,
"total": 23000
}
],
"addresses": [
{ "address_type": "billing", "first_name": "Maria", "city": "São Paulo", "postal_code": "01310-100" },
{ "address_type": "shipping", "first_name": "Maria", "city": "São Paulo", "postal_code": "01310-100" }
],
"status_history": [
{ "old_status": "pending", "new_status": "pending", "notes": "order_created", "reason": "order_created" }
],
"sub_orders": [
{
"id": "2b4bd680-b717-4295-a2be-8b5c6771a4d0",
"order_number": "PEDIDO-20261011-0001-V1",
"parent_id": "e148b6aa-d495-4b89-92ab-f38b5979a43f",
"subtotal": 167895,
"shipping_total": 1759,
"total": 169654
},
{
"id": "0932405c-a8c1-49b3-a7db-61aab4c4d666",
"order_number": "PEDIDO-20261011-0001-V2",
"parent_id": "e148b6aa-d495-4b89-92ab-f38b5979a43f",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"subtotal": 23000,
"shipping_total": 241,
"total": 23241
}
]
}Campos da resposta
orderobjectitemsarrayaddressesarraystatus_historyarrayorder_created.sub_ordersarrayErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Campo obrigatório faltando | {"error":"customer_id or customer_email is required"}, {"error":"at least one item is required"}, {"error":"payment_method is required"} |
| 401 | Sem credenciais ou token expirado | {"error":"invalid or expired token"} |
| 403 | Sem o privilégio manage_orders | {"error":"insufficient privileges","required":"manage_orders"} |
| 422 | Forma de pagamento bloqueada para este cliente, ou recusa por regra da loja | {"error":"Esta forma de pagamento não está disponível para a sua conta. Escolha outra forma de pagamento.","detail":"payment_method_not_allowed"} |
| 500 | Qualquer outra recusa de negócio: produto inexistente ou inativo, quantidade inválida, estoque insuficiente, forma de envio ou CEP ausentes, forma de pagamento desconhecida | {"error":"Não foi possível finalizar o pedido. Tente novamente ou entre em contato com o suporte."} |