{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"73fba179-72af-4eb2-bf37-1da0c1d4b157","name":"Documentação Luna Checkout","description":"Documentação dos Webhooks da plataforma Luna Checkout.\n\n**URL da API:** `https://api.lunacheckout.com`\n\nOs webhooks permitem que sua aplicação receba notificações em tempo real sobre eventos que acontecem no checkout, como vendas, pagamentos, abandonos de carrinho e atualizações de rastreio.\n\n## Como funciona\n\n1. Configure uma URL de webhook no painel da Luna Checkout\n2. Selecione os eventos que deseja receber\n3. A Luna Checkout enviará um `POST` com payload JSON para sua URL sempre que o evento ocorrer\n\n## Configuração de Webhooks\n\n**Endpoint:** `POST https://api.lunacheckout.com/stores/{store_uuid}/webhooks`\n\n```json\n{\n    \"url\": \"https://sua-url.com/webhook\",\n    \"description\": \"Meu webhook\",\n    \"active\": 1,\n    \"event_sale_approved\": 1,\n    \"event_sale_waiting_payment\": 1,\n    \"event_sale_refused\": 1,\n    \"event_sale_chargeback\": 1,\n    \"event_sale_refunded\": 1,\n    \"event_sale_cancelled\": 1,\n    \"event_cart_abandoned\": 1,\n    \"event_sale_cart_recovered\": 1,\n    \"event_tracking_posted\": 1,\n    \"event_tracking_in_transit\": 1,\n    \"event_tracking_out_for_delivery\": 1,\n    \"event_tracking_delivered\": 1,\n    \"event_tracking_cancelled\": 1,\n    \"event_tracking_returned\": 1\n}\n```\n\n## Autenticação\n\nOs webhooks são enviados via `POST` com `Content-Type: application/json`. Não há header de autenticação — recomenda-se validar pelo conteúdo do payload (ex: verificar se o `id` da venda existe).\n\n## Retry\n\nO sistema possui proteção contra duplicatas via idempotência. Cada combinação de evento + URL + pedido é enviada apenas uma vez.\n\n## Eventos de Venda\n\n| Evento | Descrição |\n|---|---|\n| `sale_approved` | Pagamento aprovado/confirmado |\n| `sale_pending` | Venda criada (aguardando pagamento) |\n| `sale_waiting_payment` | Aguardando confirmação do pagamento |\n| `sale_refused` | Pagamento recusado pelo gateway |\n| `sale_chargeback` | Chargeback recebido |\n| `sale_refunded` | Pagamento estornado |\n| `sale_cancelled` | Venda cancelada |\n| `sale_cart_abandoned` | Carrinho abandonado (cliente não finalizou) |\n| `sale_cart_recovered` | Carrinho recuperado (cliente retornou e comprou) |\n\n## Eventos de Rastreio\n\n| Evento | Descrição |\n|---|---|\n| `tracking_posted` | Pedido postado/despachado na transportadora |\n| `tracking_in_transit` | Pedido em trânsito |\n| `tracking_out_for_delivery` | Pedido saiu para entrega |\n| `tracking_delivered` | Pedido entregue ao destinatário |\n| `tracking_cancelled` | Envio cancelado |\n| `tracking_returned` | Pedido devolvido ao remetente |\n\n## Payload Completo\n\n### Campos Principais\n\n| Campo | Tipo | Descrição |\n|---|---|---|\n| `id` | `string` | ID interno da venda. Para carrinhos sem pedido, será `\"c-{cart_id}\"` |\n| `event` | `string` | Nome do evento |\n| `amount` | `number` | Valor total da venda (em reais) |\n| `method` | `string` | Método de pagamento: `pix`, `card`, `bankslip`, `debit` |\n| `checkout_url` | `string/null` | URL completa do checkout |\n| `status` | `string` | Status do pagamento: `paid`, `pending`, `waiting_payment`, `refused`, `refunded` |\n\n### Objeto `client`\n\n| Campo | Tipo | Descrição |\n|---|---|---|\n| `name` | `string` | Nome completo |\n| `email` | `string` | E-mail |\n| `phone` | `string` | Telefone com DDI (ex: `5511999999999`) |\n| `doc` | `string` | CPF/CNPJ (somente números) |\n\n### Objeto `tracking`\n\n| Campo | Tipo | Descrição |\n|---|---|---|\n| `status` | `string` | Status: `pending`, `posted`, `in_transit`, `out_for_delivery`, `delivered`, `cancelled`, `returned` |\n| `status_label` | `string` | Label em português: `Postado`, `Em Trânsito`, etc. |\n| `tracking_code` | `string/null` | Código de rastreio |\n| `shipping_company` | `string/null` | Transportadora |\n| `expected_delivery_date` | `string/null` | Data prevista de entrega |\n| `fee` | `number` | Valor do frete |\n\n### Objeto `address`\n\n| Campo | Tipo | Descrição |\n|---|---|---|\n| `street` | `string` | Rua/Logradouro |\n| `number` | `string` | Número |\n| `complement` | `string` | Complemento |\n| `neighborhood` | `string` | Bairro |\n| `city` | `string` | Cidade |\n| `state` | `string` | Estado (UF) |\n| `zipcode` | `string` | CEP |\n\n### Objeto `utm`\n\n| Campo | Tipo | Descrição |\n|---|---|---|\n| `src` | `string/null` | Parâmetro `src` |\n| `sck` | `string/null` | Parâmetro `sck` |\n| `utm_source` | `string/null` | Origem do tráfego |\n| `utm_campaign` | `string/null` | Campanha |\n| `utm_medium` | `string/null` | Meio |\n| `utm_content` | `string/null` | Conteúdo |\n| `utm_term` | `string/null` | Termo de busca |\n| `click_id` | `string/null` | ID do clique |\n\n### Array `items[]`\n\n| Campo | Tipo | Descrição |\n|---|---|---|\n| `id` | `string` | ID do produto |\n| `name` | `string` | Nome do produto |\n| `variant` | `string` | Variação selecionada |\n| `description` | `string` | Mesma info de variant |\n| `quantity` | `number` | Quantidade |\n| `price` | `number` | Preço unitário (reais) |\n| `width` | `number` | Largura cm (com embalagem) |\n| `height` | `number` | Altura cm (com embalagem) |\n| `weight` | `number` | Peso gramas (com embalagem) |\n| `length` | `number` | Comprimento cm (com embalagem) |\n\n### Objeto `payment`\n\n| Campo | Tipo | Descrição |\n|---|---|---|\n| `status` | `string` | Status do pagamento |\n| `qrcode` | `string/null` | Código PIX copia-e-cola |\n| `created_at` | `string` | Data criação do pedido |\n| `paid_at` | `string/null` | Data confirmação (só quando paid) |\n| `reason_status` | `string/null` | Motivo da recusa |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"44514406","team":7573976,"collectionId":"73fba179-72af-4eb2-bf37-1da0c1d4b157","publishedId":"2sBXinJWaJ","public":true,"publicUrl":"https://docs.lunacheckout.com","privateUrl":"https://go.postman.co/documentation/44514406-73fba179-72af-4eb2-bf37-1da0c1d4b157","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/40e8c617-7d90-4030-9217-03c756a9df73/bG9nby1kYXJrLnBuZw==","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":"https://content.pstmn.io/d9eb72ae-c0c0-45ff-9cbb-d5593d584122/bG9nby1saWdodC5wbmc=","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2026-03-31T18:21:14.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/d9eb72ae-c0c0-45ff-9cbb-d5593d584122/bG9nby1saWdodC5wbmc=","logoDark":"https://content.pstmn.io/40e8c617-7d90-4030-9217-03c756a9df73/bG9nby1kYXJrLnBuZw=="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/9cf22789d8135e3feb788ef7ef5feb40b4120559b3ed70dc3bcbccda09aa4e60","favicon":"https://lunacheckout.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://docs.lunacheckout.com/view/metadata/2sBXinJWaJ"}