Descrição
Este webhook é acionado automaticamente sempre que a situação de um pedido for alterada no Olist ERP.Quando é Acionado
- Mudança de situação do pedido (aberto → aprovado → faturado, etc.)
- Aprovação de pedido
- Faturamento de pedido
- Cancelamento de pedido
- Separação iniciada/concluída
- Pedido enviado
- Pedido entregue
Estrutura da Notificação
Campos da Notificação
| Campo | Tipo | Descrição |
|---|---|---|
| evento | string | Sempre “atualizacao_situacao_pedido” |
| data_hora | string | Data e hora do evento (dd/mm/yyyy hh:mm:ss) |
| pedidos[] | array | Lista de pedidos com situação alterada |
| pedidos[].id | int | ID do pedido no Olist ERP |
| pedidos[].numero | string | Número do pedido |
| pedidos[].numero_ecommerce | string | Número do pedido no e-commerce de origem |
| pedidos[].situacao_anterior | string | Situação anterior do pedido |
| pedidos[].situacao_atual | string | Situação atual do pedido |
| pedidos[].data_pedido | string | Data do pedido (dd/mm/yyyy) |
| pedidos[].data_aprovacao | string | Data/hora da aprovação |
| pedidos[].data_faturamento | string | Data/hora do faturamento |
| pedidos[].cliente.id | int | ID do cliente |
| pedidos[].cliente.nome | string | Nome do cliente |
| pedidos[].cliente.cpf_cnpj | string | CPF ou CNPJ do cliente |
| pedidos[].cliente.email | string | E-mail do cliente |
| pedidos[].cliente.telefone | string | Telefone do cliente |
| pedidos[].valor_total | decimal | Valor total do pedido |
| pedidos[].valor_desconto | decimal | Valor de desconto aplicado |
| pedidos[].valor_frete | decimal | Valor do frete |
| pedidos[].forma_pagamento | string | Forma de pagamento |
| pedidos[].parcelas | int | Número de parcelas |
| pedidos[].nota_fiscal | object | Dados da NF (se faturado) |
| pedidos[].rastreamento | object | Dados de rastreamento (se enviado) |
| pedidos[].observacoes | string | Observações da alteração |
Situações Possíveis
| Situação | Descrição | Fluxo Típico |
|---|---|---|
| aberto | Pedido criado | Início |
| aprovado | Pagamento aprovado | aberto → aprovado |
| preparando_envio | Em separação | aprovado → preparando_envio |
| faturado | Nota fiscal emitida | preparando_envio → faturado |
| pronto_envio | Aguardando expedição | faturado → pronto_envio |
| enviado | Enviado ao cliente | pronto_envio → enviado |
| entregue | Entrega confirmada | enviado → entregue |
| cancelado | Pedido cancelado | qualquer → cancelado |
| devolvido | Produto devolvido | entregue → devolvido |
Exemplo de Implementação
PHP
Python
Node.js
Configuração
Para ativar este webhook:- Acesse Configurações > Integrações > Webhooks
- Clique em Novo Webhook
- Selecione o evento Atualização de Situação de Pedido
- Informe a URL do seu endpoint
- Opcionalmente, selecione situações específicas para monitorar
- Salve as configurações
Casos de Uso
- Notificações ao cliente: E-mail/SMS automático em cada etapa
- Dashboard em tempo real: Atualize painéis de acompanhamento
- Integração com marketplaces: Sincronize status em múltiplos canais
- Automação logística: Acione processos de separação e envio
- CRM automático: Atualize jornada do cliente
- BI e Analytics: Alimente relatórios em tempo real
- Pesquisa de satisfação: Envie automaticamente após entrega
Boas Práticas
- Notificações contextuais: Personalize mensagens para cada situação
- Múltiplos canais: Use e-mail, SMS e push notification
- Templates profissionais: Use templates bem desenhados
- Tracking de eventos: Registre todas as mudanças para analytics
- Idempotência: Evite processar a mesma mudança múltiplas vezes
- Tratamento de erros: Implemente retry para falhas temporárias
Observações
- Algumas mudanças de situação podem ser revertidas (ex: cancelamento)
- Pedidos podem pular situações intermediárias em alguns fluxos
- A situação “cancelado” pode ocorrer a partir de qualquer estado
- Dados de nota_fiscal e rastreamento são condicionais
- Múltiplos pedidos podem ser notificados em uma única requisição
- O webhook é enviado apenas para mudanças efetivas de situação
