Webhooks
Endereço base: https://api.denaryx.com/admin/2026-10. Exemplos e regras no guia Webhooks. Os erros seguem o formato comum. A especificação inteira: baixar o OpenAPI.
GET /webhooks
Os webhooks da integração
Escopo Qualquer token da loja
Os webhooks da integração do token (no máximo 10). Cabem numa página só.
Resposta
200 Sucesso. (WebhookList)
Os campos da resposta (9)
| Campo | Tipo | Descrição |
|---|---|---|
data | lista de Webhook | |
data[].id | string (uuid) | |
data[].url | string | |
data[].events | lista de string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized, order.prescription_received, product.created, product.updated, product.deleted, inventory.updated, theme.published, customer.created, customer.updated, customer.deleted. |
data[].status | string | active: recebe os eventos; paused: pausado por quem integra; disabled: desligado depois de 3 dias falhando (reative com PATCH status=active).Um de: active, paused, disabled. |
data[].failing_since | string (data e hora) ou null | Desde quando as entregas falham sem nenhuma dar certo. |
data[].created_at | string (data e hora) | |
data[].updated_at | string (data e hora) | |
next_cursor | string ou null |
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
POST /webhooks
Cadastra um webhook
Escopo Qualquer token da loja
O endereço https que recebe os eventos escolhidos, cada um num POST assinado com Denaryx-Signature. Cada evento pede o escopo de leitura do recurso dele (sem ele, 403). A resposta traz o segredo da assinatura, que não aparece de novo.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Corpo application/json: WebhookCreate
| Campo | Tipo | Descrição |
|---|---|---|
urlobrigatório | string | Até 2000 caracteres. |
eventsobrigatório | lista de string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized, order.prescription_received, product.created, product.updated, product.deleted, inventory.updated, theme.published, customer.created, customer.updated, customer.deleted.Pelo menos 1 item. |
Resposta
201 Sucesso. (WebhookWithSecret)
Os campos da resposta (8)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
url | string | |
events | lista de string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized, order.prescription_received, product.created, product.updated, product.deleted, inventory.updated, theme.published, customer.created, customer.updated, customer.deleted. |
status | string | active: recebe os eventos; paused: pausado por quem integra; disabled: desligado depois de 3 dias falhando (reative com PATCH status=active).Um de: active, paused, disabled. |
failing_since | string (data e hora) ou null | Desde quando as entregas falham sem nenhuma dar certo. |
created_at | string (data e hora) | |
updated_at | string (data e hora) | |
secret | string | O segredo da assinatura, só na criação e na troca. Guarde: ele não aparece de novo, nem na repetição com a mesma Idempotency-Key (troque com PATCH rotate_secret=true se perder). |
Erros
400A chamada veio com campos inválidos; os campos recusados vão em fields (invalid_request).401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).409O estado do recurso não permite a mudança, ou ele mudou desde a leitura (conflict).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
GET /webhooks/{id}
Um webhook
Escopo Qualquer token da loja
Sem o segredo, que só aparece na criação e na troca.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id do webhook. |
Resposta
200 Sucesso. (Webhook)
Os campos da resposta (7)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
url | string | |
events | lista de string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized, order.prescription_received, product.created, product.updated, product.deleted, inventory.updated, theme.published, customer.created, customer.updated, customer.deleted. |
status | string | active: recebe os eventos; paused: pausado por quem integra; disabled: desligado depois de 3 dias falhando (reative com PATCH status=active).Um de: active, paused, disabled. |
failing_since | string (data e hora) ou null | Desde quando as entregas falham sem nenhuma dar certo. |
created_at | string (data e hora) | |
updated_at | string (data e hora) |
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
PATCH /webhooks/{id}
Muda um webhook
Escopo Qualquer token da loja
O endereço, os eventos ou a situação (paused pausa; active reativa, também o desligado por falhas). Com rotate_secret=true, gera um segredo novo, que vem na resposta; o anterior continua assinando junto por 24 horas, para dar tempo de trocar.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id do webhook. |
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Corpo application/json: WebhookUpdate
| Campo | Tipo | Descrição |
|---|---|---|
url | string | Até 2000 caracteres. |
events | lista de string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized, order.prescription_received, product.created, product.updated, product.deleted, inventory.updated, theme.published, customer.created, customer.updated, customer.deleted.Pelo menos 1 item. |
status | string | Um de: active, paused. |
rotate_secret | true |
Resposta
200 Sucesso. (WebhookWithSecret)
Os campos da resposta (8)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
url | string | |
events | lista de string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized, order.prescription_received, product.created, product.updated, product.deleted, inventory.updated, theme.published, customer.created, customer.updated, customer.deleted. |
status | string | active: recebe os eventos; paused: pausado por quem integra; disabled: desligado depois de 3 dias falhando (reative com PATCH status=active).Um de: active, paused, disabled. |
failing_since | string (data e hora) ou null | Desde quando as entregas falham sem nenhuma dar certo. |
created_at | string (data e hora) | |
updated_at | string (data e hora) | |
secret | string | O segredo da assinatura, só na criação e na troca. Guarde: ele não aparece de novo, nem na repetição com a mesma Idempotency-Key (troque com PATCH rotate_secret=true se perder). |
Erros
400A chamada veio com campos inválidos; os campos recusados vão em fields (invalid_request).401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
DELETE /webhooks/{id}
Exclui um webhook
Escopo Qualquer token da loja
As entregas pendentes não saem mais, e o registro delas vai junto.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id do webhook. |
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Resposta
204 Sucesso, sem corpo.
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
POST /webhooks/{id}/test
Envia um evento de teste
Escopo Qualquer token da loja
Um POST assinado com o evento webhook.test, na hora, numa tentativa só: a resposta diz se o endereço respondeu 2xx em até 10 segundos. Vale também para o webhook pausado ou desligado, para conferir o endereço antes de reativar.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id do webhook. |
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Resposta
200 Sucesso. (WebhookTest)
Os campos da resposta (5)
| Campo | Tipo | Descrição |
|---|---|---|
delivery_id | string (uuid) | |
success | boolean | |
response_status | integer ou null | O código que o endereço respondeu; null quando nem respondeu. |
error | string ou null | |
duration_ms | integer |
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
Os eventos
O POST que chega ao endereço do webhook a cada evento assinado. Responda 2xx em até 10 segundos e confira a assinatura antes de usar o corpo (ver A assinatura).
Os cabeçalhos de toda entrega
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
Denaryx-Signatureobrigatório | cabeçalho | string | t=<segundos desde 1970>,v1=<HMAC-SHA256 em hexadecimal de "t.corpo", com o segredo>. Na troca do segredo, por 24 horas vêm dois v1. |
Denaryx-Event-Idobrigatório | cabeçalho | string | O id do evento: o mesmo em todas as tentativas. |
Denaryx-Event-Typeobrigatório | cabeçalho | string | O tipo do evento. |
Denaryx-Delivery-Idobrigatório | cabeçalho | string | O id da entrega (a do teste é outra a cada envio). |
Denaryx-Api-Versionobrigatório | cabeçalho | string | A versão da API em que o corpo foi montado. |
POST order.created
Corpo: OrderEvent. Quando o evento sai
Os campos do corpo (121)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Order | O pedido como está na hora do envio (pode já ter mudado de novo). |
data.id | string (uuid) | |
data.number | integer | |
data.status | string | Um de: pending_payment, paid, preparing, shipped, delivered, cancelled. |
data.customer | objeto | |
data.customer.id | string (uuid) ou null | |
data.customer.name | string | |
data.customer.email | string | |
data.customer.phone | string | |
data.customer.cpf | string | |
data.shipping_address | objeto | |
data.shipping_address.zip | string | |
data.shipping_address.street | string | |
data.shipping_address.number | string | |
data.shipping_address.complement | string | |
data.shipping_address.neighborhood | string | |
data.shipping_address.city | string | |
data.shipping_address.state | string | |
data.line_items | lista de objeto | |
data.line_items[].id | string (uuid) | |
data.line_items[].key | string ou null | |
data.line_items[].parent_line_id | string (uuid) ou null | |
data.line_items[].group | objeto ou null | |
data.line_items[].group.code | string | |
data.line_items[].group.name | string | |
data.line_items[].properties | objeto | |
data.line_items[].inventory_tracked | boolean | |
data.line_items[].eyes | objeto ou null | |
data.line_items[].eyes.right | integer | |
data.line_items[].eyes.left | integer | |
data.line_items[].variant_id | string (uuid) | |
data.line_items[].title | string | |
data.line_items[].options | lista de string | |
data.line_items[].sku | string ou null | |
data.line_items[].price | integer | |
data.line_items[].quantity | integer | |
data.line_items[].line_price | integer | |
data.line_items[].promotion | string ou null | |
data.line_items[].files | lista de objeto | |
data.line_items[].files[].id | string (uuid) | |
data.line_items[].files[].name | string | |
data.line_items[].files[].content_type | string | |
data.line_items[].files[].size | integer | |
data.line_items[].files[].purpose | string | Um de: general, prescription. |
data.line_items[].files[].url | string (URL) | |
data.line_items[].files[].url_expires_at | string (data e hora) | |
data.line_items[].prescription | objeto ou null | |
data.line_items[].prescription.type | string ou null | Um de: single_vision, progressive, bifocal, reading, plano, contact_lens. |
data.line_items[].prescription.right | objeto ou null | |
data.line_items[].prescription.right.sphere | number | |
data.line_items[].prescription.right.cylinder | number | |
data.line_items[].prescription.right.axis | integer ou null | |
data.line_items[].prescription.right.add | number ou null | |
data.line_items[].prescription.right.base_curve | number ou null | |
data.line_items[].prescription.right.diameter | number ou null | |
data.line_items[].prescription.left | objeto ou null | |
data.line_items[].prescription.left.sphere | number | |
data.line_items[].prescription.left.cylinder | number | |
data.line_items[].prescription.left.axis | integer ou null | |
data.line_items[].prescription.left.add | number ou null | |
data.line_items[].prescription.left.base_curve | number ou null | |
data.line_items[].prescription.left.diameter | number ou null | |
data.line_items[].prescription.pd | objeto ou null | |
data.line_items[].prescription.segment_height | objeto ou null | |
data.line_items[].prescription.segment_height.right | number | |
data.line_items[].prescription.segment_height.left | number | |
data.line_items[].prescription.prism | objeto ou null | |
data.line_items[].prescription.prism.right | objeto ou null | |
data.line_items[].prescription.prism.right.value | number | |
data.line_items[].prescription.prism.right.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.prism.left | objeto ou null | |
data.line_items[].prescription.prism.left.value | number | |
data.line_items[].prescription.prism.left.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.issued_at | string ou null | |
data.line_items[].prescription.doctor | objeto ou null | |
data.line_items[].prescription.doctor.name | string | |
data.line_items[].prescription.doctor.license | string ou null | |
data.line_items[].prescription.note | string ou null | |
data.line_items[].prescription.lens_brand | string ou null | |
data.line_items[].prescription.status | string | Um de: pending, declared, provided, checked. |
data.line_items[].prescription.provided_at | string (data e hora) ou null | |
data.line_items[].prescription.checked_at | string (data e hora) ou null | |
data.line_items[].prescription.declared_at | string (data e hora) ou null | |
data.line_items[].prescription.declaration | string ou null | |
data.line_items[].prescription.store_note | string ou null | |
data.subtotal_price | integer | |
data.shipping_price | integer | |
data.total_discounts | integer | |
data.coupon_code | string ou null | |
data.pix_discount | integer | |
data.total_price | integer | |
data.shipping_line | objeto ou null | |
data.shipping_line.title | string | |
data.shipping_line.carrier | string | |
data.shipping_line.delivery_days | integer | |
data.shipping_line.pickup | objeto ou null | |
data.shipping_line.pickup.address | string | |
data.shipping_line.pickup.instructions | string | |
data.tracking_code | string ou null | |
data.payment | objeto ou null | |
data.payment.method | string | Um de: pix, credit_card, debit_card, boleto. |
data.payment.status | string | Um de: pending, approved, expired, cancelled, declined, refunded, authorized. |
data.payment.amount | integer | |
data.payment.installments | integer ou null | |
data.payment.refunded_at | string (data e hora) ou null | |
data.payment.created_at | string (data e hora) | |
data.invoice | objeto ou null | |
data.invoice.key | string | |
data.invoice.number | string | |
data.invoice.series | string | |
data.invoice.url | string ou null | |
data.invoice.informed_at | string (data e hora) | |
data.paid_at | string (data e hora) ou null | |
data.test | boolean | |
data.anonymized_at | string (data e hora) ou null | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST order.paid
Corpo: OrderEvent. Quando o evento sai
Os campos do corpo (121)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Order | O pedido como está na hora do envio (pode já ter mudado de novo). |
data.id | string (uuid) | |
data.number | integer | |
data.status | string | Um de: pending_payment, paid, preparing, shipped, delivered, cancelled. |
data.customer | objeto | |
data.customer.id | string (uuid) ou null | |
data.customer.name | string | |
data.customer.email | string | |
data.customer.phone | string | |
data.customer.cpf | string | |
data.shipping_address | objeto | |
data.shipping_address.zip | string | |
data.shipping_address.street | string | |
data.shipping_address.number | string | |
data.shipping_address.complement | string | |
data.shipping_address.neighborhood | string | |
data.shipping_address.city | string | |
data.shipping_address.state | string | |
data.line_items | lista de objeto | |
data.line_items[].id | string (uuid) | |
data.line_items[].key | string ou null | |
data.line_items[].parent_line_id | string (uuid) ou null | |
data.line_items[].group | objeto ou null | |
data.line_items[].group.code | string | |
data.line_items[].group.name | string | |
data.line_items[].properties | objeto | |
data.line_items[].inventory_tracked | boolean | |
data.line_items[].eyes | objeto ou null | |
data.line_items[].eyes.right | integer | |
data.line_items[].eyes.left | integer | |
data.line_items[].variant_id | string (uuid) | |
data.line_items[].title | string | |
data.line_items[].options | lista de string | |
data.line_items[].sku | string ou null | |
data.line_items[].price | integer | |
data.line_items[].quantity | integer | |
data.line_items[].line_price | integer | |
data.line_items[].promotion | string ou null | |
data.line_items[].files | lista de objeto | |
data.line_items[].files[].id | string (uuid) | |
data.line_items[].files[].name | string | |
data.line_items[].files[].content_type | string | |
data.line_items[].files[].size | integer | |
data.line_items[].files[].purpose | string | Um de: general, prescription. |
data.line_items[].files[].url | string (URL) | |
data.line_items[].files[].url_expires_at | string (data e hora) | |
data.line_items[].prescription | objeto ou null | |
data.line_items[].prescription.type | string ou null | Um de: single_vision, progressive, bifocal, reading, plano, contact_lens. |
data.line_items[].prescription.right | objeto ou null | |
data.line_items[].prescription.right.sphere | number | |
data.line_items[].prescription.right.cylinder | number | |
data.line_items[].prescription.right.axis | integer ou null | |
data.line_items[].prescription.right.add | number ou null | |
data.line_items[].prescription.right.base_curve | number ou null | |
data.line_items[].prescription.right.diameter | number ou null | |
data.line_items[].prescription.left | objeto ou null | |
data.line_items[].prescription.left.sphere | number | |
data.line_items[].prescription.left.cylinder | number | |
data.line_items[].prescription.left.axis | integer ou null | |
data.line_items[].prescription.left.add | number ou null | |
data.line_items[].prescription.left.base_curve | number ou null | |
data.line_items[].prescription.left.diameter | number ou null | |
data.line_items[].prescription.pd | objeto ou null | |
data.line_items[].prescription.segment_height | objeto ou null | |
data.line_items[].prescription.segment_height.right | number | |
data.line_items[].prescription.segment_height.left | number | |
data.line_items[].prescription.prism | objeto ou null | |
data.line_items[].prescription.prism.right | objeto ou null | |
data.line_items[].prescription.prism.right.value | number | |
data.line_items[].prescription.prism.right.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.prism.left | objeto ou null | |
data.line_items[].prescription.prism.left.value | number | |
data.line_items[].prescription.prism.left.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.issued_at | string ou null | |
data.line_items[].prescription.doctor | objeto ou null | |
data.line_items[].prescription.doctor.name | string | |
data.line_items[].prescription.doctor.license | string ou null | |
data.line_items[].prescription.note | string ou null | |
data.line_items[].prescription.lens_brand | string ou null | |
data.line_items[].prescription.status | string | Um de: pending, declared, provided, checked. |
data.line_items[].prescription.provided_at | string (data e hora) ou null | |
data.line_items[].prescription.checked_at | string (data e hora) ou null | |
data.line_items[].prescription.declared_at | string (data e hora) ou null | |
data.line_items[].prescription.declaration | string ou null | |
data.line_items[].prescription.store_note | string ou null | |
data.subtotal_price | integer | |
data.shipping_price | integer | |
data.total_discounts | integer | |
data.coupon_code | string ou null | |
data.pix_discount | integer | |
data.total_price | integer | |
data.shipping_line | objeto ou null | |
data.shipping_line.title | string | |
data.shipping_line.carrier | string | |
data.shipping_line.delivery_days | integer | |
data.shipping_line.pickup | objeto ou null | |
data.shipping_line.pickup.address | string | |
data.shipping_line.pickup.instructions | string | |
data.tracking_code | string ou null | |
data.payment | objeto ou null | |
data.payment.method | string | Um de: pix, credit_card, debit_card, boleto. |
data.payment.status | string | Um de: pending, approved, expired, cancelled, declined, refunded, authorized. |
data.payment.amount | integer | |
data.payment.installments | integer ou null | |
data.payment.refunded_at | string (data e hora) ou null | |
data.payment.created_at | string (data e hora) | |
data.invoice | objeto ou null | |
data.invoice.key | string | |
data.invoice.number | string | |
data.invoice.series | string | |
data.invoice.url | string ou null | |
data.invoice.informed_at | string (data e hora) | |
data.paid_at | string (data e hora) ou null | |
data.test | boolean | |
data.anonymized_at | string (data e hora) ou null | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST order.updated
Corpo: OrderEvent. Quando o evento sai
Os campos do corpo (121)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Order | O pedido como está na hora do envio (pode já ter mudado de novo). |
data.id | string (uuid) | |
data.number | integer | |
data.status | string | Um de: pending_payment, paid, preparing, shipped, delivered, cancelled. |
data.customer | objeto | |
data.customer.id | string (uuid) ou null | |
data.customer.name | string | |
data.customer.email | string | |
data.customer.phone | string | |
data.customer.cpf | string | |
data.shipping_address | objeto | |
data.shipping_address.zip | string | |
data.shipping_address.street | string | |
data.shipping_address.number | string | |
data.shipping_address.complement | string | |
data.shipping_address.neighborhood | string | |
data.shipping_address.city | string | |
data.shipping_address.state | string | |
data.line_items | lista de objeto | |
data.line_items[].id | string (uuid) | |
data.line_items[].key | string ou null | |
data.line_items[].parent_line_id | string (uuid) ou null | |
data.line_items[].group | objeto ou null | |
data.line_items[].group.code | string | |
data.line_items[].group.name | string | |
data.line_items[].properties | objeto | |
data.line_items[].inventory_tracked | boolean | |
data.line_items[].eyes | objeto ou null | |
data.line_items[].eyes.right | integer | |
data.line_items[].eyes.left | integer | |
data.line_items[].variant_id | string (uuid) | |
data.line_items[].title | string | |
data.line_items[].options | lista de string | |
data.line_items[].sku | string ou null | |
data.line_items[].price | integer | |
data.line_items[].quantity | integer | |
data.line_items[].line_price | integer | |
data.line_items[].promotion | string ou null | |
data.line_items[].files | lista de objeto | |
data.line_items[].files[].id | string (uuid) | |
data.line_items[].files[].name | string | |
data.line_items[].files[].content_type | string | |
data.line_items[].files[].size | integer | |
data.line_items[].files[].purpose | string | Um de: general, prescription. |
data.line_items[].files[].url | string (URL) | |
data.line_items[].files[].url_expires_at | string (data e hora) | |
data.line_items[].prescription | objeto ou null | |
data.line_items[].prescription.type | string ou null | Um de: single_vision, progressive, bifocal, reading, plano, contact_lens. |
data.line_items[].prescription.right | objeto ou null | |
data.line_items[].prescription.right.sphere | number | |
data.line_items[].prescription.right.cylinder | number | |
data.line_items[].prescription.right.axis | integer ou null | |
data.line_items[].prescription.right.add | number ou null | |
data.line_items[].prescription.right.base_curve | number ou null | |
data.line_items[].prescription.right.diameter | number ou null | |
data.line_items[].prescription.left | objeto ou null | |
data.line_items[].prescription.left.sphere | number | |
data.line_items[].prescription.left.cylinder | number | |
data.line_items[].prescription.left.axis | integer ou null | |
data.line_items[].prescription.left.add | number ou null | |
data.line_items[].prescription.left.base_curve | number ou null | |
data.line_items[].prescription.left.diameter | number ou null | |
data.line_items[].prescription.pd | objeto ou null | |
data.line_items[].prescription.segment_height | objeto ou null | |
data.line_items[].prescription.segment_height.right | number | |
data.line_items[].prescription.segment_height.left | number | |
data.line_items[].prescription.prism | objeto ou null | |
data.line_items[].prescription.prism.right | objeto ou null | |
data.line_items[].prescription.prism.right.value | number | |
data.line_items[].prescription.prism.right.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.prism.left | objeto ou null | |
data.line_items[].prescription.prism.left.value | number | |
data.line_items[].prescription.prism.left.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.issued_at | string ou null | |
data.line_items[].prescription.doctor | objeto ou null | |
data.line_items[].prescription.doctor.name | string | |
data.line_items[].prescription.doctor.license | string ou null | |
data.line_items[].prescription.note | string ou null | |
data.line_items[].prescription.lens_brand | string ou null | |
data.line_items[].prescription.status | string | Um de: pending, declared, provided, checked. |
data.line_items[].prescription.provided_at | string (data e hora) ou null | |
data.line_items[].prescription.checked_at | string (data e hora) ou null | |
data.line_items[].prescription.declared_at | string (data e hora) ou null | |
data.line_items[].prescription.declaration | string ou null | |
data.line_items[].prescription.store_note | string ou null | |
data.subtotal_price | integer | |
data.shipping_price | integer | |
data.total_discounts | integer | |
data.coupon_code | string ou null | |
data.pix_discount | integer | |
data.total_price | integer | |
data.shipping_line | objeto ou null | |
data.shipping_line.title | string | |
data.shipping_line.carrier | string | |
data.shipping_line.delivery_days | integer | |
data.shipping_line.pickup | objeto ou null | |
data.shipping_line.pickup.address | string | |
data.shipping_line.pickup.instructions | string | |
data.tracking_code | string ou null | |
data.payment | objeto ou null | |
data.payment.method | string | Um de: pix, credit_card, debit_card, boleto. |
data.payment.status | string | Um de: pending, approved, expired, cancelled, declined, refunded, authorized. |
data.payment.amount | integer | |
data.payment.installments | integer ou null | |
data.payment.refunded_at | string (data e hora) ou null | |
data.payment.created_at | string (data e hora) | |
data.invoice | objeto ou null | |
data.invoice.key | string | |
data.invoice.number | string | |
data.invoice.series | string | |
data.invoice.url | string ou null | |
data.invoice.informed_at | string (data e hora) | |
data.paid_at | string (data e hora) ou null | |
data.test | boolean | |
data.anonymized_at | string (data e hora) ou null | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST order.shipped
Corpo: OrderEvent. Quando o evento sai
Os campos do corpo (121)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Order | O pedido como está na hora do envio (pode já ter mudado de novo). |
data.id | string (uuid) | |
data.number | integer | |
data.status | string | Um de: pending_payment, paid, preparing, shipped, delivered, cancelled. |
data.customer | objeto | |
data.customer.id | string (uuid) ou null | |
data.customer.name | string | |
data.customer.email | string | |
data.customer.phone | string | |
data.customer.cpf | string | |
data.shipping_address | objeto | |
data.shipping_address.zip | string | |
data.shipping_address.street | string | |
data.shipping_address.number | string | |
data.shipping_address.complement | string | |
data.shipping_address.neighborhood | string | |
data.shipping_address.city | string | |
data.shipping_address.state | string | |
data.line_items | lista de objeto | |
data.line_items[].id | string (uuid) | |
data.line_items[].key | string ou null | |
data.line_items[].parent_line_id | string (uuid) ou null | |
data.line_items[].group | objeto ou null | |
data.line_items[].group.code | string | |
data.line_items[].group.name | string | |
data.line_items[].properties | objeto | |
data.line_items[].inventory_tracked | boolean | |
data.line_items[].eyes | objeto ou null | |
data.line_items[].eyes.right | integer | |
data.line_items[].eyes.left | integer | |
data.line_items[].variant_id | string (uuid) | |
data.line_items[].title | string | |
data.line_items[].options | lista de string | |
data.line_items[].sku | string ou null | |
data.line_items[].price | integer | |
data.line_items[].quantity | integer | |
data.line_items[].line_price | integer | |
data.line_items[].promotion | string ou null | |
data.line_items[].files | lista de objeto | |
data.line_items[].files[].id | string (uuid) | |
data.line_items[].files[].name | string | |
data.line_items[].files[].content_type | string | |
data.line_items[].files[].size | integer | |
data.line_items[].files[].purpose | string | Um de: general, prescription. |
data.line_items[].files[].url | string (URL) | |
data.line_items[].files[].url_expires_at | string (data e hora) | |
data.line_items[].prescription | objeto ou null | |
data.line_items[].prescription.type | string ou null | Um de: single_vision, progressive, bifocal, reading, plano, contact_lens. |
data.line_items[].prescription.right | objeto ou null | |
data.line_items[].prescription.right.sphere | number | |
data.line_items[].prescription.right.cylinder | number | |
data.line_items[].prescription.right.axis | integer ou null | |
data.line_items[].prescription.right.add | number ou null | |
data.line_items[].prescription.right.base_curve | number ou null | |
data.line_items[].prescription.right.diameter | number ou null | |
data.line_items[].prescription.left | objeto ou null | |
data.line_items[].prescription.left.sphere | number | |
data.line_items[].prescription.left.cylinder | number | |
data.line_items[].prescription.left.axis | integer ou null | |
data.line_items[].prescription.left.add | number ou null | |
data.line_items[].prescription.left.base_curve | number ou null | |
data.line_items[].prescription.left.diameter | number ou null | |
data.line_items[].prescription.pd | objeto ou null | |
data.line_items[].prescription.segment_height | objeto ou null | |
data.line_items[].prescription.segment_height.right | number | |
data.line_items[].prescription.segment_height.left | number | |
data.line_items[].prescription.prism | objeto ou null | |
data.line_items[].prescription.prism.right | objeto ou null | |
data.line_items[].prescription.prism.right.value | number | |
data.line_items[].prescription.prism.right.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.prism.left | objeto ou null | |
data.line_items[].prescription.prism.left.value | number | |
data.line_items[].prescription.prism.left.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.issued_at | string ou null | |
data.line_items[].prescription.doctor | objeto ou null | |
data.line_items[].prescription.doctor.name | string | |
data.line_items[].prescription.doctor.license | string ou null | |
data.line_items[].prescription.note | string ou null | |
data.line_items[].prescription.lens_brand | string ou null | |
data.line_items[].prescription.status | string | Um de: pending, declared, provided, checked. |
data.line_items[].prescription.provided_at | string (data e hora) ou null | |
data.line_items[].prescription.checked_at | string (data e hora) ou null | |
data.line_items[].prescription.declared_at | string (data e hora) ou null | |
data.line_items[].prescription.declaration | string ou null | |
data.line_items[].prescription.store_note | string ou null | |
data.subtotal_price | integer | |
data.shipping_price | integer | |
data.total_discounts | integer | |
data.coupon_code | string ou null | |
data.pix_discount | integer | |
data.total_price | integer | |
data.shipping_line | objeto ou null | |
data.shipping_line.title | string | |
data.shipping_line.carrier | string | |
data.shipping_line.delivery_days | integer | |
data.shipping_line.pickup | objeto ou null | |
data.shipping_line.pickup.address | string | |
data.shipping_line.pickup.instructions | string | |
data.tracking_code | string ou null | |
data.payment | objeto ou null | |
data.payment.method | string | Um de: pix, credit_card, debit_card, boleto. |
data.payment.status | string | Um de: pending, approved, expired, cancelled, declined, refunded, authorized. |
data.payment.amount | integer | |
data.payment.installments | integer ou null | |
data.payment.refunded_at | string (data e hora) ou null | |
data.payment.created_at | string (data e hora) | |
data.invoice | objeto ou null | |
data.invoice.key | string | |
data.invoice.number | string | |
data.invoice.series | string | |
data.invoice.url | string ou null | |
data.invoice.informed_at | string (data e hora) | |
data.paid_at | string (data e hora) ou null | |
data.test | boolean | |
data.anonymized_at | string (data e hora) ou null | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST order.delivered
Corpo: OrderEvent. Quando o evento sai
Os campos do corpo (121)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Order | O pedido como está na hora do envio (pode já ter mudado de novo). |
data.id | string (uuid) | |
data.number | integer | |
data.status | string | Um de: pending_payment, paid, preparing, shipped, delivered, cancelled. |
data.customer | objeto | |
data.customer.id | string (uuid) ou null | |
data.customer.name | string | |
data.customer.email | string | |
data.customer.phone | string | |
data.customer.cpf | string | |
data.shipping_address | objeto | |
data.shipping_address.zip | string | |
data.shipping_address.street | string | |
data.shipping_address.number | string | |
data.shipping_address.complement | string | |
data.shipping_address.neighborhood | string | |
data.shipping_address.city | string | |
data.shipping_address.state | string | |
data.line_items | lista de objeto | |
data.line_items[].id | string (uuid) | |
data.line_items[].key | string ou null | |
data.line_items[].parent_line_id | string (uuid) ou null | |
data.line_items[].group | objeto ou null | |
data.line_items[].group.code | string | |
data.line_items[].group.name | string | |
data.line_items[].properties | objeto | |
data.line_items[].inventory_tracked | boolean | |
data.line_items[].eyes | objeto ou null | |
data.line_items[].eyes.right | integer | |
data.line_items[].eyes.left | integer | |
data.line_items[].variant_id | string (uuid) | |
data.line_items[].title | string | |
data.line_items[].options | lista de string | |
data.line_items[].sku | string ou null | |
data.line_items[].price | integer | |
data.line_items[].quantity | integer | |
data.line_items[].line_price | integer | |
data.line_items[].promotion | string ou null | |
data.line_items[].files | lista de objeto | |
data.line_items[].files[].id | string (uuid) | |
data.line_items[].files[].name | string | |
data.line_items[].files[].content_type | string | |
data.line_items[].files[].size | integer | |
data.line_items[].files[].purpose | string | Um de: general, prescription. |
data.line_items[].files[].url | string (URL) | |
data.line_items[].files[].url_expires_at | string (data e hora) | |
data.line_items[].prescription | objeto ou null | |
data.line_items[].prescription.type | string ou null | Um de: single_vision, progressive, bifocal, reading, plano, contact_lens. |
data.line_items[].prescription.right | objeto ou null | |
data.line_items[].prescription.right.sphere | number | |
data.line_items[].prescription.right.cylinder | number | |
data.line_items[].prescription.right.axis | integer ou null | |
data.line_items[].prescription.right.add | number ou null | |
data.line_items[].prescription.right.base_curve | number ou null | |
data.line_items[].prescription.right.diameter | number ou null | |
data.line_items[].prescription.left | objeto ou null | |
data.line_items[].prescription.left.sphere | number | |
data.line_items[].prescription.left.cylinder | number | |
data.line_items[].prescription.left.axis | integer ou null | |
data.line_items[].prescription.left.add | number ou null | |
data.line_items[].prescription.left.base_curve | number ou null | |
data.line_items[].prescription.left.diameter | number ou null | |
data.line_items[].prescription.pd | objeto ou null | |
data.line_items[].prescription.segment_height | objeto ou null | |
data.line_items[].prescription.segment_height.right | number | |
data.line_items[].prescription.segment_height.left | number | |
data.line_items[].prescription.prism | objeto ou null | |
data.line_items[].prescription.prism.right | objeto ou null | |
data.line_items[].prescription.prism.right.value | number | |
data.line_items[].prescription.prism.right.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.prism.left | objeto ou null | |
data.line_items[].prescription.prism.left.value | number | |
data.line_items[].prescription.prism.left.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.issued_at | string ou null | |
data.line_items[].prescription.doctor | objeto ou null | |
data.line_items[].prescription.doctor.name | string | |
data.line_items[].prescription.doctor.license | string ou null | |
data.line_items[].prescription.note | string ou null | |
data.line_items[].prescription.lens_brand | string ou null | |
data.line_items[].prescription.status | string | Um de: pending, declared, provided, checked. |
data.line_items[].prescription.provided_at | string (data e hora) ou null | |
data.line_items[].prescription.checked_at | string (data e hora) ou null | |
data.line_items[].prescription.declared_at | string (data e hora) ou null | |
data.line_items[].prescription.declaration | string ou null | |
data.line_items[].prescription.store_note | string ou null | |
data.subtotal_price | integer | |
data.shipping_price | integer | |
data.total_discounts | integer | |
data.coupon_code | string ou null | |
data.pix_discount | integer | |
data.total_price | integer | |
data.shipping_line | objeto ou null | |
data.shipping_line.title | string | |
data.shipping_line.carrier | string | |
data.shipping_line.delivery_days | integer | |
data.shipping_line.pickup | objeto ou null | |
data.shipping_line.pickup.address | string | |
data.shipping_line.pickup.instructions | string | |
data.tracking_code | string ou null | |
data.payment | objeto ou null | |
data.payment.method | string | Um de: pix, credit_card, debit_card, boleto. |
data.payment.status | string | Um de: pending, approved, expired, cancelled, declined, refunded, authorized. |
data.payment.amount | integer | |
data.payment.installments | integer ou null | |
data.payment.refunded_at | string (data e hora) ou null | |
data.payment.created_at | string (data e hora) | |
data.invoice | objeto ou null | |
data.invoice.key | string | |
data.invoice.number | string | |
data.invoice.series | string | |
data.invoice.url | string ou null | |
data.invoice.informed_at | string (data e hora) | |
data.paid_at | string (data e hora) ou null | |
data.test | boolean | |
data.anonymized_at | string (data e hora) ou null | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST order.cancelled
Corpo: OrderEvent. Quando o evento sai
Os campos do corpo (121)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Order | O pedido como está na hora do envio (pode já ter mudado de novo). |
data.id | string (uuid) | |
data.number | integer | |
data.status | string | Um de: pending_payment, paid, preparing, shipped, delivered, cancelled. |
data.customer | objeto | |
data.customer.id | string (uuid) ou null | |
data.customer.name | string | |
data.customer.email | string | |
data.customer.phone | string | |
data.customer.cpf | string | |
data.shipping_address | objeto | |
data.shipping_address.zip | string | |
data.shipping_address.street | string | |
data.shipping_address.number | string | |
data.shipping_address.complement | string | |
data.shipping_address.neighborhood | string | |
data.shipping_address.city | string | |
data.shipping_address.state | string | |
data.line_items | lista de objeto | |
data.line_items[].id | string (uuid) | |
data.line_items[].key | string ou null | |
data.line_items[].parent_line_id | string (uuid) ou null | |
data.line_items[].group | objeto ou null | |
data.line_items[].group.code | string | |
data.line_items[].group.name | string | |
data.line_items[].properties | objeto | |
data.line_items[].inventory_tracked | boolean | |
data.line_items[].eyes | objeto ou null | |
data.line_items[].eyes.right | integer | |
data.line_items[].eyes.left | integer | |
data.line_items[].variant_id | string (uuid) | |
data.line_items[].title | string | |
data.line_items[].options | lista de string | |
data.line_items[].sku | string ou null | |
data.line_items[].price | integer | |
data.line_items[].quantity | integer | |
data.line_items[].line_price | integer | |
data.line_items[].promotion | string ou null | |
data.line_items[].files | lista de objeto | |
data.line_items[].files[].id | string (uuid) | |
data.line_items[].files[].name | string | |
data.line_items[].files[].content_type | string | |
data.line_items[].files[].size | integer | |
data.line_items[].files[].purpose | string | Um de: general, prescription. |
data.line_items[].files[].url | string (URL) | |
data.line_items[].files[].url_expires_at | string (data e hora) | |
data.line_items[].prescription | objeto ou null | |
data.line_items[].prescription.type | string ou null | Um de: single_vision, progressive, bifocal, reading, plano, contact_lens. |
data.line_items[].prescription.right | objeto ou null | |
data.line_items[].prescription.right.sphere | number | |
data.line_items[].prescription.right.cylinder | number | |
data.line_items[].prescription.right.axis | integer ou null | |
data.line_items[].prescription.right.add | number ou null | |
data.line_items[].prescription.right.base_curve | number ou null | |
data.line_items[].prescription.right.diameter | number ou null | |
data.line_items[].prescription.left | objeto ou null | |
data.line_items[].prescription.left.sphere | number | |
data.line_items[].prescription.left.cylinder | number | |
data.line_items[].prescription.left.axis | integer ou null | |
data.line_items[].prescription.left.add | number ou null | |
data.line_items[].prescription.left.base_curve | number ou null | |
data.line_items[].prescription.left.diameter | number ou null | |
data.line_items[].prescription.pd | objeto ou null | |
data.line_items[].prescription.segment_height | objeto ou null | |
data.line_items[].prescription.segment_height.right | number | |
data.line_items[].prescription.segment_height.left | number | |
data.line_items[].prescription.prism | objeto ou null | |
data.line_items[].prescription.prism.right | objeto ou null | |
data.line_items[].prescription.prism.right.value | number | |
data.line_items[].prescription.prism.right.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.prism.left | objeto ou null | |
data.line_items[].prescription.prism.left.value | number | |
data.line_items[].prescription.prism.left.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.issued_at | string ou null | |
data.line_items[].prescription.doctor | objeto ou null | |
data.line_items[].prescription.doctor.name | string | |
data.line_items[].prescription.doctor.license | string ou null | |
data.line_items[].prescription.note | string ou null | |
data.line_items[].prescription.lens_brand | string ou null | |
data.line_items[].prescription.status | string | Um de: pending, declared, provided, checked. |
data.line_items[].prescription.provided_at | string (data e hora) ou null | |
data.line_items[].prescription.checked_at | string (data e hora) ou null | |
data.line_items[].prescription.declared_at | string (data e hora) ou null | |
data.line_items[].prescription.declaration | string ou null | |
data.line_items[].prescription.store_note | string ou null | |
data.subtotal_price | integer | |
data.shipping_price | integer | |
data.total_discounts | integer | |
data.coupon_code | string ou null | |
data.pix_discount | integer | |
data.total_price | integer | |
data.shipping_line | objeto ou null | |
data.shipping_line.title | string | |
data.shipping_line.carrier | string | |
data.shipping_line.delivery_days | integer | |
data.shipping_line.pickup | objeto ou null | |
data.shipping_line.pickup.address | string | |
data.shipping_line.pickup.instructions | string | |
data.tracking_code | string ou null | |
data.payment | objeto ou null | |
data.payment.method | string | Um de: pix, credit_card, debit_card, boleto. |
data.payment.status | string | Um de: pending, approved, expired, cancelled, declined, refunded, authorized. |
data.payment.amount | integer | |
data.payment.installments | integer ou null | |
data.payment.refunded_at | string (data e hora) ou null | |
data.payment.created_at | string (data e hora) | |
data.invoice | objeto ou null | |
data.invoice.key | string | |
data.invoice.number | string | |
data.invoice.series | string | |
data.invoice.url | string ou null | |
data.invoice.informed_at | string (data e hora) | |
data.paid_at | string (data e hora) ou null | |
data.test | boolean | |
data.anonymized_at | string (data e hora) ou null | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST order.anonymized
Corpo: OrderEvent. Quando o evento sai
Os campos do corpo (121)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: order.created, order.paid, order.updated, order.shipped, order.delivered, order.cancelled, order.anonymized. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Order | O pedido como está na hora do envio (pode já ter mudado de novo). |
data.id | string (uuid) | |
data.number | integer | |
data.status | string | Um de: pending_payment, paid, preparing, shipped, delivered, cancelled. |
data.customer | objeto | |
data.customer.id | string (uuid) ou null | |
data.customer.name | string | |
data.customer.email | string | |
data.customer.phone | string | |
data.customer.cpf | string | |
data.shipping_address | objeto | |
data.shipping_address.zip | string | |
data.shipping_address.street | string | |
data.shipping_address.number | string | |
data.shipping_address.complement | string | |
data.shipping_address.neighborhood | string | |
data.shipping_address.city | string | |
data.shipping_address.state | string | |
data.line_items | lista de objeto | |
data.line_items[].id | string (uuid) | |
data.line_items[].key | string ou null | |
data.line_items[].parent_line_id | string (uuid) ou null | |
data.line_items[].group | objeto ou null | |
data.line_items[].group.code | string | |
data.line_items[].group.name | string | |
data.line_items[].properties | objeto | |
data.line_items[].inventory_tracked | boolean | |
data.line_items[].eyes | objeto ou null | |
data.line_items[].eyes.right | integer | |
data.line_items[].eyes.left | integer | |
data.line_items[].variant_id | string (uuid) | |
data.line_items[].title | string | |
data.line_items[].options | lista de string | |
data.line_items[].sku | string ou null | |
data.line_items[].price | integer | |
data.line_items[].quantity | integer | |
data.line_items[].line_price | integer | |
data.line_items[].promotion | string ou null | |
data.line_items[].files | lista de objeto | |
data.line_items[].files[].id | string (uuid) | |
data.line_items[].files[].name | string | |
data.line_items[].files[].content_type | string | |
data.line_items[].files[].size | integer | |
data.line_items[].files[].purpose | string | Um de: general, prescription. |
data.line_items[].files[].url | string (URL) | |
data.line_items[].files[].url_expires_at | string (data e hora) | |
data.line_items[].prescription | objeto ou null | |
data.line_items[].prescription.type | string ou null | Um de: single_vision, progressive, bifocal, reading, plano, contact_lens. |
data.line_items[].prescription.right | objeto ou null | |
data.line_items[].prescription.right.sphere | number | |
data.line_items[].prescription.right.cylinder | number | |
data.line_items[].prescription.right.axis | integer ou null | |
data.line_items[].prescription.right.add | number ou null | |
data.line_items[].prescription.right.base_curve | number ou null | |
data.line_items[].prescription.right.diameter | number ou null | |
data.line_items[].prescription.left | objeto ou null | |
data.line_items[].prescription.left.sphere | number | |
data.line_items[].prescription.left.cylinder | number | |
data.line_items[].prescription.left.axis | integer ou null | |
data.line_items[].prescription.left.add | number ou null | |
data.line_items[].prescription.left.base_curve | number ou null | |
data.line_items[].prescription.left.diameter | number ou null | |
data.line_items[].prescription.pd | objeto ou null | |
data.line_items[].prescription.segment_height | objeto ou null | |
data.line_items[].prescription.segment_height.right | number | |
data.line_items[].prescription.segment_height.left | number | |
data.line_items[].prescription.prism | objeto ou null | |
data.line_items[].prescription.prism.right | objeto ou null | |
data.line_items[].prescription.prism.right.value | number | |
data.line_items[].prescription.prism.right.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.prism.left | objeto ou null | |
data.line_items[].prescription.prism.left.value | number | |
data.line_items[].prescription.prism.left.base | string | Um de: in, out, up, down. |
data.line_items[].prescription.issued_at | string ou null | |
data.line_items[].prescription.doctor | objeto ou null | |
data.line_items[].prescription.doctor.name | string | |
data.line_items[].prescription.doctor.license | string ou null | |
data.line_items[].prescription.note | string ou null | |
data.line_items[].prescription.lens_brand | string ou null | |
data.line_items[].prescription.status | string | Um de: pending, declared, provided, checked. |
data.line_items[].prescription.provided_at | string (data e hora) ou null | |
data.line_items[].prescription.checked_at | string (data e hora) ou null | |
data.line_items[].prescription.declared_at | string (data e hora) ou null | |
data.line_items[].prescription.declaration | string ou null | |
data.line_items[].prescription.store_note | string ou null | |
data.subtotal_price | integer | |
data.shipping_price | integer | |
data.total_discounts | integer | |
data.coupon_code | string ou null | |
data.pix_discount | integer | |
data.total_price | integer | |
data.shipping_line | objeto ou null | |
data.shipping_line.title | string | |
data.shipping_line.carrier | string | |
data.shipping_line.delivery_days | integer | |
data.shipping_line.pickup | objeto ou null | |
data.shipping_line.pickup.address | string | |
data.shipping_line.pickup.instructions | string | |
data.tracking_code | string ou null | |
data.payment | objeto ou null | |
data.payment.method | string | Um de: pix, credit_card, debit_card, boleto. |
data.payment.status | string | Um de: pending, approved, expired, cancelled, declined, refunded, authorized. |
data.payment.amount | integer | |
data.payment.installments | integer ou null | |
data.payment.refunded_at | string (data e hora) ou null | |
data.payment.created_at | string (data e hora) | |
data.invoice | objeto ou null | |
data.invoice.key | string | |
data.invoice.number | string | |
data.invoice.series | string | |
data.invoice.url | string ou null | |
data.invoice.informed_at | string (data e hora) | |
data.paid_at | string (data e hora) ou null | |
data.test | boolean | |
data.anonymized_at | string (data e hora) ou null | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST order.prescription_received
Corpo: PrescriptionEvent. Quando o evento sai
Os campos do corpo (8)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: order.prescription_received. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | objeto | |
data.id | string (uuid) | O id do pedido. |
data.number | integer | O número do pedido. |
data.line_item_id | string (uuid) | O item cuja receita chegou. |
POST product.created
Corpo: ProductEvent. Quando o evento sai
Os campos do corpo (76)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: product.created, product.updated. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Product | O produto como está na hora do envio. |
data.id | string (uuid) | |
data.title | string | |
data.handle | string | |
data.description | string | |
data.active | boolean | |
data.template_suffix | string | |
data.seo | objeto | |
data.seo.title | string | |
data.seo.description | string | |
data.options | lista de objeto | |
data.options[].name | string | |
data.options[].attribute_id | string (uuid) ou null | |
data.brand_id | string (uuid) ou null | |
data.mpn | string | |
data.condition | string | Um de: new, used, refurbished. |
data.tax | objeto | |
data.tax.ncm | string | |
data.tax.cest | string | |
data.tax.origin | string ou null | Um de: 0, 1, 2, 3, 4, 5, 6, 7, 8. |
data.tax.unit | string | |
data.dimensions | objeto ou null | |
data.dimensions.weight_grams | integer | Maior que 0, até 30000. |
data.dimensions.height_cm | integer | Maior que 0, até 200. |
data.dimensions.width_cm | integer | Maior que 0, até 200. |
data.dimensions.length_cm | integer | Maior que 0, até 200. |
data.inventory_tracked | boolean | |
data.sold_separately | boolean | |
data.requires_prescription | boolean | |
data.prescription_type | string | Um de: glasses, contact_lens. |
data.contact_lens_mode | string | Um de: by_prescription, by_power. |
data.collection_ids | lista de string (uuid) | |
data.specifications | lista de objeto | |
data.specifications[].attribute_id | string (uuid) | |
data.specifications[].value | string ou number ou boolean ou lista de string (uuid) | |
data.variants | lista de Variant | |
data.variants[].id | string (uuid) | |
data.variants[].product_id | string (uuid) | |
data.variants[].options | lista de string | |
data.variants[].sku | string ou null | |
data.variants[].barcode | string ou null | |
data.variants[].price | integer | |
data.variants[].compare_at_price | integer ou null | |
data.variants[].cost | integer ou null | |
data.variants[].inventory_quantity | integer | |
data.variants[].inventory_tracked | boolean | |
data.variants[].prescription_range | objeto ou null | |
data.variants[].prescription_range.sphere_min | number | |
data.variants[].prescription_range.sphere_max | number | |
data.variants[].prescription_range.cylinder_max | number | |
data.variants[].prescription_range.add_min | number ou null | Sem ele: null. |
data.variants[].prescription_range.add_max | number ou null | Sem ele: null. |
data.variants[].prescription_range.base_curve | number ou null | A curva base (BC) da caixa, em mm: só na contact_lens. |
data.variants[].prescription_range.diameter | number ou null | O diâmetro (DIA) da caixa, em mm: só na contact_lens. |
data.variants[].position | integer | |
data.variants[].updated_at | string (data e hora) | |
data.images | lista de ProductImage | |
data.images[].id | string (uuid) | |
data.images[].src | string | |
data.images[].thumbnail_src | string | |
data.images[].width | integer | |
data.images[].height | integer | |
data.images[].alt | string | |
data.images[].position | integer | |
data.images[].variant_option | objeto ou null | |
data.images[].variant_option.option_index | integer | |
data.images[].variant_option.value | string | |
data.try_on | objeto | |
data.try_on.available | boolean | |
data.try_on.type | string ou null | Um de: 2d, 3d. |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST product.updated
Corpo: ProductEvent. Quando o evento sai
Os campos do corpo (76)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: product.created, product.updated. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Product | O produto como está na hora do envio. |
data.id | string (uuid) | |
data.title | string | |
data.handle | string | |
data.description | string | |
data.active | boolean | |
data.template_suffix | string | |
data.seo | objeto | |
data.seo.title | string | |
data.seo.description | string | |
data.options | lista de objeto | |
data.options[].name | string | |
data.options[].attribute_id | string (uuid) ou null | |
data.brand_id | string (uuid) ou null | |
data.mpn | string | |
data.condition | string | Um de: new, used, refurbished. |
data.tax | objeto | |
data.tax.ncm | string | |
data.tax.cest | string | |
data.tax.origin | string ou null | Um de: 0, 1, 2, 3, 4, 5, 6, 7, 8. |
data.tax.unit | string | |
data.dimensions | objeto ou null | |
data.dimensions.weight_grams | integer | Maior que 0, até 30000. |
data.dimensions.height_cm | integer | Maior que 0, até 200. |
data.dimensions.width_cm | integer | Maior que 0, até 200. |
data.dimensions.length_cm | integer | Maior que 0, até 200. |
data.inventory_tracked | boolean | |
data.sold_separately | boolean | |
data.requires_prescription | boolean | |
data.prescription_type | string | Um de: glasses, contact_lens. |
data.contact_lens_mode | string | Um de: by_prescription, by_power. |
data.collection_ids | lista de string (uuid) | |
data.specifications | lista de objeto | |
data.specifications[].attribute_id | string (uuid) | |
data.specifications[].value | string ou number ou boolean ou lista de string (uuid) | |
data.variants | lista de Variant | |
data.variants[].id | string (uuid) | |
data.variants[].product_id | string (uuid) | |
data.variants[].options | lista de string | |
data.variants[].sku | string ou null | |
data.variants[].barcode | string ou null | |
data.variants[].price | integer | |
data.variants[].compare_at_price | integer ou null | |
data.variants[].cost | integer ou null | |
data.variants[].inventory_quantity | integer | |
data.variants[].inventory_tracked | boolean | |
data.variants[].prescription_range | objeto ou null | |
data.variants[].prescription_range.sphere_min | number | |
data.variants[].prescription_range.sphere_max | number | |
data.variants[].prescription_range.cylinder_max | number | |
data.variants[].prescription_range.add_min | number ou null | Sem ele: null. |
data.variants[].prescription_range.add_max | number ou null | Sem ele: null. |
data.variants[].prescription_range.base_curve | number ou null | A curva base (BC) da caixa, em mm: só na contact_lens. |
data.variants[].prescription_range.diameter | number ou null | O diâmetro (DIA) da caixa, em mm: só na contact_lens. |
data.variants[].position | integer | |
data.variants[].updated_at | string (data e hora) | |
data.images | lista de ProductImage | |
data.images[].id | string (uuid) | |
data.images[].src | string | |
data.images[].thumbnail_src | string | |
data.images[].width | integer | |
data.images[].height | integer | |
data.images[].alt | string | |
data.images[].position | integer | |
data.images[].variant_option | objeto ou null | |
data.images[].variant_option.option_index | integer | |
data.images[].variant_option.value | string | |
data.try_on | objeto | |
data.try_on.available | boolean | |
data.try_on.type | string ou null | Um de: 2d, 3d. |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST product.deleted
Corpo: DeletedEvent. Quando o evento sai
Os campos do corpo (6)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: product.deleted, customer.deleted. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | objeto | |
data.id | string (uuid) |
POST customer.deleted
Corpo: DeletedEvent. Quando o evento sai
Os campos do corpo (6)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: product.deleted, customer.deleted. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | objeto | |
data.id | string (uuid) |
POST inventory.updated
Corpo: InventoryEvent. Quando o evento sai
Os campos do corpo (25)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: inventory.updated. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Variant | A variante como está na hora do envio, com o inventory_quantity. |
data.id | string (uuid) | |
data.product_id | string (uuid) | |
data.options | lista de string | |
data.sku | string ou null | |
data.barcode | string ou null | |
data.price | integer | |
data.compare_at_price | integer ou null | |
data.cost | integer ou null | |
data.inventory_quantity | integer | |
data.inventory_tracked | boolean | |
data.prescription_range | objeto ou null | |
data.prescription_range.sphere_min | number | |
data.prescription_range.sphere_max | number | |
data.prescription_range.cylinder_max | number | |
data.prescription_range.add_min | number ou null | Sem ele: null. |
data.prescription_range.add_max | number ou null | Sem ele: null. |
data.prescription_range.base_curve | number ou null | A curva base (BC) da caixa, em mm: só na contact_lens. |
data.prescription_range.diameter | number ou null | O diâmetro (DIA) da caixa, em mm: só na contact_lens. |
data.position | integer | |
data.updated_at | string (data e hora) |
POST theme.published
Corpo: ThemeEvent. Quando o evento sai
Os campos do corpo (30)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: theme.published. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Theme | O tema publicado. |
data.id | string (uuid) | |
data.name | string | |
data.source | string | Um de: platform, custom. |
data.platform_theme | string ou null | |
data.published | boolean | |
data.tree | string ou null | |
data.errors | integer | A partir de 0. |
data.development | boolean | |
data.expires_at | string (data e hora) ou null | |
data.github | objeto ou null | |
data.github.repository | string | |
data.github.branch | string | |
data.github.folder | string | |
data.github.url | string | |
data.github.status | string | Um de: active, paused. |
data.github.last_commit | objeto ou null | |
data.github.last_commit.sha | string | |
data.github.last_commit.message | string | |
data.github.synced_at | string (data e hora) ou null | |
data.pull_request | objeto ou null | |
data.pull_request.number | integer | Maior que 0. |
data.pull_request.repository | string | |
data.pull_request.url | string | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST customer.created
Corpo: CustomerEvent. Quando o evento sai
Os campos do corpo (25)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: customer.created, customer.updated. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Customer | A conta do cliente como está na hora do envio, com os endereços. |
data.id | string (uuid) | |
data.email | string | |
data.name | string | |
data.phone | string ou null | |
data.cpf | string ou null | |
data.accepts_marketing | boolean | |
data.accepts_marketing_at | string (data e hora) ou null | |
data.addresses | lista de objeto | |
data.addresses[].id | string (uuid) | |
data.addresses[].name | string | |
data.addresses[].zip | string | |
data.addresses[].street | string | |
data.addresses[].number | string | |
data.addresses[].complement | string | |
data.addresses[].neighborhood | string | |
data.addresses[].city | string | |
data.addresses[].state | string | |
data.addresses[].default | boolean | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST customer.updated
Corpo: CustomerEvent. Quando o evento sai
Os campos do corpo (25)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: customer.created, customer.updated. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | Customer | A conta do cliente como está na hora do envio, com os endereços. |
data.id | string (uuid) | |
data.email | string | |
data.name | string | |
data.phone | string ou null | |
data.cpf | string ou null | |
data.accepts_marketing | boolean | |
data.accepts_marketing_at | string (data e hora) ou null | |
data.addresses | lista de objeto | |
data.addresses[].id | string (uuid) | |
data.addresses[].name | string | |
data.addresses[].zip | string | |
data.addresses[].street | string | |
data.addresses[].number | string | |
data.addresses[].complement | string | |
data.addresses[].neighborhood | string | |
data.addresses[].city | string | |
data.addresses[].state | string | |
data.addresses[].default | boolean | |
data.created_at | string (data e hora) | |
data.updated_at | string (data e hora) |
POST webhook.test
Corpo: TestEvent. Quando o evento sai
Os campos do corpo (6)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | O id do evento: o mesmo em todas as tentativas. |
type | string | Um de: webhook.test. |
created_at | string (data e hora) | Quando a mudança aconteceu. |
api_version | string | Um de: 2026-10. |
data | objeto | |
data.webhook_id | string (uuid) |