Pedidos
2026-09-18 — Promotions — criar, ler, atualizar e excluir uma promoção; aplicar um cupom a um pedido
🆕 Novo
POST /v1/orders/{id}/coupon— Resgata um código de cupom em um pedido e o retorna com os totais recalculados. Somente pedidos criados pela API podem ser alterados aqui (422 order_not_modifiablecaso contrário). Um cupom que existe mas não é elegível para esse pedido — tipo de atendimento, limite de uso atingido, uma vez por cliente, ou somente para novos clientes — responde422 coupon_not_applicable; um cupom já aplicado ao pedido responde422 validation_failed. Para remover um cupom, use o já existenteDELETE /v1/orders/{id}/discounts/{discountId}com o id do desconto que o cupom criou.
Escopos
orders:write— também obrigatório paraPOST /v1/orders/{id}/coupon(escopo existente, sem necessidade de nova concessão para chaves que já escrevem pedidos).
2026-09-16 — Pedidos — pagamentos em pedidos de loja virtual e PDV
✨ Alterado
POST /v1/orders/:id/paymentseDELETE /v1/orders/:id/payments/:paymentIdagora também funcionam em pedidos feitos pelo cliente na loja virtual (INBOUND) ou registrados pelo estabelecimento no PDV (OUTBOUND), não somente em pedidos criados pela API. Pedidos de aplicativos de delivery continuam respondendo422 order_not_modifiable. Todos os demais endpoints de escrita continuam aceitando somente pedidos criados pela API.
2026-09-12 — Pedidos — criar e atualizar pedidos
🆕 Novo
POST /v1/orders— Cria um pedido. Envieservice_typee, opcionalmente,client_id(um cliente existente da sua empresa).table_idsó é aceito para pedidos TABLE;address_idedelivery_pricesomente para pedidos DELIVERY.source,country_code,timezoneecurrencysão sempre obtidos da sua credencial. Por padrão o pedido começa comoINITIATED, um rascunho que o estabelecimento não vê: adicione seus itens, pagamentos e descontos, depois confirme comPATCH /v1/orders/{id}/statusestatus: PENDING(ouPREPARING), o que atribui o número diário e o exibe ao estabelecimento. Enviestatus: PENDINGna criação para pular o rascunho. Rascunhos nunca são retornados porGET /v1/orders: guarde oidda resposta de criação e leia-os comGET /v1/orders/{id}. Requer um headerIdempotency-Key, armazenado como a referência do pedido e que deve ser único por pedido.PATCH /v1/orders/{id}— Edita um pedido criado por você pela API. Envie ao menos um decomment,order_title,delivery_comment,delivery_price,packaging_priceouscheduled_delivery_date;delivery_commentedelivery_pricesó são aceitos em pedidos DELIVERY.commenté anexado ao que o pedido já tem, em vez de substituí-lo;currencyé sempre obtida da sua credencial. Pedidos de outros canais não podem ser editados aqui.
2026-09-04 — Gestão de pedidos — itens, pagamentos, descontos, status e cancelamento
🆕 Novo
PATCH /v1/orders/:id/status— Avança um pedido em seu ciclo de vida.POST /v1/orders/:id/cancel— Cancela um pedido, com um motivo.POST /v1/orders/:id/combos— Adiciona itens a um pedido existente.DELETE /v1/orders/:id/combos/:comboId— Remove um item de um pedido.POST /v1/orders/:id/payments— Registra um pagamento em um pedido.DELETE /v1/orders/:id/payments/:paymentId— Cancela um pagamento.POST /v1/orders/:id/discounts— Aplica um desconto manual.DELETE /v1/orders/:id/discounts/:discountId— Remove um desconto.
Os oito endpoints retornam o pedido em seu novo estado, no mesmo formato de
GET /v1/orders/:id.
Escopos
orders:write— obrigatório para os oito endpoints. As API keys existentes precisam desse escopo concedido antes de chamá-los. Os endpoints de entregador continuam usandologistics:write.
Notas
- Somente pedidos criados pela API podem ser editados.
- Alterar o status é a exceção: funciona para pedidos de qualquer canal. Avançar um pedido que o estabelecimento já está preparando é uma ação operacional, independentemente de quem a realizou.
- Os status só avançam, na ordem
PENDING,PREPARING,READY,DELIVEREDeFINALIZED. Enviar um status anterior ao atual deixa o pedido inalterado e o retorna como está; pular para frente aplica os status intermediários.CANCELLEDnão é aceito aqui — use o endpoint de cancelamento. - Um pedido com pagamentos ativos não pode ser cancelado. Cancele os
pagamentos primeiro com
DELETE /v1/orders/:id/payments/:paymentId. - Remover um item ou um pagamento o cancela: a linha permanece no
pedido com
canceled_atdefinido, para que a alteração permaneça auditável e continue aparecendo nos relatórios do estabelecimento. Remover um desconto o exclui. - Os itens não precisam existir no seu menu. Enviados sem
product_ideles são adicionados como linhas livres; umskuque corresponda a um produto do seu menu vincula a linha a ele automaticamente. - Pode haver vários pagamentos por pedido, um por forma usada pelo cliente. O pedido é marcado como pago quando a soma atinge o total, e valores acima do total são aceitos e reportados como pagamento em excesso.
- Os descontos são manuais, por
AMOUNTouPERCENTAGE, e se acumulam. Uma porcentagem acima de 100 é rejeitada; um valor acima de 100 não é. - A moeda e o fuso horário são obtidos da empresa proprietária da sua API key, então você nunca os envia.
Preços: você envia preços unitários, lê de volta totais da linha
Os campos do item têm os mesmos nomes na requisição e na resposta, mas não significam a mesma coisa. Você envia o custo de uma unidade; o pedido armazena o total da linha inteira:
variant_price = unit price x item quantity
variant_original_price = unit list price x item quantity
per modifier:
price = unit price x modifier quantity x item quantity
quantity = modifier quantity x item quantity
modifiers_price = sum of the modifier prices
combo_price = variant_price + modifiers_price
combo_original_price = variant_original_price + sum of original prices
A quantity de um modificador é por unidade do item. Pedir um
acompanhamento grande em um item com quantity: 2 registra dois
acompanhamentos grandes.
Por exemplo, enviando um item com quantity: 2, variant_price: 25 e
variant_original_price: 30, mais um modificador com price: 4 e outro
com price: 6, o pedido armazena variant_price: 50, os modificadores em
8 e 12, modifiers_price: 20 e combo_price: 70.
variant_original_price e o original_price de um modificador são
opcionais: o padrão é o preço cobrado, então envie-os somente quando quiser
que o pedido mostre o desconto concedido.
2026-08-14 — Logistics API — Provedores de entrega externos
🆕 Novo
PUT /v1/orders/:id/rider— Atribui ou atualiza um entregador (nome, telefone).DELETE /v1/orders/:id/rider— Remove o entregador de um pedido.PATCH /v1/orders/:id/delivery-status— Atualiza o status de entrega. Definedelivered_bycomoAPIautomaticamente.
Escopos
logistics:write— obrigatório para os três novos endpoints.
Notas
- Esses endpoints permitem que provedores de entrega externos (ex.: PickNGo) reportem atribuição de entregador e progresso de entrega em pedidos já existentes.
- Eles NÃO criam pedidos — só operam em pedidos já criados na OlaClick.
delivered_byé definido comoAPIautomaticamente para que os relatórios distingam entregas feitas via provedor.- As API keys existentes precisam do escopo
logistics:writeconcedido antes de chamar esses endpoints.
2026-06-20 — Public API — Lançamento inicial
🆕 Novo
Primeira versão da OlaClick Public API está no ar.
GET /v1/orders— Lista paginada de pedidos com filtrosGET /v1/orders/:id— Um único pedido pelo UUID ou ID públicoGET /v1/orders/by-payment-methods— Pedidos agregados por forma de pagamentoGET /v1/orders/by-tips— Pedidos agregados por gorjetasGET /v1/orders/products-sold— Estatísticas de produtos vendidos