Zé Seller Public API (1.0)

Download OpenAPI specification:Download

Está API tem como objetivo, disponibilizar as informações dos nossos parceiros, tais como pedidos, catalogo de produtos entre outros

Authentication

API Authentication

Com este método, será possível realizar a autenticação na API utilizando protocolo OAuth2. Com isso retornará um access_token que irá dar permissão de acesso a API.

query Parameters
grant_type
required
string
Example: grant_type=client_credentials

Deverá sempre ser utilizado client_credentials

scope
required
string
Example: scope=orders/read

Atualmente temos somente o orders/read como escopo possível.

Request Body schema: application/x-www-form-urlencoded
client_id
required
string

O id do cliente.

client_secret
required
string

A secret do cliente.

Events

Sobre Events

Os endpoints do grupo Events da Seller Public API expõem o fluxo de sincronização assíncrona de mudanças de status de pedidos no Zé Delivery por meio de consultas periódicas (polling) e de confirmação de consumo (ack) dos eventos já processados. É voltado a parceiros que precisam acompanhar o ciclo dos pedidos sem depender de webhook.

Quando usar os endpoints Events ?

  • Quando for necessário consumir valores de status e eventos retornados pela API (CREATED, CONFIRMED, EDITED, READY_FOR_PICKUP, DISPATCHED, CANCELLED e CONCLUDED).
  • Quando o modelo de integração do parceiro for polling em vez de webhook.

Eventos de pedido

Os eventos de pedido representam mudanças relevantes no ciclo de vida do pedido e são retornados em eventType. Para obter os detalhes e o estado atual do pedido, consulte a orderURL recebida no evento ou GET /orders/{orderNumber}.

Valor retornado pela API Descrição Validade por tipo de pedido
CREATED Pedido realizado e inserido na fila de aceite do PDV; também pode ter sido transferido ao PDV atual após rejeição de outro PDV. DELIVERY, TURBO, TAKEOUT
CONFIRMED Confirmação de que o PDV aceitou o pedido. DELIVERY, TURBO, TAKEOUT
EDITED Evento emitido quando uma alteração realizada diretamente pelo PDV é concluída com sucesso. EDITED não representa um status persistente nem uma mudança de etapa do pedido. DELIVERY, TURBO, TAKEOUT
READY_FOR_PICKUP O pedido já foi coletado pela pessoa entregadora. Atualmente, o Zé Delivery não possui um status que represente “pronto para coleta” DELIVERY, TURBO
DISPATCHED A pessoa entregadora iniciou a rota para o endereço de entrega. DELIVERY, TURBO
CANCELLED Pedido cancelado por cliente, pessoa entregadora, PDV, time interno do Zé Delivery ou expiração (conforme regras operacionais) DELIVERY, TURBO, TAKEOUT
CONCLUDED Pedido entregue com sucesso. DELIVERY, TURBO, TAKEOUT

Como os endpoints de Events se relacionam

O fluxo típico é consultar eventos pendentes, processar cada evento na sua aplicação e confirmar o consumo para que esses eventos não voltem nas próximas consultas.

flowchart LR
  P["GET /events:polling — lista eventos pendentes"] --> B["Sua aplicação processa cada evento"]
  B --> A["POST /events/acknowledgment - Sua aplicação confirma que processou o evento"]
  A --> P

Events polling

Objetivo

Expor valores de status e eventos de pedidos (CREATED, CONFIRMED, EDITED, READY_FOR_PICKUP, DISPATCHED, CANCELLED e CONCLUDED) via polling.

Quando usar

Para sincronização assíncrona de eventos: consumir mudanças de status de pedidos. Quando o parceiro não usa webhook e prefere polling.

Quando NÃO usar

Não usar para consultas ad-hoc de detalhes do pedido (chamar /orders/{orderNumber} para detalhes). Não usar sem informar x-polling-merchants header com os merchantIds.

Importante

Requer header x-polling-merchants (lista de merchant ids) e Authorization. Pode filtrar por eventType. Schema de resposta: array de EventPollingOutput.

eventType identifica a alteração ocorrida. Para obter o estado e os detalhes atuais do pedido, consulte a orderURL recebida no evento ou GET /orders/{orderNumber}. EDITED é um evento emitido quando uma alteração realizada diretamente pelo PDV é concluída com sucesso. EDITED não representa um status persistente nem uma mudança de etapa do pedido.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /events:polling
  API-->>Parceiro: 200 — eventos ainda não confirmados
query Parameters
eventType
Array of strings (OrderStatusEnum)
Items Enum: "CREATED" "CONFIRMED" "EDITED" "READY_FOR_PICKUP" "DISPATCHED" "CANCELLED" "CONCLUDED"
Example: eventType=CREATED

Status dos eventos do pedido

header Parameters
x-polling-merchants
required
array
Example: 123,1234

Os ids dos estabelecimentos requirido.

Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
[]

Events acknowledgment

Objetivo

Acknowledge — notificar a API que eventos foram consumidos para que não sejam retornados novamente no polling.

Quando usar

Após consumir com sucesso eventos obtidos por GET /events:polling, envie ack com lista de EventAcknowledgementInput.

Quando NÃO usar

Não usar para sinalizar falha de processamento (ack indica consumo bem-sucedido).

Importante

Requer Authorization. Recebe array de objetos com id, orderId, eventType. Retorna 202 informando que vai ser processada a requisição.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Note over Parceiro,API: Após processar eventos obtidos em GET /events:polling
  Parceiro->>API: POST /events/acknowledgment
  API-->>Parceiro: 202 — requisição aceita (eventos não voltam no próximo polling)
header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
Array ()
id
string

O número do evento na plataforma

orderId
number

O número do pedido na plataforma

eventType
string (OrderStatusEnum)
Enum: "CREATED" "CONFIRMED" "EDITED" "READY_FOR_PICKUP" "DISPATCHED" "CANCELLED" "CONCLUDED"

Valores de status e eventos retornados pela API: CREATED indica pedido realizado e na fila de aceite do PDV, inclusive quando transferido de outro PDV; CONFIRMED, aceite pelo PDV; EDITED é um evento emitido quando uma alteração realizada diretamente pelo PDV é concluída com sucesso. EDITED não representa um status persistente nem uma mudança de etapa do pedido; READY_FOR_PICKUP, o pedido já foi coletado pela pessoa entregadora. Atualmente, o Zé Delivery não possui um status que represente pronto para coleta; DISPATCHED, pessoa entregadora em rota; CANCELLED, pedido cancelado por cliente, pessoa entregadora, PDV, time interno do Zé Delivery ou expiração (conforme regras operacionais); e CONCLUDED, entrega concluída. CREATED, CONFIRMED, EDITED, CANCELLED e CONCLUDED são válidos para DELIVERY, TURBO e TAKEOUT; READY_FOR_PICKUP e DISPATCHED, para DELIVERY e TURBO.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Webhook — POST recebido na sua URL

Esta operação não existe na Zé Seller Public API como rota a ser chamada por você. Ela documenta a requisição HTTP que a plataforma envia para a URL cadastrada em PATCH /webhooks quando a inscrição inclui ORDER_EVENTS e há um evento a entregar.

Método e corpo: POST com Content-Type: application/json e corpo conforme o schema ao lado.

Resposta esperada: seu endpoint deve responder com código HTTP 2xx para indicar recebimento processado; outros códigos podem implicar políticas de retentativa conforme a plataforma (404 não há retentativa e para os demais erros há 3 tentativas).

Nota: o método publicado neste host (POST /callbacks/order-events-webhook) existe apenas para fins de documentação; não é o caminho que recebe o webhook — o caminho é o da sua própria URL configurada.

Nota: use os headers X-App-Signature e X-App-Timestamp para validar a requisição.


sequenceDiagram
  participant SPA as Zé Seller Public API
  participant API as Seu Sistema
  SPA->>API: POST https://seu.webhook.com
  Note right of API: Processa a requisição
  API-->>SPA: 200 Evento processado com sucesso
header Parameters
X-App-Signature
required
string
Example: sha256=a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456

é a assinatura de integridade da requisição: calculada com SHA-256 sobre o timestamp e o payload bruto do JSON recebidos no corpo da requisição, usando como segredo o valor hash obtido na criação do webhook via PATCH /webhooks. O cabeçalho costuma seguir o padrão sha256=<digest_hexadecimal>.

X-App-Timestamp
required
number
Example: 1714857600

Timestamp da requisição em segundos (Unix timestamp). Utilize para validar o X-App-Signature.

Content-Type
required
string
Value: "application/json"

Tipo de mídia do corpo.

Request Body schema: application/json
clientId
required
string <uuid>

Identificador do cliente OAuth na plataforma.

eventType
required
string (WebhookSubscriptionType)
Value: "ORDER_EVENTS"

Tipo de inscrição do webhook.

correlationId
required
string

Identificador de correlação da entrega (rastreabilidade entre tentativas e logs).

object

Carga útil específica do tipo de notificação. Para ORDER_EVENTS, contém o evento de pedido.

Responses

Request samples

Content type
application/json
{
  • "clientId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  • "eventType": "ORDER_EVENTS",
  • "correlationId": "9f2e4c1a-8b7d-4e6f-9a0b-1c2d3e4f5a6b",
  • "data": {
    }
}

Logistics

Sobre Logistics

Os endpoints do grupo Logistics da Seller Public API concentram o ciclo de vida operacional da entrega de um pedido no Zé Delivery: consulta dos detalhes de entrega, rastreamento passo a passo do entregador (coleta no PDV, início de rota, chegada ao destino e finalização), validação do código de entrega e cancelamento pelo entregador quando a entrega não puder ser concluída. Todas as rotas exigem autenticação e referenciam o pedido pelo identificador na plataforma.

Quando usar os endpoints Logistics ?

  • Quando for necessário consultar dados operacionais da entrega de um pedido, incluindo entregador, pickupCode e endereço de destino.
  • Quando o sistema de logística precisar reportar cada etapa da jornada do entregador: coleta no PDV, início de rota, chegada ao endereço do cliente e conclusão da entrega.
  • Quando for necessário validar o código de entrega (deliveryCode) apresentado no momento da retirada ou entrega.
  • Quando o entregador não conseguir completar a entrega e precisar solicitar o cancelamento com o motivo apropriado.

Quando não usar os endpoints Logistics ?

  • Para aceitar, rejeitar ou cancelar pedidos administrativamente — use o grupo Orders (/orders/{orderNumber}/confirm, /requestCancellation, /cancel).
  • Para sincronizar eventos de status de pedido ou substituir polling de fila — use o grupo Events.
  • Para consultar ou alterar catálogo, preços ou disponibilidade de produtos — use Products e Merchants.
  • Para obter ou renovar token — use Authentication (client_credentials).

Como os endpoints de Logistics se relacionam

O fluxo típico começa com a consulta dos detalhes de entrega, que fornece o pickupCode necessário para a coleta no PDV. Em seguida, o entregador coleta o pedido, inicia a rota, sinaliza chegada ao destino e valida o código de entrega. Por fim, finaliza a entrega com sucesso ou cancela por motivo operacional.

flowchart TD
  G["GET /logistics/delivery/{orderNumber} — detalhes da entrega"] --> P["POST /logistics/orderPicked/{orderNumber} — pedido coletado no PDV"]
  P --> SR["POST /logistics/startRoute/{orderNumber} — início de rota"]
  SR --> A["POST /logistics/arrived/{orderNumber} — chegada ao destino"]
  A --> VC["POST /logistics/validateCode/{orderNumber} — validar deliveryCode"]
  VC --> D{"Entrega concluída?"}
  D -->|Sim| F["POST /logistics/finishDelivery/{orderNumber} — finalizar entrega"]
  D -->|Não, problema operacional| C["POST /logistics/cancel/{orderNumber} — cancelamento pelo entregador"]

Delivery details

Objetivo

Recuperar detalhes de entrega de um pedido (nome do cliente, entregador, preços, pickupCode, endereço).

Quando usar

Utilize este endpoint somente quando:

  • For necessário realizar consultas operacionais sobre rota e dados do entregador para execução da entrega.
  • For preciso verificar o pickupCode para coleta do pedido no PDV.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Alterar o status de entrega do pedido (use os endpoints POST do grupo Logistics).
  • Obter dados completos do pedido além das informações de entrega (use GET /orders/{orderNumber}).

Importante

Requer header Authorization: Bearer <token>. Schema de resposta: DeliveryDetailsOutput.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /logistics/delivery/{orderNumber}
  API-->>Parceiro: 200 com detalhes da entrega (entregador, pickupCode, endereço)
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "orderDisplayId": "123457890",
  • "customerName": "Maria",
  • "deliveryMan": {
    },
  • "merchant": {
    },
  • "deliveryPrice": {
    }
}

Order Picked

Objetivo

Informar que o entregador pegou o pedido no PDV (marcar pickup).

Quando usar

Utilize este endpoint somente quando:

  • For necessário confirmar que o entregador recebeu fisicamente o pedido no ponto de venda.
  • O body obrigatório com o email do entregador estiver disponível.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Indicar chegada ao endereço do cliente ou entrega final — use /logistics/arrived/{orderNumber} ou /logistics/finishDelivery/{orderNumber}.
  • Registrar outros eventos da jornada do entregador antes da coleta.

Importante

Requer header Authorization: Bearer <token>. Retorna 202 quando aceito para processamento. Schema do body: PickedOrderInput.

sequenceDiagram
  participant Entregador as Seu sistema (entregador)
  participant API as Zé Seller Public API
  Entregador->>API: POST /logistics/orderPicked/{orderNumber}
  Note right of API: Body: { email }
  API-->>Entregador: 202 Aceito para processamento
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
email
required
string

E-mail do entregador

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Start Route Order

Objetivo

Informar início de rota/coleta pelo entregador (rota iniciada).

Quando usar

Utilize este endpoint somente quando:

  • O entregador iniciar a rota de entrega após coletar o pedido no PDV.
  • O body com o email do entregador estiver disponível.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Sinalizar chegada ao endereço do cliente — use /logistics/arrived/{orderNumber}.
  • Confirmar a entrega final — use /logistics/finishDelivery/{orderNumber}.

Importante

Requer header Authorization: Bearer <token>. Retorna 202 quando aceito para processamento. Schema do body: startRouteOrderInput.

sequenceDiagram
  participant Entregador as Seu sistema (entregador)
  participant API as Zé Seller Public API
  Entregador->>API: POST /logistics/startRoute/{orderNumber}
  Note right of API: Body: { email }
  API-->>Entregador: 202 Aceito para processamento
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
email
required
string

E-mail do entregador

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Arrived Order

Objetivo

Informar que o pedido chegou ao destino (entregador chegou no endereço do cliente).

Quando usar

Utilize este endpoint somente quando:

  • For necessário sinalizar a chegada do entregador ao endereço do cliente, antes da tentativa de entrega ou entrega final.
  • O body com o email do entregador estiver disponível.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Confirmar que a entrega foi concluída — use /logistics/finishDelivery/{orderNumber}.
  • Registrar outros eventos anteriores da jornada (coleta, início de rota).

Importante

Requer header Authorization: Bearer <token>. Body com email do entregador é obrigatório. Retorna 202 quando aceito para processamento. Schema do body: ArrivedOrderInput.

sequenceDiagram
  participant Entregador as Seu sistema (entregador)
  participant API as Zé Seller Public API
  Entregador->>API: POST /logistics/arrived/{orderNumber}
  Note right of API: Body: { email }
  API-->>Entregador: 202 Aceito para processamento
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
email
required
string

E-mail do entregador

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Validate Code

Objetivo

Validar o código de entrega (deliveryCode) informado no momento da entrega ou retirada do pedido.

Quando usar

Utilize este endpoint somente quando:

  • For necessário verificar se o deliveryCode informado pelo entregador ou cliente é válido para o pedido em questão.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Autorização de pagamento ou verificação de identidade além da validação do código de entrega.
  • Confirmar a conclusão da entrega — use /logistics/finishDelivery/{orderNumber} após validar o código.

Importante

Requer header Authorization: Bearer <token>. Body obrigatório com deliveryCode. Retorna 200 em caso de código válido. Schema do body: ValidateCodeInput.

sequenceDiagram
  participant Entregador as Seu sistema (entregador)
  participant API as Zé Seller Public API
  Entregador->>API: POST /logistics/validateCode/{orderNumber}
  Note right of API: Body: { deliveryCode }
  API-->>Entregador: 200 Código validado com sucesso
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
deliveryCode
required
string

O código de entrega do pedido

Responses

Request samples

Content type
application/json
{
  • "deliveryCode": "0406"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Finish Route

Objetivo

Marcar o pedido como entregue (finalizar rota e status do pedido).

Quando usar

Utilize este endpoint somente quando:

  • A entrega foi concluída com sucesso pelo entregador.
  • O body com o email do entregador estiver disponível; lat/long são opcionais para registro de geolocalização.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Cancelar ou reverter o status de entrega — use /logistics/cancel/{orderNumber} para cancelamentos pelo entregador.
  • Sinalizar etapas intermediárias (coleta, rota, chegada) — use os endpoints de evento correspondentes antes de finalizar.

Importante

Requer header Authorization: Bearer <token>. Retorna 202 quando aceito para processamento. Schema do body: OrderDeliveredInput.

sequenceDiagram
  participant Entregador as Seu sistema (entregador)
  participant API as Zé Seller Public API
  Entregador->>API: POST /logistics/finishDelivery/{orderNumber}
  Note right of API: Body: { email, lat?, long? }
  API-->>Entregador: 202 Pedido marcado como entregue
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
email
required
string

E-mail do entregador

lat
number

Latitude da posição do entregador

long
number

Longitude da posição do entregador

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "lat": 0,
  • "long": 0
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Delivery Order Cancel

Objetivo

Permitir que o entregador solicite o cancelamento do pedido por motivos operacionais (ex.: NOT_FOUND, RISK_AREA).

Quando usar

Utilize este endpoint somente quando:

  • O entregador não conseguir completar a entrega por motivos documentados no enum de razões disponível.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Cancelamentos administrativos que não pertençam ao fluxo operacional da pessoa entregadora.
  • Rejeição de pedido antes da confirmação pelo estabelecimento — use /orders/{orderNumber}/requestCancellation.

Importante

Requer header Authorization: Bearer <token>. Body obrigatório com email do entregador e reason (enum de motivos, ex.: NOT_FOUND, RISK_AREA).

sequenceDiagram
  participant Entregador as Seu sistema (entregador)
  participant API as Zé Seller Public API
  Entregador->>API: POST /logistics/cancel/{orderNumber}
  Note right of API: Body: { email, reason }
  API-->>Entregador: 202 Cancelamento aceito para processamento
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
email
required
string

E-mail do entregador

reason
required
string
Enum: "SYSTEMIC_ISSUES" "RISK_AREA" "NOT_FOUND" "PAYMENT_ISSUE" "INCORRECT" "OTHERS"

Os códigos de razão de cancelamento, SYSTEMIC_ISSUES para problemas sistêmicos, RISK_AREA para áreas de risco, NOT_FOUND para destinatário não encontrado, PAYMENT_ISSUE para problemas no pagamento, INCORRECT para pedidos incorretos e OTHERS para motivos não mapeados.

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "reason": "RISK_AREA"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Merchants

Sobre Merchants

Os endpoints do grupo Merchants da Seller Public API tratam do estabelecimento (PDV / seller) no Zé Delivery: consulta de informações operacionais e cadastrais do merchant e abertura e fechamento da loja (disponibilidade operacional do ponto). Complementam o grupo Products, que cobre catálogo e disponibilidade de itens; aqui o foco é a operação do PDV como estabelecimento, não a gestão SKU a SKU.

Quando usar os endpoints Merchants ?

  • Quando precisar do status e metadados do estabelecimento (disponibilidade, informações básicas, indicadores resumo como portfólio ideal, conforme o contrato da resposta).
  • Quando for necessário abrir ou fechar o PDV na plataforma, com motivo quando o fechamento exigir justificativa.

Quando não usar os endpoints Merchants ?

  • Para alterar disponibilidade de produtos ou SKUs específicos — use os endpoints do grupo Products (por exemplo disponibilidade de item).
  • Para detalhes de pedidos ou ciclo de pedido — use Orders e, para acompanhamento de eventos, Events.
  • Para histórico de pedidos finalizados — use Orders.
  • Para KPIs e relatórios financeiros — use Reports.

Como os endpoints de Merchants se relacionam

As rotas são independentes: você pode consultar dados do merchant ou alterar disponibilidade da loja conforme a necessidade do seu fluxo, sem ordem fixa obrigatória entre elas.

flowchart TD
  G["GET /merchants/{merchantId} — informações do estabelecimento"]
  A["POST /merchants/{merchantId}/availability — abrir ou fechar a loja"]

Make merchant availability

Objetivo

Abrir ou fechar um estabelecimento (operational availability) no Zé.

Quando usar

Para operação de abertura (operation: AVAILABLE) ou fechamento (operation: CLOSED) do PDV com razão obrigatória quando CLOSED.

Quando NÃO usar

Não usar para alterar disponibilidade de produtos individuais (use products/availability).

Importante

Body com operation enum (AVAILABLE | CLOSED); reasons obrigatório quando CLOSED. Requer Authorization. Retornos: 200/422 conforme validação.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: POST /merchants/{merchantId}/availability
  API-->>Parceiro: 200 ou 422 conforme validação
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
operation
required
string
Enum: "CLOSED" "AVAILABLE"

Closed para fechar estabelecimento, e avaiable para abrir

reasons
string

Razao pela qual esta realizando operaçao. Campo obrigatorio quando for operação closed

Responses

Request samples

Content type
application/json
{
  • "operation": "AVAILABLE",
  • "reasons": "INTERNET"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Get merchant information

Objetivo

Recuperar informações do estabelecimento (status, availability, basicInfo, idealPortfolio, etc).

Quando usar

Quando precisar do status operacional do PDV e metadados úteis para operação/decisões.

Quando NÃO usar

Não usar como substituto de integrações profundas de catálogo/WMS; dados são informativos.

Importante

Requer Authorization. Schema de resposta: MerchantInformationResponse. Campos como idealPortfolio fornecem métricas (totalProducts, totalActiveProducts).

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /merchants/{merchantId}
  API-->>Parceiro: 200 com dados do estabelecimento
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "status": "AVAILABLE",
  • "basicInfo": {
    }
}

Orders

Sobre Orders

Os endpoints do grupo Orders da Seller Public API concentram o ciclo de vida operacional de um pedido no Zé Delivery: consulta dos detalhes a partir do número do pedido na plataforma, confirmação de aceite pelo estabelecimento ou parceiro e solicitação de cancelamento ou rejeição com código de motivo. Quando habilitados para a sua integração, entram ainda a edição e a restauração de itens após a confirmação. Todas as rotas exigem autenticação e referenciam o pedido pelo identificador na plataforma.

Quando usar os endpoints Orders ?

  • Quando for necessário consultar estado e dados completos de um pedido para o qual você já possui o número válido na plataforma.
  • Quando o estabelecimento precisar aceitar o pedido ou solicitar cancelamento ou rejeição com código adequado ao status e às regras de negócio.
  • Quando, após a confirmação, for preciso ajustar itens (remoção ou substituição) ou restaurar a composição anterior do pedido, conforme disponibilidade da rota para o seu caso.

Quando não usar os endpoints Orders ?

  • Para sincronizar mudanças de status ou evitar consultas repetidas em massa como se fosse fila de trabalho — use o grupo Events (polling e confirmação de consumo dos eventos).
  • Para catálogo, preço ou disponibilidade de produtos — use Products e Merchants quando aplicável.
  • Para obter ou renovar token — use Authentication (client_credentials).

Como os endpoints de Orders se relacionam

O fluxo típico é consultar o pedido, confirmar ou solicitar cancelamento. Depois da confirmação, quando aplicável, seguem passos opcionais de atualização de itens e restauração.

flowchart TD
  G["GET /orders/{orderNumber} — detalhes do pedido"] --> D{"Decisão do parceiro"}
  D -->|Aceitar| C["POST /orders/{orderNumber}/confirm — aceite do pedido"]
  D -->|Rejeitar ou solicitar cancelamento| R["POST /orders/{orderNumber}/requestCancellation — solicitação com motivo"]
  C --> I{"Ajustar itens?"}
  I -->|Sim| U["PUT /orders/{orderNumber}/items — atualização de itens"]
  U --> Z{"Desfazer edição?"}
  Z -->|Sim| S["POST /orders/{orderNumber}/restore — restaurar composição"]
  I -->|Não| N["Seguir operação / logística"]

Detalhes do pedido

Objetivo

Recuperar os detalhes de um pedido a partir do seu número na plataforma Zé Delivery.

Quando usar

Utilize este endpoint somente quando:

  • For necessário consultar o estado e dados completos de um pedido (items, total, merchant, delivery, customer — conforme permissões).
  • Houver um orderNumber válido gerado pela plataforma.
  • O parceiro tiver autorização para ver os dados sensíveis (aplicável somente se houver acordo legal).

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Polling massivo de listas de pedidos (usar events:polling para eventos).
  • Recuperar pedidos não pertencentes ao escopo do parceiro sem autorização.
  • Operações de escrita/alteração de pedido.

Importante

Informações para edição de pedidos

Quando disponíveis, os detalhes do pedido incluem informações que devem ser preservadas para permitir a edição de itens:

  • observations: preferência do cliente para tratar itens que estejam em falta. O campo é opcional e não é retornado quando o cliente não informar uma preferência. Os valores possíveis são:
    • Substituir por item similar: indica que o item pode ser substituído por outro da mesma categoria. Nesse caso, utilize items[].category.id para garantir que o novo item pertença à mesma categoria.
    • Cancelar o item.: indica que o item em falta deve ser cancelado.
  • items[].category.id: identificador da categoria do item. Esse campo deve ser utilizado no fluxo de substituição por item similar para garantir que o novo item pertença à mesma categoria.

Status e histórico do pedido

A resposta contém:

  • status: o status mais recente do pedido.
  • statusHistory: a lista cronológica de status e eventos registrados, com a data de cada ocorrência.

Os valores seguem os eventos documentados no grupo Events. Em especial, EDITED é um evento emitido quando uma alteração realizada diretamente pelo PDV é concluída com sucesso. EDITED não representa um status persistente nem uma mudança de etapa do pedido. Para acompanhar mudanças de forma assíncrona, consuma GET /events:polling ou configure webhooks.

Valor retornado pela API Descrição Validade por tipo de pedido
CREATED Pedido realizado e na fila de aceite do PDV; também pode ter sido transferido após rejeição de outro PDV. DELIVERY, TURBO, TAKEOUT
CONFIRMED Pedido aceito pelo PDV. DELIVERY, TURBO, TAKEOUT
EDITED Evento emitido quando uma alteração realizada diretamente pelo PDV é concluída com sucesso. EDITED não representa um status persistente nem uma mudança de etapa do pedido. DELIVERY, TURBO, TAKEOUT
READY_FOR_PICKUP O pedido já foi coletado pela pessoa entregadora. Atualmente, o Zé Delivery não possui um status que represente “pronto para coleta” DELIVERY, TURBO
DISPATCHED Pessoa entregadora iniciou a rota para o endereço de entrega. DELIVERY, TURBO
CANCELLED Pedido cancelado por cliente, pessoa entregadora, PDV, time interno do Zé Delivery ou expiração (conforme regras operacionais) DELIVERY, TURBO, TAKEOUT
CONCLUDED Pedido entregue com sucesso. DELIVERY, TURBO, TAKEOUT

Ao consultar um pedido, um mesmo produto pode aparecer na resposta em até duas linhas separadas, com o mesmo identificador e os mesmos dados. As únicas diferenças entre essas duas linhas são os campos de unitPrice, onde um possui um valor promocional (mais baixo) e outro não, e o campo hasLimitedPromotion, que indica se aquela parte do produto foi vendida com a promoção:

  • hasLimitedPromotion = true: parte do produto vendida com preço promocional (ainda dentro da quantidade que tem desconto).
  • hasLimitedPromotion = false: parte do produto vendida pelo preço normal, seja porque a quantidade comprada passou do limite da promoção, seja porque o produto não tinha promoção.

Por isso, ao processar a resposta, considere que a identificação única de uma linha de produto no pedido é a combinação identificador do produto + hasLimitedPromotion.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /orders/{orderNumber}
  API-->>Parceiro: 200 com detalhes do pedido
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "displayId": "123457890",
  • "status": "CREATED",
  • "type": "DELIVERY",
  • "salesChannel": "DEFAULT",
  • "createdAt": "2021-09-15T19:51:57.851343",
  • "orderTiming": "INSTANT",
  • "merchant": {
    },
  • "items": [
    ],
  • "otherFees": [
    ],
  • "discounts": [
    ],
  • "coupon": {
    },
  • "total": {
    },
  • "payments": {
    },
  • "customer": {
    },
  • "delivery": {
    },
  • "takeout": {
    },
  • "serviceFee": {
    },
  • "extraInfo": "Trazer bem gelada",
  • "observations": "Substituir por item similar",
  • "statusHistory": [
    ]
}

Confirmar pedido

Objetivo

Confirmar/aceitar um pedido no sistema do Zé (aceitação pelo estabelecimento/parceiro).

Quando usar

Utilize este endpoint somente quando:

  • O estabelecimento/parceiro confirma que irá preparar o pedido.
  • É necessário informar preparationTime, orderExternalCode ou createdAt adicionais (opcionais).

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Cancelar pedidos (usar /requestCancellation ou /cancel).
  • Confirmar pedidos já confirmados sem validação (verificar status antes de confirmar).

Importante

Recurso idempotente a nível de negócio — confirmar sem checar status pode gerar rejeições; o endpoint retorna 202 quando a requisição é aceita para processamento. Requer Authorization header. Campos possíveis no body: preparationTime (minutos), orderExternalCode, createdAt. Validar formato createdAt ISO UTC se informado.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /orders/{orderNumber}
  API-->>Parceiro: 200 com detalhes do pedido
  Parceiro->>API: POST /orders/{orderNumber}/confirm
  API-->>Parceiro: 202 aceite em processamento
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
reason
string

Campo livre para informações sobre a confirmação do pedido

orderExternalCode
string

Código externo do pedido que pode ser usada como referência

createdAt
string

Data e hora da criação do pedido

preparationTime
number

Indica o tempo de preparação do pedido em minutos

Responses

Request samples

Content type
application/json
{
  • "reason": "string",
  • "orderExternalCode": "string",
  • "createdAt": "2021-09-15T19:51:57.851343",
  • "preparationTime": 0
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Solicitar cancelamento do pedido

Objetivo

Solicitar o cancelamento ou rejeição de um pedido, informando o código de motivo apropriado.

Quando usar

Utilize este endpoint somente quando:

  • O estabelecimento não puder atender o pedido (ex.: UNAVAILABLE_ITEM, RESTAURANT_WITHOUT_DELIVERY_PERSON etc.).
  • O pedido ainda estiver em status que permite requestCancellation conforme regras de negócio.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Cancelamentos feitos por entregador (use endpoints de logística quando aplicável).
  • Substituir o fluxo de cancelamento em massa sem observar regras por status do pedido.

Importante

Body requer um code dentre os códigos documentados (ex.: UNAVAILABLE_ITEM, SYSTEMIC_ISSUES, etc.). Ver regras: se pedido já confirmado, apenas alguns códigos são aceitos; se não confirmado, outros códigos são aceitos — seguir a enumeração do Swagger. Retorna 202 quando aceita para processamento; erros 422 podem indicar validações de negócio sobre o status atual do pedido. Requer Authorization header.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: POST /orders/{orderNumber}/requestCancellation
  API-->>Parceiro: 202 solicitação aceita para processamento
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
code
string
Enum: "SYSTEMIC_ISSUES" "DUPLICATE_APPLICATION" "UNAVAILABLE_ITEM" "RESTAURANT_WITHOUT_DELIVERY_PERSON" "ORDER_OUTSIDE_THE_DELIVERY_AREA" "BLOCKED_CUSTOMER" "INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT" "RISK_AREA" "DELIVERY_PROBLEM"

Os códigos de razão de cancelamento, SYSTEMIC_ISSUES para problemas sistêmicos, DUPLICATE_APPLICATION para pedidos duplicados, UNAVAILABLE_ITEM para itens indisponíveis, RESTAURANT_WITHOUT_DELIVERY_PERSON para estabelecimento sem entregador, ORDER_OUTSIDE_THE_DELIVERY_AREA para pedidos fora da área de entrega, BLOCKED_CUSTOMER para clientes bloqueados, INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT para dificuldades internas do estabelecimento, RISK_AREA para áreas de risco e DELIVERY_PROBLEM para problemas de entrega. Atenção, o cancelamento pode desencadear diferentes fluxos dependendo do status atual do pedido. Caso o pedido já tenha sido confirmado, apenas os seguintes códigos serão aceitos: UNAVAILABLE_ITEM, ORDER_OUTSIDE_THE_DELIVERY_AREA, INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT e DELIVERY_PROBLEM. Caso o pedido não tenha sido confirmado, apenas os seguintes códigos serão aceitos: INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT, UNAVAILABLE_ITEM e RESTAURANT_WITHOUT_DELIVERY_PERSON.

Responses

Request samples

Content type
application/json
{
  • "code": "UNAVAILABLE_ITEM"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Histórico de pedidos finalizados do estabelecimento

Objetivo

Consultar, de forma paginada, o histórico de pedidos finalizados de um estabelecimento (merchantId) em um determinado período. A resposta traz uma visão resumida de cada pedido — cliente, pagamento, valores, avaliação e histórico de status — adequada para construção de relatórios, dashboards e telas de consulta.

Quando usar

Utilize este endpoint somente quando:

  • For necessário listar pedidos já finalizados de um estabelecimento (por exemplo, pedidos concluídos ou cancelados), dentro de um intervalo de datas.
  • Houver um merchantId válido ao qual o parceiro tenha acesso.
  • For desejável paginar os resultados (page, pageSize) e/ou ordená-los pela data de criação (sort).

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Consulta de pedidos em andamento (ainda não finalizados): eles não são retornados por este endpoint.
  • Acompanhamento em tempo real do ciclo de vida de pedidos: utilizar events:polling em conjunto com getOrderByNumber.
  • Recuperação de detalhes completos de um pedido específico (itens, taxas, descontos detalhados, cliente completo): utilizar getOrderByNumber.
  • Operações de escrita ou alteração de pedidos (confirmar, cancelar, restaurar, atualizar itens).

Importante

Status e histórico

Cada item retornado possui:

  • status: o status final mais recente do pedido, normalmente CONCLUDED ou CANCELLED.
  • statusHistory: o histórico cronológico de status e eventos do pedido.

O histórico pode conter eventos intermediários, como CREATED, CONFIRMED, READY_FOR_PICKUP, DISPATCHED e EDITED. EDITED é um evento emitido quando uma alteração realizada diretamente pelo PDV é concluída com sucesso. EDITED não representa um status persistente nem uma mudança de etapa do pedido.

Valor retornado pela API Descrição Validade por tipo de pedido
CREATED Pedido realizado e na fila de aceite do PDV; também pode ter sido transferido após rejeição de outro PDV. DELIVERY, TURBO, TAKEOUT
CONFIRMED Pedido aceito pelo PDV. DELIVERY, TURBO, TAKEOUT
EDITED Evento emitido quando uma alteração realizada diretamente pelo PDV é concluída com sucesso. EDITED não representa um status persistente nem uma mudança de etapa do pedido. DELIVERY, TURBO, TAKEOUT
READY_FOR_PICKUP O pedido já foi coletado pela pessoa entregadora. Atualmente, o Zé Delivery não possui um status que represente “pronto para coleta” DELIVERY, TURBO
DISPATCHED Pessoa entregadora iniciou a rota para o endereço de entrega. DELIVERY, TURBO
CANCELLED Pedido cancelado por cliente, pessoa entregadora, PDV, time interno do Zé Delivery ou expiração (conforme regras operacionais) DELIVERY, TURBO, TAKEOUT
CONCLUDED Pedido entregue com sucesso. DELIVERY, TURBO, TAKEOUT

Requer header Authorization: Bearer <token> e o parceiro deve ter permissão sobre o merchantId consultado. Somente pedidos que já concluíram seu ciclo de vida (ex.: CONCLUDED e CANCELLED) são retornados — pedidos em andamento são omitidos do resultado.

Limites de período:

  • startDate não pode ser anterior a 6 meses contados a partir da data atual.
  • O intervalo entre startDate e endDate não pode exceder 3 meses por consulta.
  • Para cobrir intervalos maiores, fracionar a consulta em múltiplas chamadas com janelas de até 3 meses, sempre dentro dos últimos 6 meses.

Quando startDate e endDate não forem informados, o período padrão é dos últimos 30 dias até o momento atual; quando informados, devem estar em ISO 8601 e endDate deve ser maior ou igual a startDate. O pageSize aceita valores entre 1 e 50 (padrão 20). O campo hasNext na resposta indica se há mais páginas a consultar. Dados sensíveis do cliente (ex.: nome) podem ser omitidos quando o parceiro não tiver permissão para acessá-los.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /merchants/{merchantId}/orders/history?startDate&endDate&page&pageSize&sort
  API-->>Parceiro: 200 com página de pedidos finalizados
  Parceiro->>API: GET /merchants/{merchantId}/orders/history?page=N+1 (enquanto hasNext = true)
  API-->>Parceiro: 200 com próxima página
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

query Parameters
startDate
string <date-time>
Example: startDate=2026-04-01T00:00:00.000Z

Data inicial do período de consulta no formato ISO 8601 (UTC). Quando não informada, é considerada 30 dias antes de endDate. Não pode ser anterior a 6 meses contados a partir da data atual.

endDate
string <date-time>
Example: endDate=2026-05-01T00:00:00.000Z

Data final do período de consulta no formato ISO 8601 (UTC). Quando não informada, é considerada a data/hora atual. Deve ser maior ou igual a startDate, e o intervalo entre startDate e endDate não pode exceder 3 meses por consulta.

page
integer >= 1
Default: 1

O número da página, iniciando em 1.

pageSize
integer [ 1 .. 50 ]
Default: 20

O número de itens por página.

sort
string
Enum: "asc" "desc"

Ordenação dos pedidos pela data de criação. asc para ordem crescente e desc para ordem decrescente.

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "page": 1,
  • "pageSize": 20,
  • "hasNext": true,
  • "items": [
    ]
}

Restaurar pedido editado

Objetivo

Reverter as alterações feitas nos itens de um pedido confirmado, restaurando a composição anteriormente vigente na plataforma, quando essa operação é suportada pelo estado atual do pedido.

Quando usar

Utilize este endpoint somente quando:

  • Já tiver sido aplicada uma atualização de itens no pedido e for necessário desfazê-la.
  • O pedido estiver em condições que permitem restauração segundo as regras de negócio expostas pela API.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Substituir o cancelamento ou a solicitação de cancelamento quando o objetivo for encerrar o pedido.
  • Corrigir dados que não dependem do fluxo de edição de itens (consulte os demais endpoints do grupo Orders).

Importante

Em geral, a restauração aplica-se a pedidos confirmados que tenham passado por edição de itens; se o pedido não estiver elegível, a API retorna erro de validação. Em caso de sucesso, a resposta segue o que está definido no contrato público deste recurso.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: PUT /orders/{orderNumber}/items
  API-->>Parceiro: resposta de sucesso conforme contrato
  Parceiro->>API: POST /orders/{orderNumber}/restore
  API-->>Parceiro: resposta de sucesso conforme contrato
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Atualizar itens do pedido

Objetivo

Ajustar os itens de um pedido já confirmado, removendo produtos indisponíveis ou substituindo-os por alternativas equivalentes, sem alterar o restante do contrato público descrito no Swagger.

Quando usar

Utilize este endpoint somente quando:

  • O pedido estiver em status que permite edição de itens após a confirmação pelo estabelecimento (conforme regras da plataforma).
  • For necessário registrar remoções ou substituições antes da preparação ou da operação logística subsequente.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Alterar pedidos que ainda não foram confirmados (o fluxo esperado é consulta, depois confirmação ou solicitação de cancelamento).
  • Substituir o cancelamento do pedido quando a intenção for encerrar o pedido por completo (use os fluxos de cancelamento documentados no grupo Orders).

Importante

A alteração de itens só é aceita quando o pedido está no status CONFIRMED. Em qualquer outro status, a API recusa a chamada. Para desfazer mudanças e voltar à composição anterior do pedido, use o endpoint de restauração do pedido, no mesmo grupo Orders.

Um mesmo produto pode aparecer no pedido em até duas linhas separadas, com o mesmo identificador e os mesmos dados. As únicas diferenças entre essas duas linhas são os campos de unitPrice, onde um possui um valor promocional (mais baixo) e outro não, e o campo hasLimitedPromotion, que indica se aquela parte do produto foi vendida com a promoção:

  • hasLimitedPromotion = true: parte do produto vendida com preço promocional (ainda dentro da quantidade que tem desconto).
  • hasLimitedPromotion = false: parte do produto vendida pelo preço normal, seja porque a quantidade comprada passou do limite da promoção, seja porque o produto não tinha promoção.

Por isso, na edição de itens, o que identifica uma linha de produto de forma única é a combinação identificador do produto + hasLimitedPromotion. Ao remover quantidade ou substituir um item, envie o campo hasLimitedPromotion para a API saber em qual das duas linhas mexer. Se você não enviar esse campo, a API atua na linha com hasLimitedPromotion = false, caso ela exista.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: POST /orders/{orderNumber}/confirm
  API-->>Parceiro: 202 aceite em processamento
  Parceiro->>API: PUT /orders/{orderNumber}/items (pedido em CONFIRMED, hasLimitedPromotion por item)
  API-->>Parceiro: resposta de sucesso conforme contrato
path Parameters
orderNumber
required
string >= 9
Example: 123456789

O número do pedido na plataforma Zé Delivery

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
Array of objects (UpdateOrderItem) <= 30 items

Lista de itens a serem removidos do pedido.

Array of objects <= 30 items

Lista de substituições de itens do pedido.

Responses

Request samples

Content type
application/json
{
  • "removedItems": [
    ],
  • "replacedItems": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Products

Sobre Products

Os endpoints do grupo Products da Seller Public API cobrem a gestão de catálogo e oferta no Zé Delivery em dois eixos: rotas padrão (disponibilidade, criação e atualização de itens, oferta/preço do item, promoções em lote e listagem paginada do menu) e rotas /external-catalog, restritas a SKUs exclusivos do parceiro em verticais específicas (disponibilidade de produto e de options, preços de SKU e de option, e upsert em lote do catálogo externo). Todas as rotas exigem autenticação. Endpoints de catálogo externo não substituem o catálogo oficial da plataforma.

Quando usar os endpoints Products ?

  • Quando for necessário ligar ou desligar disponibilidade de SKU no PDV (catálogo gerenciado pelo parceiro, conforme escopo) ou, no catálogo externo, de produtos ou options (variantes/toppings) criados pela integração.
  • Quando precisar criar ou atualizar itens de produto por estabelecimento, ajustar oferta (preço/desconto) de um item ou fazer upsert em lote de itens ou promoções para vários merchants.
  • Quando for preciso listar itens do menu de um merchant com paginação e filtro por identificadores externos.
  • Quando a integração usar catálogo externo: sincronização em lote de SKUs, atualização de preço de produto ou de option por externalCode, conforme contrato da vertical.

Quando não usar os endpoints Products ?

  • Para pedidos (consulta, confirmação, cancelamento) — use o grupo Orders e, para sincronização de mudanças, Events.
  • Para abrir ou fechar o estabelecimento (PDV) — use Merchants (availability do merchant), não a disponibilidade de produto individual.
  • Para obter ou renovar token — use Authentication (client_credentials).
  • Para SKUs do catálogo padrão do Zé ou fluxos fora do escopo acordado — não use rotas de catálogo externo nem operações de item sem autorização explícita.

Como os endpoints de Products se relacionam

No fluxo padrão, costuma-se consultar o menu (GET), criar ou atualizar itens (POST/PUT por merchant), ajustar disponibilidade ou oferta quando aplicável, e usar upsert em lote ou promos para sincronização ampla. No catálogo externo, o fluxo típico é upsert do catálogo em lote, seguido de ajustes pontuais de preço e disponibilidade de produtos e options.

flowchart TB
  subgraph padrao["Catálogo padrão / parceiro"]
    direction TB
    M["GET /merchants/{merchantId}/menu/items — listar menu"]
    A["POST /merchants/{merchantId}/products/availability — on/off SKU"]
    C["POST /merchants/{merchantId}/products/items — criar item"]
    U["PUT /merchants/{merchantId}/products/items — atualizar item"]
    O["POST /merchants/{merchantId}/products/itemOffer — oferta/preço"]
    B["PUT /merchants/products/items — upsert em lote"]
    P["PUT /merchants/products/promos — promoções em lote"]
    M --> A --> C --> U --> O --> B --> P
  end
flowchart TB
  subgraph ext["Catálogo externo"]
    direction TB
    E1["PUT /external-catalog/catalog/products — upsert em lote"]
    E2["POST /external-catalog/merchants/{merchantId}/products/availability — disponibilidade SKU"]
    E3["POST /external-catalog/merchants/{merchantId}/options/availability — disponibilidade option"]
    E4["PUT /external-catalog/merchants/{merchantId}/products/{externalCode}/price — preço SKU"]
    E5["PUT /external-catalog/merchants/{merchantId}/options/{externalCode}/price — preço option"]
    E1 --> E2 --> E3 --> E4 --> E5
  end

Em ambos os quadros, a cadeia vertical é ordem sugerida de leitura, não sequência obrigatória de chamadas: use apenas os endpoints necessários ao seu fluxo (por exemplo, criar/atualizar item, disponibilidade e oferta podem ser chamados conforme a operação; em lote, upsert de itens e promos são independentes entre si quando aplicável).

Create product item

Objetivo

Criar (POST) um item de produto para um estabelecimento (inclui price, images, category, tags).

Quando usar

POST: criar SKUs exclusivos do parceiro para o merchant (catálogo externo/partner-managed).

Quando NÃO usar

Não usar para criar SKUs que pertencem ao catálogo padrão do Zé sem autorização. Evitar duplicar productId vs externalProductId — a regra do Swagger indica que exatamente um dos identificadores é obrigatório.

Importante

Regras de validação: exatamente um de productId ou externalProductId deve ser enviado; se price informado, value e originalValue são obrigatórios; imagens têm image obrigatório. Requer Authorization. Respostas podem retornar 202 (async processing) ou erros 422/400.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: POST /merchants/{merchantId}/products/items
  API-->>Parceiro: 202 ou erro de validação
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
externalProductId
string

Identificador do produto no sistema de origem (plataforma parceira).

name
string

Nome do produto.

description
string

Descrição do produto.

Array of objects

Lista de URLs de imagens do produto.

object

Informações de preço do produto. Regra de oferta: se value e originalValue forem iguais, não há oferta (preço cheio). Se forem diferentes, há oferta: o valor do desconto é ( originalValue − value ) e o percentual de desconto é esse valor dividido por originalValue, multiplicado por 100. O exemplo abaixo ilustra preço cheio (value = originalValue).

category
string

Código ou slug da categoria do produto no catálogo.

tags
Array of strings

Tags do produto.

Responses

Request samples

Content type
application/json
{
  • "productId": "1234",
  • "externalProductId": "1234",
  • "name": "Nome do Produto",
  • "description": "Descrição do produto",
  • "category": "categoria",
  • "price": {
    },
  • "images": [],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{ }

Update product item

Objetivo

Atualizar (PUT) um item de produto para um estabelecimento (inclui price, images, category, tags).

Quando usar

PUT: atualizar metadados do item (nome, descrição, preço, imagens).

Quando NÃO usar

Não usar para alterar SKUs que pertencem ao catálogo padrão do Zé sem autorização. Evitar duplicar productId vs externalProductId — a regra do Swagger indica que exatamente um dos identificadores é obrigatório.

Importante

Regras de validação: exatamente um de productId ou externalProductId deve ser enviado; se price informado, value e originalValue são obrigatórios; imagens têm image obrigatório. Requer Authorization. Respostas podem retornar 202 (async processing) ou erros 422/400.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: PUT /merchants/{merchantId}/products/items
  API-->>Parceiro: 202 ou erro de validação
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
productId
integer

O identificador do produto na plataforma Zé Delivery.

externalProductId
string

Identificador do produto no sistema de origem (plataforma parceira).

name
required
string

Nome do produto.

description
required
string

Descrição do produto.

Array of objects

Lista de URLs de imagens do produto.

object

Informações de preço do produto. Regra de oferta: se value e originalValue forem iguais, não há oferta (preço cheio). Se forem diferentes, há oferta: o valor do desconto é ( originalValue − value ) e o percentual de desconto é esse valor dividido por originalValue, multiplicado por 100. O exemplo abaixo ilustra preço cheio (value = originalValue).

category
required
string

Código ou slug da categoria do produto no catálogo.

tags
Array of strings

Tags do produto.

Responses

Request samples

Content type
application/json
{
  • "productId": "1234",
  • "externalProductId": "1234",
  • "name": "Nome do Produto",
  • "description": "Descrição do produto",
  • "category": "categoria",
  • "price": {
    },
  • "images": [],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Upsert product items

Objetivo

Upsert em lote (atualizar múltiplos produtos) — sincronização inicial ou periódica de catálogo parceiro.

Quando usar

Onboarding inicial de catálogo exclusivo do parceiro ou sincronização de muitos SKUs.

Quando NÃO usar

Para atualizações unitárias frequentes (usar endpoints unitários); não criar produtos no catálogo oficial do Zé.

Importante

Recurso assíncrono: retorna 202 para processamento; validações por item podem retornar 422. Requer Authorization. Limitações de tamanho de payload não documentadas explicitamente no Swagger — validar com infraestrutura antes de enviar grandes lotes.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: PUT /merchants/products/items
  API-->>Parceiro: 202 — processamento assíncrono
header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Update product promotions

Objetivo

Atualizar promoções de produtos para múltiplos estabelecimentos em lote.

Quando usar

Aplicar/retirar campanhas/promos para vários merchants de uma só vez.

Quando NÃO usar

Para promoções que impactam catálogo padrão sem acordo; não usar para promoções ad-hoc sem campos obrigatórios.

Importante

Estrutura: array de ProductPromoInput. Regras: se isEnabled=true, percentage e scheduleType são obrigatórios, caso contrário não devem ser enviados. Deve ser usado productId ou externalProductId em ambos os casos. Requer Authorization. Retorna 202 quando aceito.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: PUT /merchants/products/promos
  API-->>Parceiro: 202 quando aceito
header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
Array ()
One of
Any of
merchantId
string

O id do estabelecimento

productId
required
string

O id do produto

externalProductId
string

O id do produto externo

isEnabled
required
boolean
Value: true

Define se a promoção está ativa ou não

percentage
required
number [ 0 .. 100 ]

Percentual de desconto da promoção

scheduleType
required
string
Enum: "ALWAYS" "WEEKDAYS" "WEEKENDS" "SUPER_FRIDAY"

Tipo de agendamento da promoção

Responses

Request samples

Content type
application/json
Example
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Update product availability

Objetivo

Atualizar disponibilidade (on/off) de um SKU do estabelecimento (produto ou externalProductId).

Quando usar

Quando o parceiro precisa marcar um produto específico como disponível ou indisponível no PDV.

Quando NÃO usar

Para atualizar produtos do catálogo padrão do Zé (aplicável somente a SKUs gerenciados pelo parceiro quando apropriado).

Importante

Body aceita productId (integer) ou externalProductId (string) e available boolean. Requer Authorization. Retorna 200 com objeto de confirmação.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: POST /merchants/{merchantId}/products/availability
  API-->>Parceiro: 200 com confirmação
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
productId
integer

O identificador do produto na plataforma Zé Delivery.

externalProductId
string

O identificador do produto em plataforma de terceiros.

available
boolean

A disponibilidade do produto

Responses

Request samples

Content type
application/json
{
  • "productId": "1234",
  • "externalProductId": "1234",
  • "available": true
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Get merchant items

Objetivo

Buscar itens do menu de um estabelecimento (paginação e filtro por externalProductIds).

Quando usar

Para listar produtos expostos de um merchant (paginação via page e pageSize).

Quando NÃO usar

Não usar para modificar itens; para detalhes completos do produto usar endpoints de produto.

Importante

Requer Authorization. pageSize tem limites (min=5, max=30) e page padrão = 1 segundo Swagger. Schema de resposta: merchantItemsResponse.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /merchants/{merchantId}/menu/items
  API-->>Parceiro: 200 com itens paginados
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

query Parameters
page
number
Default: 1

O número da página

pageSize
number [ 5 .. 30 ]
Default: 5

O número de itens por página

externalProductIds
string
Example: externalProductIds=12345,54321

Os ids externos dos itens. Retorna todos se não for informado.

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "currentPage": 0,
  • "totalPages": 0,
  • "totalItems": 0,
  • "pageSize": 0,
  • "items": [
    ]
}

Update item offer

Objetivo

Atualizar/definir oferta (price/discount) de um item no estabelecimento.

Quando usar

Aplicar preço ou promoção em um item específico do merchant (price + originalValue).

Quando NÃO usar

Para alterar o catálogo global do Zé ou preços de SKUs do catálogo padrão (sem acordo).

Importante

Requer merchantId e price com value e originalValue (value > 0, originalValue ≥ value). Requer Authorization. Retorna 202 quando processado.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: POST /merchants/{merchantId}/products/itemOffer
  API-->>Parceiro: 202 quando aceito
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
productId
string

O identificador do produto na plataforma Zé Delivery.

externalProductId
string

Identificador do produto no sistema de origem (plataforma parceira).

required
object

Informações de preço do produto. Regra de oferta: se value e originalValue forem iguais, não há oferta (preço cheio). Se forem diferentes, há oferta: o valor do desconto é ( originalValue − value ) e o percentual de desconto é esse valor dividido por originalValue, multiplicado por 100. O exemplo abaixo ilustra preço cheio (value = originalValue).

Responses

Request samples

Content type
application/json
{
  • "productId": "1234",
  • "externalProductId": "1234",
  • "price": {
    }
}

Response samples

Content type
application/json
{ }

Update external catalog product availability

Objetivo

Atualizar a disponibilidade (on/off) de SKUs exclusivos criados pelo parceiro, destinados a uma vertical específica dentro do Zé Delivery.

Quando usar

Utilize este endpoint somente quando:

  • O SKU foi criado pelo parceiro via integração.
  • O SKU não existe no catálogo padrão do Zé.
  • O produto será consumido exclusivamente dentro da vertical associada a esta integração.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Produtos do catálogo padrão do Zé.
  • SKUs ABI já existentes na base.
  • Atualizações de disponibilidade de produtos padrão do marketplace.
  • Fluxos genéricos de catálogo.

Importante

Este é um endpoint específico para catálogos externos/parceiros. Ele não substitui nem altera o comportamento do catálogo oficial do Zé Delivery.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: POST /external-catalog/merchants/{merchantId}/products/availability
  API-->>Parceiro: 200 em caso de sucesso
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
productId
string

O identificador do produto na plataforma Zé Delivery.

externalCode
string

O código externo do produto na plataforma parceira.

available
boolean

Indica se o produto está disponível.

Responses

Request samples

Content type
application/json
{
  • "productId": "1234",
  • "externalCode": "1234",
  • "available": true
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Update external catalog option price

Objetivo

Atualizar o preço de uma option (variante/topping) pertencente a um SKU exclusivo do catálogo externo, identificado por externalCode.

Quando usar

Utilize este endpoint somente quando:

  • A option (variante) pertence a um SKU criado via integração externa.
  • O parceiro precisa ajustar preços de variantes/toppings gerenciadas no catálogo externo.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Atualizar preços de produtos do catálogo padrão do Zé.
  • Atualizações de pricing em SKUs ABI já cadastrados.
  • Atualizações massivas do marketplace fora do escopo do catálogo externo.

Importante

Método: PUT. Path: /external-catalog/merchants/{merchantId}/options/{externalCode}/price. Autenticação: header Authorization: Bearer <token> obrigatório. Parâmetros: merchantId (path); externalCode (path) — identificador da option no catálogo do parceiro. Body (application/json): objeto price com campos mínimos: value (number) — preço atual (obrigatório). originalValue (number) — preço original (obrigatório quando aplicável). currency (string) — ex.: BRL (recomendado). Respostas comuns: 202 Accepted (processamento assíncrono), 400, 401, 403, 404, 422, 500. Observações: alteração aplica-se somente à option identificada por externalCode; validar se a option existe no catálogo externo antes de enviar.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: PUT /external-catalog/merchants/{merchantId}/options/{externalCode}/price
  API-->>Parceiro: 202 ou código de erro conforme validação
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

externalCode
required
string
Example: 1234

O código externo do produto (option) a ser atualizado, definido pelo parceiro e único dentro do catálogo externo.

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
price
number

O preço final do produto

Responses

Request samples

Content type
application/json
{
  • "price": 29.9
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Update external catalog product price

Objetivo

Atualizar o preço de venda de um SKU exclusivo criado pelo parceiro, identificado por externalCode.

Quando usar

Utilize este endpoint somente quando:

  • O SKU foi criado via integração externa e não existe no catálogo oficial do Zé.
  • For necessário ajustar o preço de venda do SKU em produção.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Atualizar preços de SKUs do catálogo padrão do Zé.
  • Alterar preços de itens que são compartilhados entre verticais sem autorização.

Importante

Método: PUT. Path: /external-catalog/merchants/{merchantId}/products/{externalCode}/price. Autenticação: header Authorization: Bearer <token> obrigatório. Parâmetros: merchantId (path); externalCode (path) — identificador do SKU no sistema do parceiro. Body (application/json): objeto price com campos mínimos: value (number) — preço final cobrado. originalValue (number) — preço original (sem desconto), quando aplicável. currency (string) — ex.: BRL. Respostas: 202 Accepted (assíncrono) ou 200/4xx/5xx conforme validação/erro. Observações: payload deve obedecer às regras de preço (ex.: value > 0; se originalValue informado calcule desconto conforme regra local). Garantir que o externalCode aponta para um SKU gerenciado pelo parceiro.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: PUT /external-catalog/merchants/{merchantId}/products/{externalCode}/price
  API-->>Parceiro: 202 ou resposta conforme validação
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

externalCode
required
string
Example: 1234

O código externo do produto a ser atualizado, definido pelo parceiro e único dentro do catálogo externo.

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
price
number

Preço final (valor cobrado). Com oferta, é o valor já com desconto; sem oferta, coincide com originalValue. Deve ser > 0.

fullPrice
number

Preço original (sem desconto). Igual a price quando não há oferta. Deve ser > 0.

Responses

Request samples

Content type
application/json
{
  • "price": 29.9,
  • "fullPrice": 39.9
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Upsert external catalog products

Objetivo

Realizar upsert (criação/atualização em lote) do catálogo exclusivo do parceiro — sincronização em lote de SKUs destinados à vertical da integração.

Quando usar

Utilize este endpoint somente quando:

  • For necessário fazer onboarding inicial do catálogo exclusivo do parceiro.
  • Realizar sincronizações periódicas de muitos SKUs (bulk) criados pelo parceiro.
  • O catálogo enviado refere-se exclusivamente a produtos que não existem no catálogo oficial do Zé.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Criar ou atualizar produtos do catálogo padrão do Zé.
  • Sincronizações de SKUs que já pertençam ao marketplace padrão ou que sejam compartilhados entre verticais.
  • Operações unitárias frequentes (usar endpoints unitários para updates single-item).

Importante

Método: PUT. Path: /external-catalog/catalog/products. Autenticação: header Authorization: Bearer <token> obrigatório. Body (application/json): array de objetos produto (bulk). Para cada produto, seguir o schema do catálogo externo (identificadores externalProductId/externalCode, name, description, price, images, options, etc.). Respostas: normalmente 202 Accepted (processamento assíncrono); 400, 401, 403, 422 por item ou geral; 500 para erro servidor. Observações técnicas: Endpoint é assíncrono — processamento em background; cada item pode ter validações individuais que resultem em erros parciais. Monitorar mensagens/erros de retorno/reporting. Respeitar limites operacionais (tamanho de payload/rate limits) definidos por contrato técnico — validar antes de enviar lotes muito grandes. Mantém isolamento por vertical: não cria nem altera o catálogo oficial do Zé.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: PUT /external-catalog/catalog/products
  API-->>Parceiro: 202 — processamento assíncrono
header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
merchantId
string

O id do estabelecimento

brandId
integer

O id da marca do produto

externalProductId
string

Identificador do produto no sistema de origem (plataforma parceira).

title
string

Nome do produto.

description
string

Descrição do produto.

Array of objects

Lista de URLs de imagens do produto.

object

Informações de preço do produto. Regra de oferta: se value e originalValue forem iguais, não há oferta (preço cheio). Se forem diferentes, há oferta: o valor do desconto é ( originalValue − value ) e o percentual de desconto é esse valor dividido por originalValue, multiplicado por 100. O exemplo abaixo ilustra preço cheio (value = originalValue).

category
string

Código ou slug da categoria do produto no catálogo

tags
Array of strings

Tags do produto

Array of objects
Default: []

Responses

Request samples

Content type
application/json
{
  • "merchantId": "1234",
  • "brandId": 5678,
  • "externalProductId": "12345",
  • "title": "Nome do Produto",
  • "description": "Descrição do produto",
  • "category": "categoria",
  • "price": {
    },
  • "images": [],
  • "tags": [
    ],
  • "optionGroups": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Update external catalog option availability

Objetivo

Controlar a disponibilidade granular (on/off) de options (variantes/toppings) de SKUs exclusivos do parceiro.

Quando usar

Utilize este endpoint somente quando:

  • For necessário marcar uma option como disponível ou indisponível para um merchant específico.
  • A option pertence a um SKU gerenciado no catálogo externo.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Controlar availability de opções que pertencem a produtos do catálogo padrão do Zé.
  • Controlar options em escala global fora do escopo da vertical de integração.

Importante

Método: POST. Path: /external-catalog/merchants/{merchantId}/options/availability. Autenticação: header Authorization: Bearer <token> obrigatório. Parâmetros: merchantId (path). Body (application/json): objeto com externalOptionCode ou identificador equivalente e available boolean. Respostas: 200 OK em caso de sucesso; 400, 401, 403, 404, 422, 500 conforme validações/erros. Observações: alteração afeta somente a option no contexto do merchant e da vertical; validar existência da option no catálogo externo antes de executar.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: POST /external-catalog/merchants/{merchantId}/options/availability
  API-->>Parceiro: 200 em caso de sucesso
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
optionId
string

O identificador da opção na plataforma Zé Delivery.

available
boolean

Indica se a opção está disponível.

Responses

Request samples

Content type
application/json
{
  • "optionId": "1234",
  • "available": true
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "title": "string",
  • "type": "string",
  • "messages": [
    ]
}

Reports

Sobre Reports

Os endpoints do grupo Reports da Seller Public API concentram consultas de relatórios operacionais e financeiros do PDV. Eles são voltados para integradores que precisam alimentar dashboards, rotinas de conciliação, plataformas de gestão financeira, WMS, OMS ou ERPs com dados estruturados do Zé Delivery.

Nesta seção ficam consultas de leitura, como KPIs do estabelecimento e relatórios financeiros. Esses endpoints não executam ações operacionais no pedido ou no catálogo; eles organizam informações para análise, acompanhamento e conciliação.

Quando usar os endpoints Reports ?

  • Quando o integrador precisar consultar KPIs consolidados do PDV por período para dashboards ou monitoramento.
  • Quando for necessário consultar repasses na granularidade do pedido, com valores finais de componentes financeiros como frete, cupom, markup, sampling, descontos e comissões.
  • Quando for necessário consultar incentivos operacionais semanais, com valor por pedido válido, quantidade de pedidos válidos e valor total repassado na semana.
  • Quando for necessário consultar pagamentos manuais, com ajustes financeiros lançados manualmente e agrupados por semana ISO.
  • Quando o objetivo for automatizar rotinas de relatório ou conciliação que hoje dependeriam de acesso manual ao Seu Zé ou suporte operacional.

Quando não usar os endpoints Reports ?

  • Para consultar detalhes completos ou estado operacional de um pedido específico — use Orders.
  • Para acompanhar eventos de status em tempo real ou evitar polling direto em massa — use Events.
  • Para abrir/fechar loja ou consultar dados cadastrais do estabelecimento — use Merchants.
  • Para catálogo, preço, disponibilidade ou gestão SKU a SKU — use Products.
  • Para obter ou renovar token — use Authentication (client_credentials).

Como os endpoints de Reports se relacionam

Os endpoints desta seção são independentes e devem ser escolhidos conforme a necessidade de relatório do integrador. Eles não formam uma sequência obrigatória: para montar uma visão financeira mais completa, combine as consultas necessárias.

Necessidade do integrador Endpoint indicado Resultado esperado
Acompanhar performance operacional do PDV em dashboards ou rotinas de monitoramento GET /merchants/{merchantId}/kpis KPIs consolidados por PDV, período, granularidade e data de referência
Conciliar valores financeiros atrelados a pedidos GET /merchants/{merchantId}/reimbursements/orders/summaries Resumo de repasses por pedido, com componentes financeiros finais vinculados ao pedido
Conferir incentivos operacionais por meta ou qualidade operacional GET /merchants/{merchantId}/reports/operational-incentives Incentivos semanais por semana ISO, com pedidos válidos e valor total repassado
Consultar pagamentos lançados manualmente GET /merchants/{merchantId}/reports/manual-payments Pagamentos manuais agrupados por semana ISO

Get Merchant KPIs

Objetivo

Permitir que o integrador consulte, de forma programática, os principais KPIs operacionais de um PDV (seller) para utilização em dashboards próprios, monitoramento de performance e automações. O endpoint fornece métricas consolidadas por período (granularidade) e data de referência, retornando indicadores estruturados por grupo.

Quando usar

Utilize este endpoint somente quando: O integrador precisar consultar KPIs consolidados de um PDV específico. For necessário alimentar dashboards externos ou sistemas próprios com métricas de desempenho do seller. Houver necessidade de analisar métricas agregadas por período (MONTH, WEEK, DAY ou HOUR).

Quando NÃO usar

Este endpoint não deve ser utilizado para: Consultar detalhes de pedidos individuais (use endpoints de Orders). Criar, atualizar ou enviar dados de performance. Substituir endpoints de catálogo, estoque ou operações transacionais.

Importante

Este endpoint é somente leitura (read-only). O acesso exige autenticação OAuth2 (client_credentials) e permissionamento específico para leitura de KPIs. O retorno é consolidado por PDV e por período — não há detalhamento por pedido. A granularidade e a data de referência são obrigatórias e impactam diretamente o cálculo das métricas. O integrador deve respeitar o rate limit configurado para a aplicação. O endpoint faz parte da Seller Public API (catálogo padrão) e não está relacionado a catálogo externo, marketplace ou integrações de parceiro customizadas.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /merchants/{merchantId}/kpis
  API-->>Parceiro: 200 com KPIs agregados por período
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

query Parameters
granularity
string
Enum: "HOUR" "DAY" "WEEK" "MONTH"

A granularidade dos KPIs a serem retornados.

referenceDate
string <date>
Example: referenceDate=2026-03-06

Data de referência para os KPIs (formato ISO 8601: YYYY-MM-DD).

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "kpis": {
    }
}

Resumo de repasses por pedido

Objetivo

Essa consulta faz parte do grupo de 3 relatórios financeiros de repasses do Zé aos estabelecimentos que operam conosco:

  1. Repasses calculados por pedido
  2. Repasses de incentivos operacionais semanais
  3. Repasses de pagamentos manuais

Essa consulta retorna, de forma paginada, o item 1: o resumo dos repasses financeiros diretamente calculados por pedido, e atrelados a um estabelecimento (merchantId) em um período financeiro. Os valores retornados por pedido são:

  • Markup: markup na venda de produtos Ambev.
  • Frete: diferença entre os valores de entrega negociado com o estabelecimento e os pagos pelo cliente, incluindo taxas adicionais.
  • Cupons e Descontos: valores de cupons e descontos aplicados nos pedidos.
  • Taxas e Comissões: cobranças de plataforma e marketplace.

Caso haja dúvidas dos cálculos, consulte:

As datas informadas servem para selecionar semanas ISO fechadas, e a resposta traz os pedidos encontrados nessas semanas, com valores finais calculados em cada pedido.

Quando usar

Utilize este endpoint quando:

  • For necessário consultar resumos de repasse por pedido de um estabelecimento.
  • Houver um merchantId válido ao qual o parceiro tenha acesso.
  • O período de consulta estiver definido por startDate e endDate, ambos no formato YYYY-MM-DD.
  • For desejável paginar os resultados usando page e pageSize.
  • For necessário filtrar a consulta por um pedido específico, desde que ele pertença ao período financeiro informado.
  • O objetivo for apoiar conciliação financeira na granularidade do pedido.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Consultar detalhes completos de um pedido específico.
  • Acompanhar o ciclo de vida operacional do pedido em tempo real.
  • Criar, atualizar, cancelar ou restaurar pedidos.
  • Obter a visão financeira completa do seller.
  • Detalhar a memória de cálculo de cada componente financeiro.

Importante

Requer header Authorization: Bearer <token> e o parceiro deve ter permissão sobre o merchantId consultado.

Os campos startDate e endDate são obrigatórios e devem ser enviados no formato YYYY-MM-DD, por exemplo 2026-05-18. Valores com horário completo, como 2026-05-18T00:00:00.000Z, não fazem parte do contrato deste endpoint.

Como o período é interpretado:

  • A API usa startDate e endDate para descobrir quais semanas ISO fazem parte do intervalo informado.
  • Uma semana ISO começa na segunda-feira e termina no domingo.
  • Não é possível consultar a semana atual enquanto ela ainda estiver em andamento; somente semanas ISO já fechadas são aceitas.
  • O período deve estar dentro do mesmo ano e pode cobrir, no máximo, as últimas 5 semanas ISO fechadas.
  • Como a busca é feita por semana ISO, a API consulta as semanas inteiras selecionadas. Por isso, a resposta pode trazer pedidos pertencentes a essas semanas mesmo quando a data do pedido estiver fora do recorte literal de startDate e endDate.

Exemplo: startDate=2026-05-18 e endDate=2026-05-24 selecionam a semana ISO 21 de 2026. Já startDate=2026-05-01 e endDate=2026-05-31 selecionam as semanas ISO 18 a 22 de 2026.

Na resposta, cada pedido traz extensions.financialDetails.isoWeek e extensions.financialDetails.isoYear, indicando a semana financeira usada como referência para aquele resumo.

O filtro orderNumber é opcional. Quando informado, ele restringe a busca ao pedido enviado dentro das semanas ISO selecionadas por startDate e endDate. Se o pedido não pertencer ao período financeiro informado, ele não será retornado.

Este endpoint só traz informações financeiras atreladas ao pedido e expõe os valores finais resumidos de cada componente. Ele não representa a visão financeira completa do seller e não detalha a memória de cálculo de cada valor.

Paginação:

  • page é opcional, inicia em 1 e usa 1 como valor padrão.
  • pageSize é opcional, usa 100 como valor padrão e aceita valores entre 1 e 200.
  • O campo pageInfo.hasNextPage indica se há mais páginas disponíveis.

Valores monetários são retornados como objetos com value e currency. Para este endpoint, a moeda retornada é BRL.

Componentes financeiros retornados:

  • MARKUP: markup na venda de produtos Ambev.
  • DELIVERY_FEE: frete; diferença entre os valores de entrega negociado com o estabelecimento e os pagos pelo cliente, incluindo taxas adicionais.
  • discounts: valor restituído do cupom utilizado no pedido.
  • SAMPLING_GIFTS: valor de produtos vendidos a preço simbólico no Zé para experimentação do cliente.
  • MARKETPLACE_DISCOUNT: restituição de promoção aplicada automaticamente pelo Zé nos produtos.
  • TAKE_RATE: comissão aplicada na venda de produtos marketplace.
  • SERVICE_FEE: percentual cobrado sobre o valor do pedido, conforme contrato com o estabelecimento.
sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET summaries com merchantId, startDate, endDate e paginação
  API->>API: Seleciona semanas ISO fechadas
  API-->>Parceiro: 200 com orders, pageInfo e financialDetails
  Parceiro->>API: GET summaries com page=N+1
  API-->>Parceiro: 200 com próxima página, se existir
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

query Parameters
startDate
required
string <date>
Example: startDate=2026-05-18

Data inicial do período financeiro no formato YYYY-MM-DD. A API usa startDate e endDate para selecionar semanas ISO completas; somente semanas ISO já fechadas podem ser consultadas.

endDate
required
string <date>
Example: endDate=2026-05-24

Data final do período financeiro no formato YYYY-MM-DD. Deve estar no mesmo ano de startDate; o período pode cobrir, no máximo, as últimas 5 semanas ISO fechadas.

page
integer >= 1
Default: 1

O numero da pagina, iniciando em 1.

pageSize
integer [ 1 .. 200 ]
Default: 100

O numero de itens por pagina.

orderNumber
string
Example: orderNumber=123456789

Número do pedido para filtrar a consulta dentro do período financeiro informado.

header Parameters
Authorization
required
string

token de autenticacao para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "merchantId": "12345",
  • "startDate": "2026-05-23",
  • "endDate": "2026-06-04",
  • "orders": [
    ],
  • "pageInfo": {
    }
}

Resumo de repasses de incentivos operacionais

Objetivo

Essa consulta faz parte do grupo de 3 relatórios financeiros de repasses do Zé aos estabelecimentos que operam conosco:

  1. Repasses calculados por pedido
  2. Repasses de incentivos operacionais semanais
  3. Repasses de pagamentos manuais

Essa consulta retorna o item 2: o resumo dos repasses de incentivos operacionais semanais apurados para um estabelecimento (merchantId) em uma semana ISO específica.

Incentivos operacionais são valores repassados ao estabelecimento quando há apuração positiva em campanhas ou regras operacionais semanais vigentes. A resposta traz os valores consolidados da semana consultada, incluindo:

  • Valor por pedido válido: valor de incentivo considerado para cada pedido válido na semana.
  • Pedidos válidos: quantidade de pedidos considerados no cálculo do incentivo.
  • Valor total: soma final do incentivo operacional apurado para a semana.

Caso haja dúvidas sobre conceitos financeiros ou demais repasses, consulte:

Quando usar

Utilize este endpoint quando:

  • For necessário consultar o resumo semanal de incentivos operacionais de um estabelecimento.
  • Houver um merchantId válido ao qual o parceiro tenha acesso.
  • A semana financeira estiver definida por isoYear e isoWeek.
  • O objetivo for apoiar conciliação financeira de incentivos operacionais semanais.
  • A consulta precisar validar o valor por pedido válido, a quantidade de pedidos válidos e o total repassado na semana.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Consultar repasses financeiros calculados pedido a pedido; para isso, use GET /merchants/{merchantId}/reimbursements/orders/summaries.
  • Consultar detalhes completos de um pedido específico.
  • Acompanhar o ciclo de vida operacional do pedido em tempo real.
  • Criar, atualizar, cancelar ou restaurar pedidos.
  • Obter a visão financeira completa do seller.
  • Detalhar a memória de cálculo, metas, elegibilidade ou regras internas da campanha de incentivo.
  • Consultar várias semanas em uma única chamada.
  • Consultar KPIs operacionais. Para isso, use o endpoint de KPIs GET /merchants/{merchantId}/kpis.

Importante

Requer header Authorization: Bearer <token> e o parceiro deve ter permissão sobre o merchantId consultado.

Os campos isoYear e isoWeek são obrigatórios:

  • isoYear deve ser um número inteiro positivo, por exemplo 2026.
  • isoWeek deve ser um número inteiro entre 1 e 53.
  • A combinação de isoYear e isoWeek deve representar uma semana ISO existente. Alguns anos não possuem semana ISO 53.

Uma semana ISO começa na segunda-feira e termina no domingo. Este endpoint consulta uma única semana por chamada; ele não aceita startDate, endDate, paginação ou filtro por pedido.

Janela de consulta:

  • Na segunda-feira e na terça-feira, a semana imediatamente anterior ainda não fica disponível. A API permite consultar as 4 semanas ISO fechadas anteriores a ela.
  • De quarta-feira a domingo, a API permite consultar as últimas 5 semanas ISO fechadas antes da semana atual, começando pela semana ISO imediatamente anterior.
  • A semana atual nunca fica disponível enquanto ainda está em andamento.
  • Quando a semana informada está fora da janela liberada, a API retorna 404 Not Found.

Exemplo: em uma quarta-feira da semana ISO 22 de 2026, é possível consultar as semanas ISO 21, 20, 19, 18 e 17. Em uma segunda-feira ou terça-feira da semana ISO 22 de 2026, é possível consultar as semanas ISO 20, 19, 18 e 17; a semana ISO 21 ainda não está liberada.

Quando não houver resumo de incentivo operacional para o estabelecimento e a semana informados, a API também retorna 404 Not Found.

Valores monetários são retornados como objetos com value e currency. Para este endpoint, a moeda retornada é BRL.

Campos retornados:

  • operationalIncentives: lista com o resumo consolidado de incentivos operacionais da semana consultada.
  • amountPerOrder.value: valor de incentivo por pedido válido.
  • amountPerOrder.currency: moeda do valor por pedido válido.
  • totalAmount.value: valor total do incentivo operacional repassado na semana.
  • totalAmount.currency: moeda do valor total.
  • validOrders: quantidade de pedidos válidos considerados no cálculo.
sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  participant Financeiro as Motor financeiro
  Parceiro->>API: GET operational-incentives com merchantId, isoYear e isoWeek
  API->>API: Valida permissao e janela de semana ISO
  API->>Financeiro: Consulta resumo de incentivo da semana
  Financeiro-->>API: total, valor por pedido e pedidos validos
  API-->>Parceiro: 200 com operationalIncentives
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

query Parameters
isoYear
required
integer >= 1
Example: isoYear=2026

Ano ISO da semana financeira consultada. Deve ser um número inteiro positivo.

isoWeek
required
integer [ 1 .. 53 ]
Example: isoWeek=21

Semana financeira no padrão ISO. Deve ser um número inteiro entre 1 e 53 e existir no ano ISO informado em isoYear.

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "operationalIncentives": [
    ]
}

Lista de pagamentos manuais

Objetivo

Essa consulta faz parte do grupo de 3 relatórios financeiros de repasses do Zé aos estabelecimentos que operam conosco:

  1. Repasses calculados por pedido
  2. Repasses de incentivos operacionais semanais
  3. Repasses de pagamentos manuais

Essa consulta retorna, de forma paginada, o item 3: os pagamentos manuais lançados para um estabelecimento (merchantId) em um período financeiro. O intervalo informado em startDate e endDate é convertido em semanas ISO fechadas, e a resposta agrupa os lançamentos por semana financeira.

"Pagamentos manuais" são ajustes e correções aplicadas à restituição financeira de PDVs. Podem ser relativos a incentivos sazonais (como Páscoa, Carnaval e Natal), correções retroativas de pagamentos, adicionais de frete em períodos específicos e outras questões pontuais. Esses ajustes podem ser positivos (adicionando valor à restituição) ou negativos (realizando deduções).

A resposta traz a lista de ajustes lançados com competência financeria nas semanas ISO consultadas. Semanas sem lançamentos também são preservadas na resposta com entries: [].

Caso haja dúvidas sobre conceitos financeiros ou demais repasses, consulte:

Quando usar

Utilize este endpoint quando:

  • For necessário consultar lançamentos financeiros manuais de um estabelecimento.
  • Houver um merchantId válido ao qual o parceiro tenha acesso.
  • O período de consulta estiver definido por startDate e endDate, ambos no formato YYYY-MM-DD.
  • O período estiver dentro das últimas 5 semanas ISO fechadas.
  • For desejável paginar os lançamentos retornados usando page e pageSize.
  • O objetivo for apoiar conciliação financeira semanal de ajustes manuais do PDV.

Quando NÃO usar

Este endpoint não deve ser utilizado para:

  • Consultar repasses financeiros calculados pedido a pedido; para isso, use GET /merchants/{merchantId}/reimbursements/orders/summaries.
  • Consultar incentivos operacionais semanais; para isso, use GET /merchants/{merchantId}/reports/operational-incentives.
  • Consultar detalhes completos de um pedido específico.
  • Acompanhar o ciclo de vida operacional do pedido em tempo real.
  • Criar, atualizar, cancelar ou restaurar pedidos.
  • Obter a visão financeira completa do seller.
  • Consultar a semana atual enquanto ela ainda está em andamento.
  • Consultar mais de 5 semanas ISO em uma única chamada.
  • Consultar períodos que gerem semanas ISO em anos diferentes.

Importante

Requer header Authorization: Bearer <token> e o parceiro deve ter permissão sobre o merchantId consultado.

Os campos startDate e endDate são obrigatórios e devem ser enviados no formato YYYY-MM-DD, por exemplo 2026-06-08. Valores com horário completo, como 2026-06-08T00:00:00.000Z, não fazem parte do contrato deste endpoint.

Como o período é interpretado:

  • A API usa startDate e endDate para descobrir quais semanas ISO fazem parte do intervalo informado.
  • Uma semana ISO começa na segunda-feira e termina no domingo.
  • A semana atual nunca fica disponível enquanto ainda está em andamento.
  • A semana imediatamente anterior à data da consulta é a semana mais recente permitida.
  • O período pode cobrir, no máximo, as últimas 5 semanas ISO fechadas.
  • O período informado deve gerar semanas ISO pertencentes a um único ano ISO.
  • Como a busca é feita por semana ISO, a API consulta as semanas inteiras selecionadas.

Exemplo: startDate=2026-06-08 e endDate=2026-06-25 selecionam as semanas ISO 24, 25 e 26 de 2026. A resposta traz isoYear no topo e cada grupo semanal em manualPaymentWeeks.

Paginação:

  • page é opcional, inicia em 1 e usa 1 como valor padrão.
  • pageSize é opcional, usa 100 como valor padrão e aceita valores entre 1 e 200.
  • O campo pageInfo.hasNextPage indica se há mais páginas disponíveis.

Valores monetários são retornados como objetos com value e currency. Para este endpoint, a moeda retornada é BRL.

Campos retornados:

  • merchantId: estabelecimento consultado.
  • startDate: data inicial consultada.
  • endDate: data final consultada.
  • isoYear: ano ISO das semanas financeiras retornadas.
  • manualPaymentWeeks: lista de semanas ISO consultadas.
  • manualPaymentWeeks[].isoWeek: semana financeira no padrão ISO.
  • manualPaymentWeeks[].entries: lançamentos manuais daquela semana. Pode ser uma lista vazia.
  • entries[].description: descrição do lançamento manual.
  • entries[].type: tipo do lançamento manual retornado pela API.
  • entries[].amount: valor monetário do lançamento manual.
  • pageInfo: informações de paginação da consulta.
sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  participant Financeiro as Motor financeiro
  Parceiro->>API: GET manual-payments com merchantId, startDate, endDate e paginação
  API->>API: Valida permissao e janela das semanas ISO fechadas
  API->>Financeiro: Consulta lançamentos manuais por ano ISO e semanas
  Financeiro-->>API: semanas com lançamentos manuais
  API-->>Parceiro: 200 com manualPaymentWeeks e pageInfo
path Parameters
merchantId
required
string
Example: 1234

O id do estabelecimento

query Parameters
startDate
required
string <date>
Example: startDate=2026-06-08

Data inicial do período financeiro no formato YYYY-MM-DD. A API usa startDate e endDate para selecionar semanas ISO completas; somente semanas ISO já fechadas podem ser consultadas.

endDate
required
string <date>
Example: endDate=2026-06-25

Data final do período financeiro no formato YYYY-MM-DD. Deve gerar semanas ISO no mesmo ano de startDate; o período pode cobrir, no máximo, as últimas 5 semanas ISO fechadas.

page
integer >= 1
Default: 1

O número da página, iniciando em 1.

pageSize
integer >= 1
Default: 100

O número de itens por página.

header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
{
  • "merchantId": "32",
  • "startDate": "2026-06-08",
  • "endDate": "2026-06-25",
  • "isoYear": 2026,
  • "manualPaymentWeeks": [
    ],
  • "pageInfo": {
    }
}

Webhooks

Sobre Webhooks

Os endpoints do grupo Webhooks permitem consultar e criar/atualizar a configuração de entrega de eventos para a URL do seu sistema.

Configurações

Quando active está habilitado, o Zé passa a enviar eventos para a URL que o voce configurou; com active desabilitado, não há envio para esse endpoint.

Além de active habilitado, é necessário definir quais eventos você deseja receber. Use o PATCH /webhooks e configure os eventos no campo subscribedEvents.

Política de resposta HTTP, retries e acknowledgment

Em caso de entrega bem-sucedida — ou seja, enviamos o evento para a URL configurada e ela retornou sucesso —, o evento é tratado como consumido, então é feito o acknowledgment e deixa de aparecer no polling do grupo Events.

Abaixo estão os casos que seguimos em cada status de resposta que veio da sua API:

  • Qualquer status 2xx é interpretado como processamento com sucesso; nesse caso fazemos o ack do evento (ele não volta no polling).
  • Se a sua URL responder 404, não realizamos novas tentativas de envio: consideramos que a rota não existe no endpoint configurado.
  • Para qualquer outro status de erro (resposta que não seja 2xx e que não seja esse caso de 404), realizamos até 3 tentativas de entrega.

Validação de autenticidade do evento

Nas requisições HTTP para a sua API são enviados os headers X-App-Signature e X-App-Timestamp.

O X-App-Timestamp é o instante do envio em segundos (timestamp Unix), útil por exemplo para limitar janelas de replay no seu lado.

O X-App-Signature é a assinatura de integridade da requisição: calculada com SHA-256 sobre o timestamp e o payload bruto do JSON recebidos no corpo da requisição, usando como segredo o valor hash obtido na criação do webhook via PATCH /webhooks. O cabeçalho costuma seguir o padrão sha256=<digest_hexadecimal>.

Para validar, reproduza o digest com o timestamp + corpo bruto ({timestamp}.{body}) e o mesmo segredo hash, compare com o valor em X-App-Signature (após o prefixo sha256=) e só então processe o evento.

Quando usar os endpoints Webhooks?

  • Quando quiser receber notificações em tempo real na sua própria URL em vez de depender só de consultas periódicas.
  • Para ativar ou pausar o envio (active), alterar a URL ou ajustar os tipos de evento (subscribedEvents no PATCH; na resposta e na listagem, subscriptions).
  • Para obter a configuração atual (incluindo hash para validação de assinatura), use a listagem.

Como os endpoints de Webhooks se relacionam

O fluxo típico é definir ou atualizar a configuração com PATCH /webhooks e, quando necessário, consultar o estado com GET /webhooks. Após a primeira criação, guarde o hash retornado para validar o cabeçalho X-App-Signature nas entregas.

flowchart TD
  D["POST na sua URL quando active = true"]
  D --> R{"Status HTTP?"}
  R -->|2xx| A["Ack — evento some do polling"]
  R -->|404| N["Sem retry — rota inexistente"]
  R -->|Outro erro| T["Até 3 tentativas de envio"]

Configurar webhook

Objetivo

Registrar ou atualizar a configuração de webhook do cliente autenticado na Seller Public API: URL de entrega dos eventos, se o webhook está ativo e quais categorias de eventos o parceiro deseja receber.

Quando usar

Quando o parceiro optar por notificações enviadas pela plataforma para um endpoint próprio em substituição ao fluxo de polling.

Quando NÃO usar

Não usar apenas para ler a configuração atual — para isso utilize GET /webhooks. Este endpoint não entrega a fila de eventos; ele apenas persiste a política de entrega (URL, ativo, inscrições).

Importante

Cada credencial de cliente mantém uma única configuração de webhook (comportamento de upsert). Na primeira criação, a resposta inclui o campo hash (segredo em hexadecimal) usado para validar entregas no seu endpoint; nas atualizações seguintes, o hash não é devolvido no corpo — armazene o segredo com segurança na primeira resposta bem-sucedida. O campo endpoint é obrigatório e deve ser uma URI válida. É necessário header Authorization com token válido para a API.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: PATCH /webhooks
  API-->>Parceiro: 200 — configuração persistida
header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Request Body schema: application/json
endpoint
required
string <uri>

URL que receberá as notificações do webhook.

active
boolean

Indica se o webhook está ativo. Se omitido, o padrão no registro é false.

subscribedEvents
Array of strings (WebhookSubscriptionType)
Items Value: "ORDER_EVENTS"

Lista de tipos de eventos inscritos. Se omitido, a lista fica vazia.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
  • "hash": "string",
  • "endpoint": "http://example.com",
  • "active": true,
  • "subscriptions": [
    ]
}

Listar webhook do cliente

Objetivo

Consultar a configuração de webhook associada ao cliente autenticado na Seller Public API.

Quando usar

Para exibir ou auditar URL, estado ativo/inativo e inscrições de eventos em painéis ou ferramentas internas. Para confirmar se já existe webhook cadastrado antes de um PATCH /webhooks, ou para recuperar o hash quando a configuração já existia e o segredo ainda é o mesmo persistido na plataforma.

Quando NÃO usar

Não lista eventos como no GET - events:polling. Para criar ou alterar as configurações do webhook, use PATCH /webhooks.

Importante

Se não houver registro, a resposta é um array vazio. Quando há configuração, a API retorna um array com exatamente um objeto contendo identificação do cliente, segredo, endpoint, indicador de ativo e lista de inscrições. Requer header Authorization com token válido.

sequenceDiagram
  participant Parceiro as Seu sistema
  participant API as Zé Seller Public API
  Parceiro->>API: GET /webhooks
  API-->>Parceiro: 200 — array com 0 ou 1 item
header Parameters
Authorization
required
string

token de autenticação para acessar o recurso

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Changelog

2026-08-24

  • Endpoint(s) impactado(s): GET /orders/{orderNumber}

  • Tipo de mudança: Melhoria

  • Descrição: A documentação pública do endpoint de consulta de pedido passa a descrever as informações necessárias para edição de itens: a preferência do cliente em observations (valores Substituir por item similar ou Cancelar o item.) e o identificador de categoria em items[].category.id, necessário para substituir um item em falta por outro da mesma categoria.

  • 🔹 Antes vs Depois

    Antes: A documentação do retorno de pedido não detalhava como interpretar observations nem o uso de items[].category.id no fluxo de edição de itens.

    Depois: A documentação passa a explicar os valores possíveis de observations e como utilizar items[].category.id ao substituir itens em falta por outro da mesma categoria.

  • 🔹 Impacto para parceiros: Nenhum impacto — não há alteração no contrato de requisição ou resposta; apenas documentação adicional sobre campos já presentes no esquema.

2026-07-28

  • Endpoint(s) impactado(s): GET /merchants/{merchantId}/menu/items

  • Tipo de mudança: Melhoria

  • Descrição: Revertida a alteração de documentação do endpoint de listagem paginada de itens do cardápio: as referências ao prefixo /v2 foram removidas e o caminho documentado volta a ser GET /merchants/{merchantId}/menu/items.

  • 🔹 Antes vs Depois

    Antes: Documentado como GET /v2/merchants/{merchantId}/menu/items (com o prefixo /v2).

    Depois: Documentação revertida para GET /merchants/{merchantId}/menu/items, sem o prefixo /v2.

  • 🔹 Impacto para parceiros: Nenhum impacto — não há alteração no contrato de requisição ou resposta; apenas a documentação do caminho foi corrigida para refletir o endereço real do endpoint.

2026-07-15

  • Endpoint(s) impactado(s): GET /merchants/{merchantId}/reports/manual-payments

  • Tipo de mudança: Nova feature

  • Descrição: A documentação pública da API passa a incluir o endpoint de pagamentos manuais, com detalhes de rota, parâmetros e estrutura de resposta para uso por parceiros. O endpoint permite consultar, de forma paginada, os pagamentos manuais lançados para um estabelecimento em um período financeiro, agrupados por semana ISO.

  • 🔹 Antes vs Depois

    Antes: O endpoint de pagamentos manuais não estava documentado na especificação pública da API.

    Depois:

{
  "merchantId": "string",
  "startDate": "string",
  "endDate": "string",
  "isoYear": 0,
  "manualPaymentWeeks": [
    {
      "isoWeek": 0,
      "entries": [
        {
          "description": "string",
          "type": "string",
          "amount": {
            "value": 0,
            "currency": "BRL"
          }
        }
      ]
    }
  ],
  "pageInfo": {
    "currentPage": 0,
    "pageSize": 0,
    "totalItems": 0,
    "hasNextPage": true
  }
}
  • 🔹 Impacto para parceiros: Ajuste opcional — parceiros que precisam consultar pagamentos manuais lançados para o estabelecimento podem agora utilizar o endpoint documentado; não há alteração em contratos existentes.

2026-07-14

  • Endpoint(s) impactado(s): GET /v2/merchants/{merchantId}/menu/items

  • Tipo de mudança: Melhoria

  • Descrição: Corrigida a documentação do endpoint de listagem paginada de itens do cardápio para incluir o prefixo /v2. O endpoint e seu contrato de requisição e resposta não foram alterados.

  • 🔹 Antes vs Depois

    Antes: Documentado como GET /merchants/{merchantId}/menu/items (sem o prefixo /v2).

    Depois: Documentação corrigida para GET /v2/merchants/{merchantId}/menu/items, refletindo o caminho real do endpoint.

  • 🔹 Impacto para parceiros: Nenhum impacto — não há alteração no contrato de requisição ou resposta; apenas a documentação do caminho foi corrigida.

2026-06-22

  • Endpoint(s) impactado(s): GET /merchants/{merchantId}/reports/operational-incentives

  • Tipo de mudança: Nova feature

  • Descrição: A documentação pública da API passa a incluir o endpoint de incentivos operacionais, com detalhes de rota, parâmetros e estrutura de resposta para uso por parceiros.

  • 🔹 Antes vs Depois

    Antes: O endpoint de incentivos operacionais não estava documentado na especificação pública da API.

    Depois:

{
  "operationalIncentives": [
    {
      "amountPerOrder": {
        "value": 0,
        "currency": "BRL"
      },
      "totalAmount": {
        "value": 0,
        "currency": "BRL"
      },
      "validOrders": 0
    }
  ]
}
  • 🔹 Impacto para parceiros: Ajuste opcional — parceiros que precisam consultar dados de incentivos operacionais podem agora utilizar o endpoint documentado; não há alteração em contratos existentes.

2026-06-16

  • Endpoint(s) impactado(s): GET /merchants/{merchantId}/reimbursements/orders/summaries

  • Tipo de mudança: Nova feature

  • Descrição: A documentação pública da API passa a incluir o endpoint de resumos de pedidos para reembolso, com detalhes de rota, parâmetros e estrutura de resposta para uso por parceiros.

  • 🔹 Antes vs Depois

    Antes: O endpoint de resumos de pedidos para reembolso não estava documentado na especificação pública da API.

    Depois:

{
  "merchantId": "string",
  "startDate": "string",
  "endDate": "string",
  "orders": [
    {
      "displayId": "string",
      "createdAt": "string",
      "total": {
        "otherFees": {
          "value": 0,
          "currency": "BRL"
        },
        "discount": {
          "value": 0,
          "currency": "BRL"
        },
        "orderReimbursement": {
          "value": 0,
          "currency": "BRL"
        }
      },
      "otherFees": [
        {
          "type": "DELIVERY_FEE",
          "price": {
            "value": 0,
            "currency": "BRL"
          }
        }
      ],
      "discounts": [
        {
          "description": "string",
          "amount": {
            "value": 0,
            "currency": "BRL"
          }
        }
      ],
      "extensions": {
        "financialDetails": {
          "isoWeek": 0,
          "isoYear": 0
        }
      }
    }
  ],
  "pageInfo": {
    "currentPage": 0,
    "pageSize": 0,
    "totalItems": 0,
    "hasNextPage": true
  }
}
  • 🔹 Impacto para parceiros: Ajuste opcional — parceiros que precisam consultar resumos financeiros de pedidos para fins de reembolso podem agora utilizar o endpoint documentado; não há alteração em contratos existentes.

2026-05-28

  • Endpoint(s) impactado(s): GET /orders/{orderNumber} PUT /orders/{orderNumber}/items

  • Tipo de mudança: Nova feature

  • Descrição: O campo hasLimitedPromotion passa a integrar o esquema de itens do pedido: na resposta de consulta de pedido (GET /orders/{orderNumber}), cada item do array items pode indicar se possui promoção limitada por quantidade; no payload de atualização de itens (PUT /orders/{orderNumber}/items), o campo hasLimitedPromotion pode ser enviado em removedItems para identificar itens com esse tipo de promoção.

  • 🔹 Antes vs Depois

    Antes:

{
  "id": 0,
  "index": 0,
  "name": "string",
  "externalCode": "string",
  "category": {
    "id": 0
  },
  "unit": "UNIT",
  "quantity": 0,
  "unitPrice": {
    "value": 0,
    "currency": "string"
  },
  "totalPrice": {
    "value": 0,
    "currency": "string"
  }
}

Depois:

{
  "id": 0,
  "index": 0,
  "name": "string",
  "externalCode": "string",
  "category": {
    "id": 0
  },
  "unit": "UNIT",
  "quantity": 0,
  "hasLimitedPromotion": true,
  "unitPrice": {
    "value": 0,
    "currency": "string"
  },
  "totalPrice": {
    "value": 0,
    "currency": "string"
  }
}
  • 🔹 Impacto para parceiros: Ajuste opcional — o campo hasLimitedPromotion passa a estar disponível em cada item retornado por GET /orders/{orderNumber} e pode ser informado nos itens de removedItems em PUT /orders/{orderNumber}/items; integrações existentes não precisam de alteração, mas podem consumir ou enviar o novo campo para identificar e tratar promoções limitadas por quantidade.

2026-05-05

  • Endpoint(s) impactado(s): GET /merchants/{merchantId}/orders/history

  • Tipo de mudança: Nova feature

  • Descrição: A documentação pública da API passa a incluir o endpoint de histórico de pedidos finalizados do estabelecimento, com detalhes de rota, parâmetros e estrutura de resposta para uso por parceiros.

  • 🔹 Antes vs Depois

    Antes: O endpoint de histórico de pedidos não estava documentado na especificação pública da API.

    Depois:

{
  "page": 0,
  "pageSize": 0,
  "hasNext": true,
  "items": [
    {
      "number": "string",
      "date": "string",
      "customerName": "string",
      "status": "CREATED",
      "deliveryType": "DELIVERY",
      "payment": {
        "type": "CASH",
        "category": "PENDING"
      },
      "total": 0,
      "subTotal": 0,
      "discount": 0,
      "discountDescription": "string",
      "shippingFee": 0,
      "rating": {
        "value": 0,
        "description": "string",
        "reasons": [
          "string"
        ]
      },
      "customerComment": "string",
      "items": [
        {
          "name": "string",
          "quantity": 0,
          "unitPrice": 0,
          "subTotal": 0
        }
      ],
      "statusHistory": [
        {
          "status": "CREATED",
          "date": "string",
          "description": "string",
          "reasons": [
            "string"
          ]
        }
      ]
    }
  ]
}
  • 🔹 Impacto para parceiros: Ajuste opcional — parceiros que precisam consultar o histórico de pedidos finalizados de um estabelecimento podem agora utilizar o endpoint documentado; não há alteração em contratos existentes.

2026-05-04

  • Endpoint(s) impactado(s): GET /merchants/{merchantId}/menu/items

  • Tipo de mudança: Nova feature

  • Descrição: O payload de resposta da listagem paginada de itens do cardápio passa a incluir a propriedade isPortfolioIdeal, indicando se o item é considerado ideal para o portfólio do parceiro.

  • 🔹 Antes vs Depois

    Antes:

{
  "productId": 0,
  "externalProductId": "string",
  "name": "string",
  "description": "string",
  "status": "AVAILABLE",
  "image": {
    "URL": "string"
  },
  "ean": "string",
  "isFavorite": true,
  "brand": {
    "id": "string",
    "name": "string"
  },
  "categories": [
    {
      "id": "string",
      "name": "string"
    }
  ],
  "priceDetails": {
    "price": 0,
    "discount": {
      "endsAt": "string",
      "id": "string",
      "startsAt": "string",
      "values": [
        {
          "value": 0,
          "finalUnitPrice": 0,
          "minQuantity": 0,
          "maxQuantity": 0,
          "valueType": "FIXED_AMOUNT"
        }
      ]
    },
    "sellerDiscount": {
      "active": true,
      "percentageValues": [
        0
      ],
      "current": {
        "createdAt": "string",
        "discountPercentageValue": 0,
        "id": "string",
        "scheduleType": "ALWAYS",
        "active": true,
        "reason": "string",
        "updatedAt": "string",
        "username": "string"
      }
    },
    "takeRateSeller": {
      "active": true,
      "feeAmount": 0,
      "feePercentage": 0,
      "netPrice": 0
    }
  }
}

Depois:

{
  "productId": 0,
  "externalProductId": "string",
  "name": "string",
  "description": "string",
  "status": "AVAILABLE",
  "image": {
    "URL": "string"
  },
  "ean": "string",
  "isFavorite": true,
  "isPortfolioIdeal": true,
  "brand": {
    "id": "string",
    "name": "string"
  },
  "categories": [
    {
      "id": "string",
      "name": "string"
    }
  ],
  "priceDetails": {
    "price": 0,
    "discount": {
      "endsAt": "string",
      "id": "string",
      "startsAt": "string",
      "values": [
        {
          "value": 0,
          "finalUnitPrice": 0,
          "minQuantity": 0,
          "maxQuantity": 0,
          "valueType": "FIXED_AMOUNT"
        }
      ]
    },
    "sellerDiscount": {
      "active": true,
      "percentageValues": [
        0
      ],
      "current": {
        "createdAt": "string",
        "discountPercentageValue": 0,
        "id": "string",
        "scheduleType": "ALWAYS",
        "active": true,
        "reason": "string",
        "updatedAt": "string",
        "username": "string"
      }
    },
    "takeRateSeller": {
      "active": true,
      "feeAmount": 0,
      "feePercentage": 0,
      "netPrice": 0
    }
  }
}
  • 🔹 Impacto para parceiros: Ajuste opcional — a propriedade isPortfolioIdeal passa a estar disponível em cada item retornado; integrações existentes não precisam de alteração, mas podem consumir o novo campo para sinalizar recomendações de portfólio.



  • Endpoint(s) impactado(s): GET /webhooks PATCH /webhooks

  • Tipo de mudança: Nova feature

  • Descrição: A documentação pública da API passa a incluir os endpoints de gerenciamento de webhooks, permitindo que parceiros consultem e configurem a URL de destino dos eventos de pedido.

  • 🔹 Antes vs Depois

    Antes: Endpoints não documentados na especificação pública.

    Depois:

[
  {
    "clientId": "string",
    "hash": "string",
    "endpoint": "string",
    "active": true,
    "subscriptions": [
      "ORDER_EVENTS"
    ]
  }
]
  • 🔹 Impacto para parceiros: Ajuste opcional — parceiros que desejam receber eventos de pedido via webhook podem agora consultar (GET /webhooks) e configurar (PATCH /webhooks) o endpoint de destino conforme o contrato publicado.

2026-04-23

  • Tipo de mudança: Nova feature

  • Descrição: A documentação pública passa a oferecer o fluxo Quero integrar com o Zé: nova opção na navegação do portal que abre um modal com formulário para manifestação de interesse em integrar com o Zé Delivery.

  • 🔹 Antes vs Depois

    Antes: No portal da documentação da API não existia um caminho dedicado para quem deseja iniciar o processo de integração.

    Depois: Passa a existir uma entrada explícita no menu da documentação que abre, em modal, o formulário de interesse em integração.

  • 🔹 Impacto para parceiros: Nenhum impacto — não há alteração em endpoints, autenticação ou payloads; apenas conteúdo e experiência complementares na documentação.

2026-04-16

  • Tipo de mudança: Melhoria

  • Descrição: A documentação pública da API passa a incluir uma seção de perguntas frequentes (FAQ), com respostas às dúvidas mais comuns de integração.

  • 🔹 Antes vs Depois

    Antes: Não havia FAQ publicado junto à documentação da API.

    Depois: Passa a existir material de FAQ acessível na documentação, alinhado às dúvidas recorrentes de quem integra.

  • 🔹 Impacto para parceiros: Nenhum impacto — não há mudança de rotas, verbos HTTP nem de contratos de request ou response; apenas documentação adicional.

2026-04-06

  • Endpoint(s) impactado(s): GET /merchants/{merchantId}/menu/items

  • Tipo de mudança: Breaking change

  • Descrição: Na listagem paginada de itens do cardápio, quando a resposta incluir o objeto current em priceDetails.sellerDiscount, o contrato público passa a exigir a propriedade scheduleType, com valores definidos pelo enum publicado no esquema.

  • 🔹 Antes vs Depois

    Antes:

{
  "current": {
    "createdAt": "string",
    "discountPercentageValue": 0,
    "id": "string",
    "active": true,
    "reason": "string",
    "updatedAt": "string",
    "username": "string"
  }
}

Depois:

{
  "current": {
    "createdAt": "string",
    "discountPercentageValue": 0,
    "id": "string",
    "scheduleType": "ALWAYS",
    "active": true,
    "reason": "string",
    "updatedAt": "string",
    "username": "string"
  }
}
  • 🔹 Impacto para parceiros: Ajuste obrigatório — quem consome priceDetails.sellerDiscount.current precisa aceitar de forma estável a chave scheduleType e interpretar os valores enumerados conforme o contrato, sempre que current estiver presente.
  • Breaking change (se aplicável): Integrações que fixam o conjunto de campos de current, ignoram propriedades desconhecidas ou falham ao deserializar chaves novas podem quebrar ao receber scheduleType. Atualize leitura ou validação da resposta para tratar scheduleType como parte de current, conforme o esquema publicado.

FAQ

Visão geral

O que é a Seller Public API do Zé Delivery?

A Seller Public API é a interface oficial que permite que parceiros integrem seus sistemas ao Zé Delivery, possibilitando operações como:

  • Recebimento e gestão de pedidos
  • Atualização de catálogo (produtos, preços, disponibilidade)
  • Integração logística
  • Consulta de eventos e status
  • Gestão de lojas

Ela foi projetada para suportar múltiplos modelos de negócio e integrações escaláveis.

Quem pode se integrar com o Zé Delivery?

Empresas que possuam, obrigatoriamente:

  • Sistema próprio (OMS, WMS, ERP, marketplace, etc.)
  • Capacidade técnica de integração via API, a ser validada pelo time técnico do Zé Delivery
  • Acordo comercial com o Zé Delivery

Por onde começar

Como iniciar uma integração com o Zé Delivery?

O processo segue estas etapas:

  1. Aprovação da integração pelo time comercial do Zé
  2. Pré-onboarding — validação técnica pelo time técnico do Zé
  3. Kickoff técnico — liberação de credenciais em ambiente de testes
  4. Desenvolvimento e teste da integração — pelo integrador, conforme a documentação, em ambiente de testes
  5. Homologação e aprovação dos testes — pelo time técnico do Zé
  6. Liberação de credenciais em produção
  7. Go-live controlado — alinhado com o time comercial do Zé
  8. Rollout — alinhado com o time comercial do Zé

Existe ambiente de testes?

Sim. URLs base:

  • Development: https://seller-public-api.release.ze.delivery
  • Production: https://seller-public-api.ze.delivery

Preciso falar com o time do Zé para integrar?

Sim. É necessário alinhamento com o time comercial para aprovação da integração. Se aprovado, o time comercial direciona o contato do time técnico para o início das atividades.

Sobre a API

Como obtenho minhas credenciais?

As credenciais em ambiente de teste e de produção são fornecidas pelo time técnico do Zé durante o onboarding.

Como funciona a autenticação?

A Seller Public API utiliza OAuth2 no fluxo client_credentials.

Para se autenticar:

  1. Envie client_id e client_secret para o endpoint /auth
  2. A API retornará um access_token
  3. Utilize esse token nas próximas requisições

👉 O token precisa ser gerado apenas uma vez e possui validade de 24 horas. Nesse período, não é necessário autenticar novamente a cada requisição.

Quando o token expirar:

  1. Chame novamente o endpoint /auth
  2. Gere um novo access_token
  3. Continue utilizando a API normalmente

Boas práticas:

  • Armazene (cache) o token no seu sistema
  • Evite gerar token a cada requisição
  • Monitore o tempo de expiração (expire_in)

Erros comuns:

  • 401 Unauthorized — token inválido ou expirado

Como funciona o processo de homologação da integração?

  1. O parceiro recebe credenciais de ambiente de desenvolvimento (dev)
  2. Realiza a integração com os endpoints liberados para o seu escopo
  3. Executa os testes de integração de forma independente
  4. Quando estiver pronto, agenda uma validação com o time do Zé
  5. Durante a validação, são realizados testes em conjunto (em tempo real)

Se aprovado:

  • O time técnico do Zé comunica o time comercial sobre a homologação
  • Após aprovação do comercial, são liberadas as credenciais de produção

👉 Esse processo reforça qualidade, segurança e estabilidade antes do go-live.

Quais são os tipos de resposta da API (sync vs async)?

A API trabalha com dois tipos de resposta:

Síncrona (sync)

  • Retorno imediato da operação
  • Status HTTP típico: 200 OK

Assíncrona (async)

  • A requisição é aceita para processamento e finalizada posteriormente
  • Status HTTP típico: 202 Accepted

👉 Em fluxos assíncronos, acompanhe o processamento via eventos (polling).

Como funciona o catálogo no Zé Delivery?

Existem dois modelos:

Catálogo padrão do Zé (fluxo padrão)

  • Catálogo interno, gerenciado pelo Zé Delivery
  • Utilizado na maioria das integrações

Catálogo externo do parceiro (em validação)

  • O parceiro pode criar e gerenciar o próprio catálogo via API
  • Usado em integrações específicas (ex.: novas verticais ou modelos de negócio)

👉 O uso de catálogo externo depende de validação e alinhamento com o time do Zé.

Por que não tenho acesso a todos os endpoints?

A API segue o princípio de least privilege: você só acessa os endpoints necessários, conforme o escopo de integração alinhado com o time do Zé Delivery.

Posso solicitar novos acessos?

Sim, mediante alinhamento com os times comercial e técnico do Zé.

Monitoramento

Como monitorar minha integração?

Recomenda-se acompanhamento diário, com alertas para instabilidade ou erros, observando:

  • Taxa de erro
  • Latência
  • Volume de requisições
  • Status de pedidos

Existe uma status page da API do Zé Delivery?

Atualmente não disponibilizamos uma status page pública para acompanhamento da disponibilidade da API.

👉 Estamos evoluindo essa frente; futuramente será disponibilizada uma status page para parceiros, com visibilidade sobre:

  • Disponibilidade dos serviços
  • Incidentes em andamento
  • Histórico de indisponibilidades

Essa evolução faz parte da melhoria de observabilidade e transparência da API para o ecossistema de parceiros.

Como fico sabendo de mudanças na API?

  • Hoje: via Changelog nesta documentação.
  • Futuro: versionamento e alertas automáticos.