{"info":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","description":"<html><head></head><body><p>A API do Navitrine deixa o sistema da sua loja conversar com a vitrine: publicar o\ncatálogo, manter preço e disponibilidade em dia e receber os pedidos que os clientes\nfizerem.</p>\n<p>Ela é feita para ser usada por quem já tem um sistema — ERP, PDV, cardápio digital —\ne quer que ele seja a fonte do que aparece na vitrine.</p>\n<h2 id=\"primeiros-passos\">Primeiros passos</h2>\n<ol>\n<li>O lojista gera um <strong>token de acesso</strong> no painel do Navitrine, em\n<em>Configurações → Integrações → API</em>, e escolhe o que ele pode fazer (os escopos).</li>\n<li>Guarde o token: ele aparece <strong>uma única vez</strong>. Se perder, gere outro — o antigo\ncontinua valendo até ser revogado.</li>\n<li>Confirme que está tudo certo chamando <code>GET /me</code>. A resposta diz de qual loja é o\ntoken e o que ele pode fazer.</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl https://api.navitrine.app/api/v1/me \\\n  -H \"Authorization: Bearer \"\n</code></pre>\n<h2 id=\"comece-por-aqui-conta-de-desenvolvedor\">Comece por aqui: conta de desenvolvedor</h2>\n<p>Você não precisa de um lojista para começar. Crie sua conta e saia com a credencial:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X POST https://api.navitrine.app/api/v1/dev/registrar \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"nome\":\"ERP da Silva\",\"email\":\"dev@erpdasilva.com.br\",\"password\":\"uma-senha-boa-2026\"}'\n</code></pre>\n<p>A resposta traz uma credencial <code>nvt_test_</code> e uma <strong>loja de testes</strong>: uma loja de\nmentira que não aparece na vitrine, não é cobrada e não avisa lojista nenhum. É onde\nvocê erra à vontade — sobe catálogo torto, apaga tudo, simula pedido.</p>\n<p>Nela existem duas rotas que não existem em produção: <code>POST /sandbox/pedidos</code>, que\nsimula um pedido e dispara o webhook (em produção, o pedido só nasce de um cliente\ncomprando), e <code>POST /sandbox/limpar</code>, para recomeçar do zero.</p>\n<p>Quando um lojista contratar você, ele gera no painel dele uma credencial <code>nvt_live_</code>\nda loja real. <strong>Uma não vale no lugar da outra</strong>: chave de teste apontando para a loja\nque vende é recusada, e o contrário também. É o que impede o acidente de subir\ncatálogo de homologação em quem está vendendo.</p>\n<h2 id=\"autenticação\">Autenticação</h2>\n<p>Todas as chamadas levam o token no cabeçalho:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer \n</code></pre><p><strong>O token já diz de qual loja se trata</strong> — nenhuma rota pede o id da loja. Isso\ntambém significa que um token nunca alcança o catálogo ou os pedidos de outra loja.</p>\n<p>Cada token carrega escopos, e a rota recusa (403) o que estiver fora deles:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Escopo</th>\n<th>Permite</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>catalogo:ler</code></td>\n<td>ler categorias e itens</td>\n</tr>\n<tr>\n<td><code>catalogo:escrever</code></td>\n<td>criar, editar e remover categorias e itens</td>\n</tr>\n<tr>\n<td><code>pedidos:ler</code></td>\n<td>listar e consultar pedidos</td>\n</tr>\n<tr>\n<td><code>pedidos:escrever</code></td>\n<td>criar pedidos na loja em nome do cliente</td>\n</tr>\n<tr>\n<td><code>webhooks:gerenciar</code></td>\n<td>configurar para onde os eventos são enviados</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"como-manter-o-catálogo-em-dia\">Como manter o catálogo em dia</h2>\n<p>Há dois caminhos, e o segundo é o recomendado para quem tem sistema próprio:</p>\n<ul>\n<li><strong>Item a item</strong> — <code>POST /itens</code>, <code>PATCH /itens/{id}</code>, <code>DELETE /itens/{id}</code>. Bom para\nalterações pontuais feitas por uma tela.</li>\n<li><strong>Em lote, pela sua referência</strong> — <code>POST /itens/lote</code> envia até 500 itens de uma vez,\nidentificados por <code>referencia_externa</code> (o código do item no <em>seu</em> sistema). O que não\nexiste é criado, o que existe é atualizado, e você nunca precisa guardar o id do\nNavitrine. É assim que uma carga de catálogo inteira roda todo dia sem virar 500\nchamadas.</li>\n</ul>\n<p>Para sincronizar só o que mudou, use <code>atualizado_desde</code> na listagem:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /itens?atualizado_desde=2026-08-21T03:00:00Z&amp;perPage=100\n</code></pre><h2 id=\"pedidos\">Pedidos</h2>\n<p>O cliente fecha o pedido na vitrine e ele fica disponível aqui. Você recebe de duas\nformas, que podem conviver:</p>\n<ul>\n<li><strong>Consultando</strong> (<code>GET /pedidos?desde=...</code>) de tempos em tempos — simples e suficiente\npara a maioria.</li>\n<li><strong>Recebendo o evento</strong> no seu endereço, configurado em <code>PUT /webhooks</code>. Chega mais\nrápido e evita consulta em vão.</li>\n</ul>\n<p>Todo pedido tem <code>numero</code> (sequencial por loja, o que o lojista enxerga) além do <code>id</code>.</p>\n<h2 id=\"webhooks\">Webhooks</h2>\n<p>Configurado o endereço, o Navitrine envia <code>POST</code> com o evento no corpo e assina a\nrequisição:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-Navitrine-Event: pedido.criado\nX-Navitrine-Delivery: 018f3c1e-...\nX-Navitrine-Signature: sha256=3a7bd3e2360a...\n</code></pre><p>A assinatura é o HMAC-SHA256 do <strong>corpo cru</strong> com o seu segredo. Compare com o que\nvocê calcular, em comparação de tempo constante — sem isso qualquer um pode fingir\nser o Navitrine.</p>\n<p>Responda <strong>2xx em até 10 segundos</strong>. Qualquer outra coisa (ou demora) vira nova\ntentativa: 1min, 5min, 30min, 2h e 6h depois. O mesmo evento pode chegar duas vezes —\nuse o <code>X-Navitrine-Delivery</code> para ignorar repetido.</p>\n<h2 id=\"paginação\">Paginação</h2>\n<p>As listagens devolvem sempre o mesmo envelope:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": [], \"page\": 1, \"perPage\": 50, \"total\": 137 }\n</code></pre>\n<p><code>page</code> começa em 1 e <code>perPage</code> vai até 200.</p>\n<h2 id=\"escrita-sem-duplicar\">Escrita sem duplicar</h2>\n<p>Em <code>POST</code>, mande <code>Idempotency-Key</code> com um valor único seu (um uuid serve). Repetindo a\nchamada com a mesma chave em até 24h, a resposta é a da primeira — é o que salva a\nintegração quando a conexão cai depois de o pedido já ter sido criado.</p>\n<h2 id=\"limites-de-uso\">Limites de uso</h2>\n<p>120 requisições por minuto por token, e <code>POST /itens/lote</code> conta como uma. Toda\nresposta traz <code>RateLimit-Limit</code>, <code>RateLimit-Remaining</code> e <code>RateLimit-Reset</code>; ao estourar,\na resposta é <strong>429</strong> com <code>Retry-After</code>.</p>\n<h2 id=\"formatos\">Formatos</h2>\n<ul>\n<li>Datas em ISO 8601, UTC (<code>2026-08-21T14:32:00.000Z</code>).</li>\n<li>Dinheiro em <strong>string</strong> com duas casas (<code>\"49.90\"</code>) — converter para float antes de\nsomar é como se perde centavo.</li>\n<li>Campos de texto vazios chegam como <code>null</code>, não como <code>\"\"</code>.</li>\n</ul>\n<h2 id=\"erros\">Erros</h2>\n<p>Toda falha responde com o mesmo corpo:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Categoria não pertence a esta loja\",\n  \"errors\": { \"categoria_id\": [\"Categoria não encontrada\"] }\n}\n</code></pre>\n<p>A <code>message</code> é em pt-BR e pode ser mostrada a quem opera o seu sistema. <code>errors</code> só\naparece quando a falha é de validação, com o motivo por campo.</p>\n<p><strong>Decida pelo <code>statusCode</code>, nunca pelo texto da <code>message</code>.</strong> O texto melhora com o\ntempo — a mensagem que você casar com uma expressão regular hoje muda amanhã sem\nque isso seja uma quebra de contrato.</p>\n<h3 id=\"o-que-cada-código-significa\">O que cada código significa</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>O que aconteceu</th>\n<th>O que fazer</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>400</strong></td>\n<td>Corpo ou parâmetro inválido. <code>errors</code> traz o motivo por campo.</td>\n<td>Corrigir e reenviar. Repetir igual dá o mesmo erro.</td>\n</tr>\n<tr>\n<td><strong>401</strong></td>\n<td>Token ausente, inválido, revogado, ou da loja que foi excluída.</td>\n<td>Conferir o cabeçalho; se persistir, gerar outra credencial.</td>\n</tr>\n<tr>\n<td><strong>403</strong></td>\n<td>Token válido, mas barrado: falta o escopo, a loja está sem assinatura paga, o plano estourou o limite de itens, ou a rota é só de sandbox.</td>\n<td>A <code>message</code> diz qual dos casos. Nenhum se resolve repetindo.</td>\n</tr>\n<tr>\n<td><strong>404</strong></td>\n<td>O recurso não existe <strong>ou não é desta loja</strong> — os dois respondem igual, de propósito: distinguir contaria a você o que existe na loja dos outros.</td>\n<td>Conferir o id.</td>\n</tr>\n<tr>\n<td><strong>409</strong></td>\n<td>Conflito com o que já existe: seção com o mesmo nome, item com a mesma <code>referencia_externa</code>, e-mail já cadastrado, ou <code>Idempotency-Key</code> repetida com corpo diferente.</td>\n<td>Ler a <code>message</code>: cada caso pede uma correção diferente.</td>\n</tr>\n<tr>\n<td><strong>429</strong></td>\n<td>Passou de 120 requisições no minuto.</td>\n<td>Esperar os segundos de <code>Retry-After</code> e repetir.</td>\n</tr>\n<tr>\n<td><strong>5xx</strong></td>\n<td>Falha nossa.</td>\n<td>Repetir com espera crescente. Se insistir, falar com o suporte com o <code>timestamp</code> da resposta.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Erro de rede ou 5xx num <code>POST</code> é o caso em que a <code>Idempotency-Key</code> paga sozinha o\ntrabalho de gerá-la: repetir com a mesma chave não cria nada duas vezes.</p>\n<h2 id=\"limites-de-tamanho\">Limites de tamanho</h2>\n<p>O que a API recusa com <strong>400</strong> antes de tocar no banco:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Onde</th>\n<th>Campo</th>\n<th>Limite</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Item</td>\n<td><code>nome</code></td>\n<td>1 a 200 caracteres</td>\n</tr>\n<tr>\n<td>Item</td>\n<td><code>descricao</code></td>\n<td>até 2000 caracteres</td>\n</tr>\n<tr>\n<td>Item</td>\n<td><code>referencia_externa</code></td>\n<td>1 a 120 caracteres</td>\n</tr>\n<tr>\n<td>Item</td>\n<td><code>preco</code>, <code>preco_promocional</code></td>\n<td>decimal com até 2 casas, como <code>\"49.90\"</code></td>\n</tr>\n<tr>\n<td>Item</td>\n<td><code>foto_url</code></td>\n<td>URL válida</td>\n</tr>\n<tr>\n<td>Seção</td>\n<td><code>nome</code></td>\n<td>1 a 120 caracteres</td>\n</tr>\n<tr>\n<td>Seção</td>\n<td><code>ordem</code></td>\n<td>inteiro ≥ 0</td>\n</tr>\n<tr>\n<td>Carga em lote</td>\n<td><code>itens</code></td>\n<td>1 a 500 por chamada</td>\n</tr>\n<tr>\n<td>Listagens</td>\n<td><code>perPage</code></td>\n<td>1 a 200 (padrão 50)</td>\n</tr>\n<tr>\n<td>Listagens</td>\n<td><code>page</code></td>\n<td>inteiro ≥ 1</td>\n</tr>\n<tr>\n<td>Horário</td>\n<td><code>dia_semana</code></td>\n<td>0 (domingo) a 6 (sábado)</td>\n</tr>\n<tr>\n<td>Horário</td>\n<td><code>abre</code>, <code>fecha</code></td>\n<td><code>HH:MM</code>, e <code>fecha</code> depois de <code>abre</code></td>\n</tr>\n<tr>\n<td>Webhook</td>\n<td><code>url</code></td>\n<td>URL <strong>https</strong></td>\n</tr>\n<tr>\n<td>Sandbox</td>\n<td><code>observacoes</code></td>\n<td>até 500 caracteres</td>\n</tr>\n</tbody>\n</table>\n</div><p>Texto é aparado nas pontas antes de medir, então espaço sobrando não derruba a\nchamada.</p>\n<h2 id=\"versionamento-e-depreciação\">Versionamento e depreciação</h2>\n<p>A versão está no caminho: <strong><code>/api/v1</code></strong>. Enquanto for <code>v1</code>, o que está documentado\naqui continua funcionando como está descrito.</p>\n<ul>\n<li><strong>Mudança que quebra integração ganha caminho novo</strong> (<code>/api/v2</code>). Nunca trocamos o\ncomportamento de uma rota <code>v1</code> por baixo de quem já a usa.</li>\n<li>Quando existir uma <code>v2</code>, a <code>v1</code> fica de pé por <strong>no mínimo 6 meses</strong> depois do\nanúncio, e avisamos por e-mail no endereço da conta de desenvolvedor.</li>\n<li>Campo em vias de sair é marcado com <code>deprecated: true</code> neste contrato <strong>antes</strong> de\nparar de existir, e continua sendo devolvido enquanto a versão viver.</li>\n</ul>\n<h2 id=\"o-que-pode-mudar-sem-aviso\">O que pode mudar sem aviso</h2>\n<p>Estas mudanças <strong>não</strong> são consideradas quebra, e sua integração precisa aguentá-las:</p>\n<ul>\n<li><strong>Campo novo numa resposta.</strong> Ignore o que não conhece; não recuse a resposta por\ncausa de campo que não esperava.</li>\n<li><strong>Campo opcional novo num corpo de requisição.</strong> O que você já manda continua valendo.</li>\n<li><strong>Valor novo num campo de lista fechada</strong> (<code>forma_pagamento</code>, <code>situacao</code> da entrega).\nTrate valor desconhecido com um caminho padrão, em vez de estourar.</li>\n<li><strong>Texto de <code>message</code> e de <code>errors</code>.</strong> Melhoram sem aviso — case pelo <code>statusCode</code>.</li>\n<li><strong>Ordem dos itens</strong> em listagem sem ordenação documentada.</li>\n</ul>\n<p>E o contrário, que <strong>é</strong> quebra e portanto só acontece numa versão nova: remover\ncampo, mudar tipo de campo, tornar obrigatório o que era opcional, mudar o\nsignificado de um código de status.</p>\n<p>Campo desconhecido que você mandar no corpo é <strong>ignorado</strong>, não recusado — o que\nfacilita a vida de quem manda o mesmo objeto para vários destinos.</p>\n<p>Contact Support:\n Name: Suporte Navitrine</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"56898986","collectionId":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","publishedId":"2sBYArVss6","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"0138C6"},"publishDate":"2026-08-22T10:40:13.000Z"},"item":[{"name":"Conta","item":[{"name":"De qual loja é este token, e o que ele pode fazer.","id":"363908af-bfec-42fc-b981-369e99dcda82","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/me","description":"<p>Primeira chamada de qualquer integração: confirma que a credencial funciona e diz\ncom qual loja você está falando. Não consome escopo nenhum — qualquer token válido\nresponde.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}},"urlObject":{"path":["me"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"6165908a-4ecb-4825-8463-98e778c28c97","name":"Credencial válida.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"loja\": {\n    \"id\": \"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n    \"nome\": \"Farmácia Conviva\",\n    \"slug\": \"farmacia-conviva\",\n    \"teste\": false\n  },\n  \"escopos\": [\n    \"catalogo:ler\",\n    \"catalogo:escrever\",\n    \"pedidos:ler\",\n    \"webhooks:gerenciar\"\n  ],\n  \"criado_em\": \"2026-08-01T12:00:00.000Z\",\n  \"ultimo_uso_em\": \"2026-08-21T14:30:00.000Z\"\n}"},{"id":"d22952e8-a65e-4bed-85d0-76522dc0320b","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/me"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"dc78e0d9-6a71-4ae7-b8e4-56c43e6e9036","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/me"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"363908af-bfec-42fc-b981-369e99dcda82"}],"id":"e3880505-2b0c-4c99-919a-a4e9fc21e073","description":"<p>De quem é o token e o que ele pode fazer.</p>\n","_postman_id":"e3880505-2b0c-4c99-919a-a4e9fc21e073","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}}},{"name":"Loja","item":[{"name":"Dados da loja na vitrine.","id":"6de8d171-00a2-44d2-97d7-6b815178f6ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/loja","description":"<p>Como a loja aparece para o cliente: nome, endereço, contato e se está publicada.\n<code>publicada: false</code> significa que a vitrine não exibe a loja no momento — catálogo\nenviado continua guardado, mas ninguém o vê.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}},"urlObject":{"path":["loja"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ef220be5-b7f6-4fe5-ac24-42a38f9b3e84","name":"Dados da loja.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/loja"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n  \"nome\": \"Farmácia Conviva\",\n  \"slug\": \"farmacia-conviva\",\n  \"tipo\": \"loja\",\n  \"descricao\": \"Medicamentos e perfumaria.\",\n  \"logo_url\": \"https://cdn.navitrine.app/imagens/conviva-logo.webp\",\n  \"whatsapp\": \"82999998888\",\n  \"endereco\": {\n    \"logradouro\": \"Rua do Comércio\",\n    \"numero\": \"150\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Arapiraca\",\n    \"estado\": \"AL\",\n    \"cep\": \"57300000\"\n  },\n  \"publicada\": true,\n  \"url_vitrine\": \"https://navitrine.app/farmacia-conviva\"\n}"},{"id":"58bb6a4a-c85a-4967-910f-be2d9636348d","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/loja"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"90af7a9a-0f2e-4fe4-ab0f-a8233693e0eb","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/loja"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"6de8d171-00a2-44d2-97d7-6b815178f6ce"},{"name":"Horário de funcionamento da loja.","id":"389810c8-1a17-48f0-9074-832799247992","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/loja/horarios","description":"<p>É o que decide se a vitrine mostra a loja como aberta agora. Cada faixa é um\nperíodo de um dia; um dia com almoço fechado tem duas faixas.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}},"urlObject":{"path":["loja","horarios"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4c08e43e-5e7f-407c-a059-a9f4bd5d49f1","name":"Faixas de funcionamento.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/loja/horarios"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"dia_semana\": 1,\n    \"abre\": \"08:00\",\n    \"fecha\": \"12:00\"\n  },\n  {\n    \"dia_semana\": 1,\n    \"abre\": \"13:30\",\n    \"fecha\": \"18:00\"\n  },\n  {\n    \"dia_semana\": 6,\n    \"abre\": \"08:00\",\n    \"fecha\": \"12:00\"\n  }\n]"},{"id":"5ddfb72c-5c16-4570-9d16-5299951e84c6","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/loja/horarios"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"8097e560-0204-44d1-9e78-90b27f1bba59","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/loja/horarios"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"389810c8-1a17-48f0-9074-832799247992"},{"name":"Substitui o horário de funcionamento.","id":"a832731f-ab18-4f95-937b-5663f35e5136","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"horarios\": [\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"08:00\",\n      \"fecha\": \"12:00\"\n    },\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"13:30\",\n      \"fecha\": \"18:00\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/loja/horarios","description":"<p>Substituição total: o que você enviar passa a ser o horário da loja, e o que ficou\nde fora deixa de valer. Enviar lista vazia deixa a loja sem horário — ela aparece\ncomo fechada.</p>\n","urlObject":{"path":["loja","horarios"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d9e5948c-4951-4c0d-a858-7e538916c40d","name":"Horário atualizado.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"horarios\": [\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"08:00\",\n      \"fecha\": \"12:00\"\n    },\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"13:30\",\n      \"fecha\": \"18:00\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/loja/horarios"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"dia_semana\": 1,\n    \"abre\": \"08:00\",\n    \"fecha\": \"12:00\"\n  },\n  {\n    \"dia_semana\": 1,\n    \"abre\": \"13:30\",\n    \"fecha\": \"18:00\"\n  },\n  {\n    \"dia_semana\": 6,\n    \"abre\": \"08:00\",\n    \"fecha\": \"12:00\"\n  }\n]"},{"id":"6e469555-ee59-497a-a9d6-cab5d3d6f4c2","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"horarios\": [\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"08:00\",\n      \"fecha\": \"12:00\"\n    },\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"13:30\",\n      \"fecha\": \"18:00\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/loja/horarios"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"3031abe6-a492-4014-9931-f10c8d03f178","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"horarios\": [\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"08:00\",\n      \"fecha\": \"12:00\"\n    },\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"13:30\",\n      \"fecha\": \"18:00\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/loja/horarios"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"6797c4e3-1171-4f3b-84af-3bd84fb2060e","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"horarios\": [\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"08:00\",\n      \"fecha\": \"12:00\"\n    },\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"13:30\",\n      \"fecha\": \"18:00\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/loja/horarios"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"c8ac73c1-f1de-41d0-a946-f923f01cb25c","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"horarios\": [\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"08:00\",\n      \"fecha\": \"12:00\"\n    },\n    {\n      \"dia_semana\": 1,\n      \"abre\": \"13:30\",\n      \"fecha\": \"18:00\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/loja/horarios"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"a832731f-ab18-4f95-937b-5663f35e5136"},{"name":"A vitrine da loja numa carga só.","id":"2feae22e-5181-4ec8-a117-c71cfae54810","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/vitrine","description":"<p>Feita para quem atende o cliente por fora do app (um atendente de WhatsApp, uma\nIA de atendimento): os itens à venda com os grupos de adicionais, se a loja\nestá aberta agora, as faixas de horário de hoje, a entrega e as formas de\npagamento. Os <code>id</code> de item e de opção são os que <code>POST /pedidos</code> recebe.</p>\n<p><code>aberta</code> é calculado no fuso de Brasília. Nulo quando a loja não cadastrou\nhorário. Só entram os itens que a vitrine do app mostra.</p>\n","urlObject":{"path":["vitrine"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9223ff2f-dae8-41a9-b720-74eca5411273","name":"Vitrine da loja.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/vitrine"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"loja\": {\n    \"id\": \"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n    \"nome\": \"Pizzaria do Centro\",\n    \"slug\": \"pizzaria-do-centro\",\n    \"url_vitrine\": \"https://navitrine.app/pizzaria-do-centro\",\n    \"publicada\": true,\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\"\n  },\n  \"aberta\": true,\n  \"faixas_de_hoje\": [\n    {\n      \"inicio_minutos\": 1080,\n      \"fim_minutos\": 1380\n    }\n  ],\n  \"entrega\": {\n    \"faz_entrega\": true,\n    \"tempo_entrega\": \"40 a 60 min\",\n    \"navientrega\": false,\n    \"cidades\": [\n      {\n        \"cidade\": \"Juazeiro do Norte\",\n        \"estado\": \"CE\"\n      }\n    ]\n  },\n  \"formas_pagamento\": [\n    \"Credito\",\n    \"Debito\",\n    \"PIX\",\n    \"Dinheiro\"\n  ],\n  \"itens\": [\n    {\n      \"id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"referencia_externa\": null,\n      \"categoria\": \"Pizzas\",\n      \"nome\": \"Pizza média\",\n      \"descricao\": \"8 fatias\",\n      \"preco\": \"45.00\",\n      \"preco_original\": \"50.00\",\n      \"valor_sob_consulta\": false,\n      \"modelo_cobranca\": \"unidade\",\n      \"navientrega\": true,\n      \"grupos\": [\n        {\n          \"id\": \"7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d\",\n          \"nome\": \"Borda\",\n          \"obrigatorio\": false,\n          \"minimo_selecao\": 0,\n          \"maximo_selecao\": 1,\n          \"opcoes\": [\n            {\n              \"id\": \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\",\n              \"nome\": \"Catupiry\",\n              \"preco\": \"6.00\",\n              \"disponivel\": true\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}"},{"id":"4051cfda-3932-4386-a81e-a0b985f16ab7","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/vitrine"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"023dda95-04b8-4fb5-b1bd-a003270b7980","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/vitrine"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"93f91e2f-2f9d-490c-adf2-53e775529d14","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/vitrine"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"2feae22e-5181-4ec8-a117-c71cfae54810"}],"id":"dcd83910-7a36-475c-bf9c-867f0351a7c0","description":"<p>Cadastro e horário de funcionamento da loja na vitrine.</p>\n","_postman_id":"dcd83910-7a36-475c-bf9c-867f0351a7c0","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}}},{"name":"Catálogo","item":[{"name":"Seções do catálogo da loja.","id":"daceb516-56ea-4206-9781-24e40a5c400c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/categorias","description":"<p>As divisões que organizam o catálogo na vitrine (\"Bebidas\", \"Higiene\"). São da\nloja, e não as categorias do marketplace — estas o Navitrine administra.</p>\n","urlObject":{"path":["categorias"],"host":["https://api.navitrine.app/api/v1"],"query":[{"disabled":true,"description":{"content":"<p>Página, começando em 1.</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Itens por página (máximo 200).</p>\n","type":"text/plain"},"key":"perPage","value":"50"}],"variable":[]}},"response":[{"id":"d5ed36ba-e0ef-4236-848b-5cd2c3010bdd","name":"Seções da loja.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias?page=1&perPage=50","host":["https://api.navitrine.app/api/v1"],"path":["categorias"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"nome\": \"Medicamentos\",\n      \"ordem\": 1,\n      \"ativa\": true,\n      \"total_itens\": 128,\n      \"criado_em\": \"2026-08-01T12:00:00.000Z\"\n    },\n    {\n      \"id\": \"2c3d4e5f-6071-4b8c-9dae-1f2a3b4c5d6e\",\n      \"nome\": \"Higiene e beleza\",\n      \"ordem\": 2,\n      \"ativa\": true,\n      \"total_itens\": 76,\n      \"criado_em\": \"2026-08-01T12:04:00.000Z\"\n    }\n  ],\n  \"page\": 1,\n  \"perPage\": 50,\n  \"total\": 2\n}"},{"id":"d39cb8d0-f0cd-4fac-a60d-58fd7736d5ed","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias?page=1&perPage=50","host":["https://api.navitrine.app/api/v1"],"path":["categorias"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"935ccb42-8334-40eb-8960-cd5e0cb8e3a5","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias?page=1&perPage=50","host":["https://api.navitrine.app/api/v1"],"path":["categorias"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"eb5e7471-55dc-4aad-999b-e9284bd3b07a","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias?page=1&perPage=50","host":["https://api.navitrine.app/api/v1"],"path":["categorias"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"daceb516-56ea-4206-9781-24e40a5c400c"},{"name":"Cria uma seção no catálogo.","id":"91413146-66b9-4bf5-80ce-f170e7981af4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"Bebidas\",\n  \"ordem\": 1,\n  \"ativa\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/categorias","urlObject":{"path":["categorias"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"71f66a25-fd9f-4680-aab2-89d7482a1ac0","name":"Seção criada.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"Bebidas\",\n  \"ordem\": 1,\n  \"ativa\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/categorias"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d\",\n  \"nome\": \"Medicamentos\",\n  \"ordem\": 1,\n  \"ativa\": true,\n  \"total_itens\": 0,\n  \"criado_em\": \"2026-08-01T12:00:00.000Z\"\n}"},{"id":"a8b0f4c1-c903-47f1-a510-33d14f9d8e49","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"Bebidas\",\n  \"ordem\": 1,\n  \"ativa\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/categorias"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"e52a6c15-8dfa-4dd6-82df-276a1ae5cf29","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"Bebidas\",\n  \"ordem\": 1,\n  \"ativa\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/categorias"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"6228d34b-01c1-49e8-84ad-9638846d74a4","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"Bebidas\",\n  \"ordem\": 1,\n  \"ativa\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/categorias"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"c2ee7d9a-0f22-48fd-bfe9-313921ba6457","name":"Já existe uma seção com esse nome na loja.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"Bebidas\",\n  \"ordem\": 1,\n  \"ativa\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/categorias"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 409,\n  \"path\": \"/api/v1/categorias\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Já existe uma seção com esse nome na loja\"\n}"},{"id":"e20cb201-0a16-4043-a150-de9cd3891358","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"Bebidas\",\n  \"ordem\": 1,\n  \"ativa\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/categorias"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"91413146-66b9-4bf5-80ce-f170e7981af4"},{"name":"Edita a seção do catálogo.","id":"9d3b1faa-873c-4008-a3e8-78d1d40071c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ordem\": 3\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/categorias/:id","description":"<p>Envie só os campos que mudam; os ausentes ficam como estão.</p>\n","urlObject":{"path":["categorias",":id"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[{"id":"a64b0859-687a-4065-b659-10c504ea6057","description":{"content":"<p>(Required) Identificador no Navitrine (uuid).</p>\n","type":"text/plain"},"type":"any","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","key":"id"}]}},"response":[{"id":"0b37b8b3-5d81-4239-86e5-08001118d761","name":"Seção atualizada.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ordem\": 3\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d\",\n  \"nome\": \"Medicamentos e genéricos\",\n  \"ordem\": 3,\n  \"ativa\": true,\n  \"total_itens\": 128,\n  \"criado_em\": \"2026-08-01T12:00:00.000Z\"\n}"},{"id":"aa8e7d21-d024-4583-a88d-fe8f6be17061","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ordem\": 3\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"45e6c5ea-3cc3-4606-8767-ab8ea217b242","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ordem\": 3\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"c3f01aae-a8c7-499b-89f1-d1815361ed65","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ordem\": 3\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"0de8a74c-d57d-449f-805a-83f7b663618a","name":"Não existe (ou não é desta loja).","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ordem\": 3\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 404,\n  \"path\": \"/api/v1/itens/9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Item não encontrado\"\n}"},{"id":"70e8007f-d646-4b18-953f-5ac6bcae431c","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ordem\": 3\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"9d3b1faa-873c-4008-a3e8-78d1d40071c9"},{"name":"Remove a seção do catálogo.","id":"8004e535-e356-41e4-8aae-af5fdd03df69","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/categorias/:id","description":"<p>Os itens da seção <strong>não</strong> são removidos: ficam sem seção e continuam na vitrine.</p>\n","urlObject":{"path":["categorias",":id"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[{"id":"1623ca47-47e8-42f3-9436-35c68f9ce7ed","description":{"content":"<p>(Required) Identificador no Navitrine (uuid).</p>\n","type":"text/plain"},"type":"any","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","key":"id"}]}},"response":[{"id":"eedb7b7f-44f8-49b8-9dfe-129ca6164f35","name":"Seção removida.","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"text/plain"}],"cookie":[],"responseTime":null,"body":""},{"id":"5f271d63-9cac-4299-b244-a0fd7e43f9a7","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"4c80b4ef-cd8c-4f69-bfbc-dd4a96dca344","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"a1f8c7b4-c6e7-4f0d-9c03-8dcbcaba94e3","name":"Não existe (ou não é desta loja).","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 404,\n  \"path\": \"/api/v1/itens/9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Item não encontrado\"\n}"},{"id":"d25567cd-32c6-4d3a-b622-f71821b7decf","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/categorias/:id","host":["https://api.navitrine.app/api/v1"],"path":["categorias",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"8004e535-e356-41e4-8aae-af5fdd03df69"},{"name":"Itens do catálogo da loja.","id":"96674898-9c27-49cf-9423-643468aee3d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/itens","description":"<p>Traz <strong>todos</strong> os itens da loja, inclusive os indisponíveis — é o seu catálogo como\no Navitrine o guarda, não o recorte que o cliente vê.</p>\n<p>Para sincronizar só o que mudou desde a última execução, use <code>atualizado_desde</code>.</p>\n","urlObject":{"path":["itens"],"host":["https://api.navitrine.app/api/v1"],"query":[{"disabled":true,"description":{"content":"<p>Página, começando em 1.</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Itens por página (máximo 200).</p>\n","type":"text/plain"},"key":"perPage","value":"50"},{"disabled":true,"description":{"content":"<p>Só os itens desta seção.</p>\n","type":"text/plain"},"key":"categoria_id","value":"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d"},{"disabled":true,"description":{"content":"<p>Filtra por disponibilidade.</p>\n","type":"text/plain"},"key":"disponivel","value":"true"},{"disabled":true,"description":{"content":"<p>Só o que mudou a partir deste instante (inclusive).</p>\n","type":"text/plain"},"key":"atualizado_desde","value":"2026-08-21T03:00:00.000Z"},{"disabled":true,"description":{"content":"<p>Busca pelo código do item no seu sistema.</p>\n","type":"text/plain"},"key":"referencia_externa","value":"SKU-4471"}],"variable":[]}},"response":[{"id":"db03aab7-10e7-4c63-977f-53598ee0a298","name":"Itens da loja.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens?page=1&perPage=50&categoria_id=1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d&disponivel=true&atualizado_desde=2026-08-21T03:00:00.000Z&referencia_externa=SKU-4471","host":["https://api.navitrine.app/api/v1"],"path":["itens"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"},{"key":"categoria_id","value":"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d"},{"key":"disponivel","value":"true"},{"key":"atualizado_desde","value":"2026-08-21T03:00:00.000Z"},{"key":"referencia_externa","value":"SKU-4471"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"descricao\": \"Analgésico e antitérmico.\",\n      \"tipo\": \"produto\",\n      \"preco\": \"12.90\",\n      \"preco_promocional\": \"9.90\",\n      \"desconto_percentual\": 23,\n      \"valor_sob_consulta\": false,\n      \"disponivel\": true,\n      \"categoria_id\": \"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"foto_url\": \"https://cdn.navitrine.app/imagens/dipirona-500.webp\",\n      \"criado_em\": \"2026-08-01T12:00:00.000Z\",\n      \"atualizado_em\": \"2026-08-21T14:32:00.000Z\"\n    },\n    {\n      \"id\": \"4e5f6071-8293-4dae-9fb0-3b4c5d6e7f80\",\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Shampoo Anticaspa 200ml\",\n      \"descricao\": null,\n      \"tipo\": \"produto\",\n      \"preco\": \"24.00\",\n      \"preco_promocional\": null,\n      \"desconto_percentual\": null,\n      \"valor_sob_consulta\": false,\n      \"disponivel\": true,\n      \"categoria_id\": \"2c3d4e5f-6071-4b8c-9dae-1f2a3b4c5d6e\",\n      \"foto_url\": null,\n      \"criado_em\": \"2026-08-03T09:14:00.000Z\",\n      \"atualizado_em\": \"2026-08-20T08:00:00.000Z\"\n    }\n  ],\n  \"page\": 1,\n  \"perPage\": 50,\n  \"total\": 204\n}"},{"id":"e8500a85-847f-46d7-9132-5eeaaebb054a","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens?page=1&perPage=50&categoria_id=1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d&disponivel=true&atualizado_desde=2026-08-21T03:00:00.000Z&referencia_externa=SKU-4471","host":["https://api.navitrine.app/api/v1"],"path":["itens"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"},{"key":"categoria_id","value":"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d"},{"key":"disponivel","value":"true"},{"key":"atualizado_desde","value":"2026-08-21T03:00:00.000Z"},{"key":"referencia_externa","value":"SKU-4471"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"0e34e79c-b606-4259-8b0c-07032da35c4e","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens?page=1&perPage=50&categoria_id=1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d&disponivel=true&atualizado_desde=2026-08-21T03:00:00.000Z&referencia_externa=SKU-4471","host":["https://api.navitrine.app/api/v1"],"path":["itens"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"},{"key":"categoria_id","value":"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d"},{"key":"disponivel","value":"true"},{"key":"atualizado_desde","value":"2026-08-21T03:00:00.000Z"},{"key":"referencia_externa","value":"SKU-4471"}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"6d09baa4-0c07-46b0-b470-d8969a75ef5d","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens?page=1&perPage=50&categoria_id=1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d&disponivel=true&atualizado_desde=2026-08-21T03:00:00.000Z&referencia_externa=SKU-4471","host":["https://api.navitrine.app/api/v1"],"path":["itens"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"},{"key":"categoria_id","value":"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d"},{"key":"disponivel","value":"true"},{"key":"atualizado_desde","value":"2026-08-21T03:00:00.000Z"},{"key":"referencia_externa","value":"SKU-4471"}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"96674898-9c27-49cf-9423-643468aee3d0"},{"name":"Cadastra um item no catálogo.","id":"2ca602aa-6f7f-4da5-bf62-8fa620a5f972","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"disponivel\": true,\n  \"foto_url\": \"https://cdn.exemplo.com/dipirona.jpg\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens","description":"<p>O plano da loja limita quantos itens ela pode ter. Estourado o limite, a resposta é\n<strong>403</strong> com a mensagem do plano — o item não é criado.</p>\n","urlObject":{"path":["itens"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5969d006-d233-4b2a-98ff-4481354cdb71","name":"Item criado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"disponivel\": true,\n  \"foto_url\": \"https://cdn.exemplo.com/dipirona.jpg\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"tipo\": \"produto\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"desconto_percentual\": 23,\n  \"valor_sob_consulta\": false,\n  \"disponivel\": true,\n  \"categoria_id\": \"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d\",\n  \"foto_url\": \"https://cdn.navitrine.app/imagens/dipirona-500.webp\",\n  \"criado_em\": \"2026-08-01T12:00:00.000Z\",\n  \"atualizado_em\": \"2026-08-21T14:32:00.000Z\"\n}"},{"id":"7c1dfb13-27ec-40bf-a67d-cf22b69296d1","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"disponivel\": true,\n  \"foto_url\": \"https://cdn.exemplo.com/dipirona.jpg\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"6c77add6-3a0e-441c-8ddc-90728a62659a","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"disponivel\": true,\n  \"foto_url\": \"https://cdn.exemplo.com/dipirona.jpg\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"3f746185-31f5-418d-ba6c-02d668b386bd","name":"Sem escopo, ou o plano da loja não comporta mais itens.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"disponivel\": true,\n  \"foto_url\": \"https://cdn.exemplo.com/dipirona.jpg\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Seu plano permite até 50 itens. Faça upgrade do plano ou remova itens para adicionar mais.\"\n}"},{"id":"0be506f3-57be-4f54-b210-35db1015baf5","name":"Já existe item com esta `referencia_externa` na loja.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"disponivel\": true,\n  \"foto_url\": \"https://cdn.exemplo.com/dipirona.jpg\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 409,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Já existe um item com esta referência nesta loja\"\n}"},{"id":"075ee7a4-6de1-4947-982c-31b5e8618147","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"disponivel\": true,\n  \"foto_url\": \"https://cdn.exemplo.com/dipirona.jpg\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"2ca602aa-6f7f-4da5-bf62-8fa620a5f972"},{"name":"Cria ou atualiza até 500 itens de uma vez.","id":"534b0356-ca31-4c31-bbcb-4c65000dae39","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"remover_ausentes\": false,\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"preco\": \"12.90\",\n      \"disponivel\": true\n    },\n    {\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Álcool em gel 500ml\",\n      \"preco\": \"18.50\",\n      \"disponivel\": false\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens/lote","description":"<p>O jeito recomendado de manter o catálogo em dia quando ele vive no seu sistema.</p>\n<p>Cada item é casado pela <code>referencia_externa</code> (o código dele no seu sistema): o que\nnão existe é criado, o que existe é atualizado. Você não precisa guardar os ids do\nNavitrine em lugar nenhum.</p>\n<p>O lote <strong>não é tudo ou nada</strong>: cada item é conferido e gravado por conta própria, e a\nresposta diz o que aconteceu com cada um. Um preço inválido numa linha não derruba as\noutras 499 — aquela linha volta com <code>situacao: \"falha\"</code> e o motivo, e o resto entra.</p>\n<p><code>resultados</code> vem <strong>na mesma ordem do que você enviou</strong>, então dá para conciliar linha\na linha sem casar pela referência. As remoções, quando houver, aparecem no fim.</p>\n<p>Com <code>remover_ausentes: true</code>, os itens da loja que não vierem no lote são removidos —\nuse quando o envio for o catálogo <strong>inteiro</strong>, nunca num envio parcial. Item cuja\nlinha foi recusada <strong>não</strong> é removido: mandar torto e não mandar são coisas\ndiferentes, e só a segunda justifica sumir com ele da vitrine.</p>\n<p>O corpo inteiro só é recusado (400) quando nem o envelope se sustenta: <code>itens</code>\nausente, vazio ou com mais de 500 linhas.</p>\n","urlObject":{"path":["itens","lote"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9ae30aa0-61c1-470f-a12c-b596d50e5903","name":"Lote processado. Veja item a item o que aconteceu.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"remover_ausentes\": false,\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"preco\": \"12.90\",\n      \"disponivel\": true\n    },\n    {\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Álcool em gel 500ml\",\n      \"preco\": \"18.50\",\n      \"disponivel\": false\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens/lote"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"criados\": 1,\n  \"atualizados\": 1,\n  \"removidos\": 0,\n  \"falhas\": 1,\n  \"resultados\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"situacao\": \"criado\",\n      \"item_id\": \"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\"\n    },\n    {\n      \"referencia_externa\": \"SKU-9902\",\n      \"situacao\": \"atualizado\",\n      \"item_id\": \"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d\"\n    },\n    {\n      \"referencia_externa\": \"SKU-1000\",\n      \"situacao\": \"falha\",\n      \"item_id\": null,\n      \"erro\": \"preco: O preço deve ser um valor decimal, como \\\"49.90\\\"\"\n    }\n  ]\n}"},{"id":"406af777-2f70-41d0-a77c-e55a7ffcc566","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"remover_ausentes\": false,\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"preco\": \"12.90\",\n      \"disponivel\": true\n    },\n    {\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Álcool em gel 500ml\",\n      \"preco\": \"18.50\",\n      \"disponivel\": false\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens/lote"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"a00bf2a6-d43c-40c0-b1c0-b35e7306d592","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"remover_ausentes\": false,\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"preco\": \"12.90\",\n      \"disponivel\": true\n    },\n    {\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Álcool em gel 500ml\",\n      \"preco\": \"18.50\",\n      \"disponivel\": false\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens/lote"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"c3bb4aea-b71c-4596-81a3-d764e5b65255","name":"Sem o escopo `catalogo:escrever`, ou a loja está sem assinatura paga ativa —\ncatálogo pela API segue a mesma regra do painel.\n","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"remover_ausentes\": false,\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"preco\": \"12.90\",\n      \"disponivel\": true\n    },\n    {\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Álcool em gel 500ml\",\n      \"preco\": \"18.50\",\n      \"disponivel\": false\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens/lote"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens/lote\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Ative uma assinatura paga para gerenciar seu catálogo\"\n}"},{"id":"c060030a-cf1c-402f-a34a-60d701c8ee4a","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"remover_ausentes\": false,\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"preco\": \"12.90\",\n      \"disponivel\": true\n    },\n    {\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Álcool em gel 500ml\",\n      \"preco\": \"18.50\",\n      \"disponivel\": false\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens/lote"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"534b0356-ca31-4c31-bbcb-4c65000dae39"},{"name":"Detalhe de um item.","id":"3f1915f7-d705-4569-ab3e-1d11a7ccaa59","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/itens/:id","urlObject":{"path":["itens",":id"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[{"id":"c084619e-ee94-462a-95d0-b4e9529a25b0","description":{"content":"<p>(Required) Identificador no Navitrine (uuid).</p>\n","type":"text/plain"},"type":"any","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","key":"id"}]}},"response":[{"id":"c74bc4e7-9b35-4b43-a8d4-f99d9724f0b8","name":"Item.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"tipo\": \"produto\",\n  \"preco\": \"12.90\",\n  \"preco_promocional\": \"9.90\",\n  \"desconto_percentual\": 23,\n  \"valor_sob_consulta\": false,\n  \"disponivel\": true,\n  \"categoria_id\": \"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d\",\n  \"foto_url\": \"https://cdn.navitrine.app/imagens/dipirona-500.webp\",\n  \"criado_em\": \"2026-08-01T12:00:00.000Z\",\n  \"atualizado_em\": \"2026-08-21T14:32:00.000Z\"\n}"},{"id":"d3d74fc2-8c98-44c9-bab4-f7c91e9908bd","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"375a7654-d8dd-4757-aeb4-e20f80dd8c0d","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"dc7a8623-e0a0-4716-8412-cc4d3fe81007","name":"Não existe (ou não é desta loja).","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 404,\n  \"path\": \"/api/v1/itens/9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Item não encontrado\"\n}"},{"id":"db45cda4-9448-4109-8fad-30d3b3f434be","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"3f1915f7-d705-4569-ab3e-1d11a7ccaa59"},{"name":"Edita um item do catálogo.","id":"80b904ee-e987-43b7-9127-be72234da408","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"preco\": \"13.50\",\n  \"disponivel\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/itens/:id","description":"<p>Envie só o que muda. Para tirar o item da vitrine sem apagá-lo — o caso de \"acabou\no estoque\" — mande <code>disponivel: false</code>.</p>\n","urlObject":{"path":["itens",":id"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[{"id":"3141c1c7-b2c3-4b17-88c3-46bc67d4856c","description":{"content":"<p>(Required) Identificador no Navitrine (uuid).</p>\n","type":"text/plain"},"type":"any","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","key":"id"}]}},"response":[{"id":"9497d8b5-67d3-45b1-a6a2-ac396a206664","name":"Item atualizado.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"preco\": \"13.50\",\n  \"disponivel\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n  \"referencia_externa\": \"SKU-4471\",\n  \"nome\": \"Dipirona 500mg 10 comprimidos\",\n  \"descricao\": \"Analgésico e antitérmico.\",\n  \"tipo\": \"produto\",\n  \"preco\": \"13.50\",\n  \"preco_promocional\": null,\n  \"desconto_percentual\": null,\n  \"valor_sob_consulta\": false,\n  \"disponivel\": false,\n  \"categoria_id\": \"1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d\",\n  \"foto_url\": \"https://cdn.navitrine.app/imagens/dipirona-500.webp\",\n  \"criado_em\": \"2026-08-01T12:00:00.000Z\",\n  \"atualizado_em\": \"2026-08-21T15:10:00.000Z\"\n}"},{"id":"be6cd6d8-8231-4ffe-a975-ff7faeb4964c","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"preco\": \"13.50\",\n  \"disponivel\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"136aad7c-0130-4ddd-9318-ed71f01facb4","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"preco\": \"13.50\",\n  \"disponivel\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"a1520a1a-585c-4f30-a29c-4741fb5f0642","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"preco\": \"13.50\",\n  \"disponivel\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"c11a8ea3-c182-4e67-b2a9-20cf9f6cbd1a","name":"Não existe (ou não é desta loja).","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"preco\": \"13.50\",\n  \"disponivel\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 404,\n  \"path\": \"/api/v1/itens/9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Item não encontrado\"\n}"},{"id":"054c29e1-a57e-4c5a-9389-1eea4aa3c1c2","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"PATCH","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"preco\": \"13.50\",\n  \"disponivel\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"80b904ee-e987-43b7-9127-be72234da408"},{"name":"Remove um item do catálogo.","id":"368f3b31-9679-4497-9337-e42dd58449bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/itens/:id","description":"<p>Some da vitrine na hora. Pedidos antigos que citam o item continuam intactos.</p>\n","urlObject":{"path":["itens",":id"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[{"id":"a0902f81-602e-4b59-a31f-6e30634266d9","description":{"content":"<p>(Required) Identificador no Navitrine (uuid).</p>\n","type":"text/plain"},"type":"any","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","key":"id"}]}},"response":[{"id":"65b67bab-c13b-4423-b8f2-863bdd220980","name":"Item removido.","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"text/plain"}],"cookie":[],"responseTime":null,"body":""},{"id":"b2b66cee-b204-4e2e-ba99-f4a5c9c037dc","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"11805493-6d63-435d-912c-0a45ff6bda7e","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"33e6a223-3a8a-47a7-bf72-41e2cffc0547","name":"Não existe (ou não é desta loja).","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 404,\n  \"path\": \"/api/v1/itens/9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Item não encontrado\"\n}"},{"id":"2fe1953f-4050-4375-9f03-bb2732cf6ffb","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"DELETE","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/itens/:id","host":["https://api.navitrine.app/api/v1"],"path":["itens",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"368f3b31-9679-4497-9337-e42dd58449bd"}],"id":"69a3709f-1509-4b41-acfc-410c54750dd0","description":"<p>Seções e itens — o que a vitrine mostra ao cliente.</p>\n","_postman_id":"69a3709f-1509-4b41-acfc-410c54750dd0","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}}},{"name":"Pedidos","item":[{"name":"Pedidos recebidos pela loja.","id":"18adacaf-c47f-4c63-af9d-7b68613f9845","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/pedidos","description":"<p>Do mais recente para o mais antigo. Para buscar só o que chegou depois da última\nconsulta, use <code>desde</code> com o instante da execução anterior.</p>\n<p>Quem prefere não consultar de tempos em tempos pode configurar um webhook e receber\ncada pedido assim que ele acontece.</p>\n","urlObject":{"path":["pedidos"],"host":["https://api.navitrine.app/api/v1"],"query":[{"disabled":true,"description":{"content":"<p>Página, começando em 1.</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Itens por página (máximo 200).</p>\n","type":"text/plain"},"key":"perPage","value":"50"},{"disabled":true,"description":{"content":"<p>Só pedidos criados a partir deste instante (inclusive).</p>\n","type":"text/plain"},"key":"desde","value":"2026-08-21T03:00:00.000Z"},{"disabled":true,"description":{"content":"<p>Só pedidos criados até este instante.</p>\n","type":"text/plain"},"key":"ate","value":"2026-08-22T03:00:00.000Z"},{"disabled":true,"description":{"content":"<p>Só os pedidos deste cliente. Dígitos com DDD; o 55 da frente é ignorado. Serve\npara o \"cadê meu pedido?\" de um atendimento por WhatsApp.</p>\n","type":"text/plain"},"key":"telefone","value":"88999998888"}],"variable":[]}},"response":[{"id":"67cf64a4-327f-4a1a-bb4f-1adfee772860","name":"Pedidos da loja.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos?page=1&perPage=50&desde=2026-08-21T03:00:00.000Z&ate=2026-08-22T03:00:00.000Z&telefone=88999998888","host":["https://api.navitrine.app/api/v1"],"path":["pedidos"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"},{"key":"desde","value":"2026-08-21T03:00:00.000Z"},{"key":"ate","value":"2026-08-22T03:00:00.000Z"},{"key":"telefone","value":"88999998888"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"5f607182-93a4-4ebf-80c1-4c5d6e7f8091\",\n      \"numero\": 1043,\n      \"criado_em\": \"2026-08-21T14:32:00.000Z\",\n      \"situacao\": \"recebido\",\n      \"origem\": {\n        \"tipo\": \"app\",\n        \"nome\": null\n      },\n      \"cliente\": {\n        \"nome\": \"Maria Souza\",\n        \"telefone\": \"82999998888\"\n      },\n      \"itens\": [\n        {\n          \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n          \"referencia_externa\": \"SKU-4471\",\n          \"nome\": \"Dipirona 500mg 10 comprimidos\",\n          \"quantidade\": 2,\n          \"preco_unitario\": \"9.90\",\n          \"total\": \"19.80\",\n          \"adicionais\": [],\n          \"total_com_adicionais\": \"19.80\"\n        },\n        {\n          \"item_id\": \"4e5f6071-8293-4dae-9fb0-3b4c5d6e7f80\",\n          \"referencia_externa\": \"SKU-9902\",\n          \"nome\": \"Shampoo Anticaspa 200ml\",\n          \"quantidade\": 1,\n          \"preco_unitario\": \"24.00\",\n          \"total\": \"24.00\",\n          \"adicionais\": [],\n          \"total_com_adicionais\": \"24.00\"\n        }\n      ],\n      \"subtotal\": \"43.80\",\n      \"forma_pagamento\": \"PIX\",\n      \"entrega\": true,\n      \"endereco_entrega\": {\n        \"cep\": \"57300000\",\n        \"rua\": \"Rua do Comércio\",\n        \"numero\": \"150\",\n        \"complemento\": \"Apto 202\",\n        \"bairro\": \"Centro\",\n        \"cidade\": \"Arapiraca\",\n        \"estado\": \"AL\"\n      },\n      \"observacoes\": \"Sem sacola, por favor.\"\n    }\n  ],\n  \"page\": 1,\n  \"perPage\": 50,\n  \"total\": 37\n}"},{"id":"14e4085c-4ff4-417f-bc40-689692982c27","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos?page=1&perPage=50&desde=2026-08-21T03:00:00.000Z&ate=2026-08-22T03:00:00.000Z&telefone=88999998888","host":["https://api.navitrine.app/api/v1"],"path":["pedidos"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"},{"key":"desde","value":"2026-08-21T03:00:00.000Z"},{"key":"ate","value":"2026-08-22T03:00:00.000Z"},{"key":"telefone","value":"88999998888"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"2dae642a-99b6-433d-a188-46a05f4a01ef","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos?page=1&perPage=50&desde=2026-08-21T03:00:00.000Z&ate=2026-08-22T03:00:00.000Z&telefone=88999998888","host":["https://api.navitrine.app/api/v1"],"path":["pedidos"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"},{"key":"desde","value":"2026-08-21T03:00:00.000Z"},{"key":"ate","value":"2026-08-22T03:00:00.000Z"},{"key":"telefone","value":"88999998888"}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"9970041c-d9ad-4dfa-9229-dd03b67a7aa4","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos?page=1&perPage=50&desde=2026-08-21T03:00:00.000Z&ate=2026-08-22T03:00:00.000Z&telefone=88999998888","host":["https://api.navitrine.app/api/v1"],"path":["pedidos"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"},{"key":"desde","value":"2026-08-21T03:00:00.000Z"},{"key":"ate","value":"2026-08-22T03:00:00.000Z"},{"key":"telefone","value":"88999998888"}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"18adacaf-c47f-4c63-af9d-7b68613f9845"},{"name":"Cria um pedido na loja em nome do cliente.","id":"04afcc15-4610-47e3-95ba-a76a880a1e85","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos","description":"<p>Para quem fecha o pedido por fora do app, como um atendimento por WhatsApp. O\npreço sai do catálogo, nunca do corpo. O pedido nasce igual ao do app: aparece\nno painel, avisa o lojista e dispara o webhook <code>pedido.criado</code>.</p>\n<p>Recusa com <strong>422</strong> quando a loja está fechada agora e com <strong>400</strong> quando um item\nou adicional não está mais à venda. A mensagem já vem numa frase que pode ser\nmostrada ao cliente. A entrega, quando há, é da própria loja: a Navientrega\nainda não está nesta rota. Observação por item, troco e ponto de referência vão\nnas observações do pedido.</p>\n<p>Use <code>Idempotency-Key</code>: uma nova tentativa com a mesma chave não duplica o pedido.\nPara mostrar o total ao cliente antes de criar, use <code>POST /pedidos/previa</code>.</p>\n","urlObject":{"path":["pedidos"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a83d020a-cf46-42ff-a367-258eb6dd74d8","name":"Pedido criado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"5f607182-93a4-4ebf-80c1-4c5d6e7f8091\",\n  \"numero\": 1044,\n  \"criado_em\": \"2026-08-21T19:05:00.000Z\",\n  \"situacao\": \"recebido\",\n  \"origem\": {\n    \"tipo\": \"api\",\n    \"nome\": \"NaviZap\"\n  },\n  \"cliente\": {\n    \"nome\": \"Maria Souza\",\n    \"telefone\": \"5588999998888\"\n  },\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"referencia_externa\": null,\n      \"nome\": \"Pizza média\",\n      \"quantidade\": 1,\n      \"preco_unitario\": \"45.00\",\n      \"total\": \"45.00\",\n      \"adicionais\": [\n        {\n          \"grupo\": \"Borda\",\n          \"opcao\": \"Catupiry\",\n          \"preco\": \"6.00\"\n        }\n      ],\n      \"total_com_adicionais\": \"51.00\"\n    }\n  ],\n  \"subtotal\": \"51.00\",\n  \"tem_itens_sob_consulta\": false,\n  \"modo_entrega\": \"loja\",\n  \"entrega_valor\": null,\n  \"total\": null,\n  \"forma_pagamento\": \"Dinheiro\",\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"cep\": \"\",\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"complemento\": null,\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\"\n  },\n  \"observacoes\": \"Tocar a campainha\\nPizza média: Sem cebola\\nTroco para R$ 100,00\\nPonto de referência: Em frente à praça\"\n}"},{"id":"b57efdc2-2a72-42a6-86cd-7ef31ccb08be","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"1163e30c-28a6-4512-9775-f80eae390266","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"4778d4b4-0423-49e2-bec8-34cf0cc4c279","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"de7b06b0-701c-465e-8bf6-dfb611493ab5","name":"A loja está fechada agora.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 422,\n  \"path\": \"/api/v1/pedidos\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"A loja está fechada agora\"\n}"},{"id":"f15d83cd-5855-4b9e-81fa-35de0940c9a3","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"description":"Valor único seu (um uuid serve). Repetindo a chamada com a mesma chave em até 24h,\na resposta é a da primeira — nada é criado duas vezes.\n","key":"Idempotency-Key","value":"3f6b0c1e-9a2f-4d6b-8c4e-7a3015b2c9d8","disabled":true},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"04afcc15-4610-47e3-95ba-a76a880a1e85"},{"name":"A conta do pedido, sem criar nada.","id":"11a2e02e-544c-4fca-8bee-2ca8f8a60e7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos/previa","description":"<p>Mesmo corpo de <code>POST /pedidos</code> e as mesmas recusas. Serve para mostrar ao\ncliente o total antes de ele confirmar. O pedido, quando criado, refaz a conta.</p>\n","urlObject":{"path":["pedidos","previa"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b722e6a6-2b7b-4fb5-a9c4-88e8f0bab61b","name":"A conta do pedido.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos/previa"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"linhas\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"nome\": \"Pizza média\",\n      \"quantidade\": 1,\n      \"adicionais\": [\n        \"Catupiry\"\n      ],\n      \"preco_unitario\": \"51.00\",\n      \"total\": \"51.00\",\n      \"valor_sob_consulta\": false\n    }\n  ],\n  \"subtotal\": \"51.00\",\n  \"entrega_valor\": null,\n  \"total\": \"51.00\",\n  \"tem_itens_sob_consulta\": false\n}"},{"id":"8ea6c9a6-bc86-4960-b0d7-303162518d76","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos/previa"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"94fe33e5-624c-4d32-a9d5-b68956471c97","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos/previa"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"84bb09a8-10f6-41b4-b20f-853ec12adf7d","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos/previa"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"6bfa540d-e37c-41e2-a634-2dd36fe57bc6","name":"A loja está fechada agora.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos/previa"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 422,\n  \"path\": \"/api/v1/pedidos/previa\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"A loja está fechada agora\"\n}"},{"id":"5879859e-8b64-4afa-81a1-6754495a0bd8","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza\",\n  \"cliente_telefone\": \"5588999998888\",\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"quantidade\": 1,\n      \"opcoes_ids\": [\n        \"8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e\"\n      ],\n      \"observacao\": \"Sem cebola\"\n    }\n  ],\n  \"forma_pagamento\": \"Dinheiro\",\n  \"troco_para\": 100,\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"rua\": \"Rua São Pedro\",\n    \"numero\": \"120\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Juazeiro do Norte\",\n    \"estado\": \"CE\",\n    \"referencia\": \"Em frente à praça\"\n  },\n  \"observacoes\": \"Tocar a campainha\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/pedidos/previa"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"11a2e02e-544c-4fca-8bee-2ca8f8a60e7b"},{"name":"Detalhe de um pedido.","id":"b95d5436-77e8-47e3-a4ff-b8957fcd51c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/pedidos/:id","description":"<p>O mesmo pedido que chega pelo webhook, útil para reprocessar um evento perdido.</p>\n","urlObject":{"path":["pedidos",":id"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[{"id":"ee3aecb5-247f-4537-b18b-ec5eb29588f2","description":{"content":"<p>(Required) Identificador no Navitrine (uuid).</p>\n","type":"text/plain"},"type":"any","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","key":"id"}]}},"response":[{"id":"d20df07e-ceac-4319-bd80-0c55759cdd94","name":"Pedido.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos/:id","host":["https://api.navitrine.app/api/v1"],"path":["pedidos",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"5f607182-93a4-4ebf-80c1-4c5d6e7f8091\",\n  \"numero\": 1043,\n  \"criado_em\": \"2026-08-21T14:32:00.000Z\",\n  \"situacao\": \"recebido\",\n  \"origem\": {\n    \"tipo\": \"app\",\n    \"nome\": null\n  },\n  \"cliente\": {\n    \"nome\": \"Maria Souza\",\n    \"telefone\": \"82999998888\"\n  },\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"quantidade\": 2,\n      \"preco_unitario\": \"9.90\",\n      \"total\": \"19.80\",\n      \"adicionais\": [],\n      \"total_com_adicionais\": \"19.80\"\n    },\n    {\n      \"item_id\": \"4e5f6071-8293-4dae-9fb0-3b4c5d6e7f80\",\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Shampoo Anticaspa 200ml\",\n      \"quantidade\": 1,\n      \"preco_unitario\": \"24.00\",\n      \"total\": \"24.00\",\n      \"adicionais\": [],\n      \"total_com_adicionais\": \"24.00\"\n    }\n  ],\n  \"subtotal\": \"43.80\",\n  \"forma_pagamento\": \"PIX\",\n  \"entrega\": true,\n  \"endereco_entrega\": {\n    \"cep\": \"57300000\",\n    \"rua\": \"Rua do Comércio\",\n    \"numero\": \"150\",\n    \"complemento\": \"Apto 202\",\n    \"bairro\": \"Centro\",\n    \"cidade\": \"Arapiraca\",\n    \"estado\": \"AL\"\n  },\n  \"observacoes\": \"Sem sacola, por favor.\"\n}"},{"id":"2a6ff97a-1052-46e3-9bbf-412b79a1e4d2","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos/:id","host":["https://api.navitrine.app/api/v1"],"path":["pedidos",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"1855c8ef-de61-47da-9bce-6fd753d6a92c","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos/:id","host":["https://api.navitrine.app/api/v1"],"path":["pedidos",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"17223661-38e9-487f-8551-2a0349dd7b23","name":"Não existe (ou não é desta loja).","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos/:id","host":["https://api.navitrine.app/api/v1"],"path":["pedidos",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 404,\n  \"path\": \"/api/v1/itens/9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Item não encontrado\"\n}"},{"id":"8ce5d5cc-d9b5-4663-931b-1d3af954c2a5","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/pedidos/:id","host":["https://api.navitrine.app/api/v1"],"path":["pedidos",":id"],"variable":[{"key":"id","value":"9f1c2e7a-5b3d-4c8e-9a2f-1d6b7c4e8a30","description":"(Required) Identificador no Navitrine (uuid)."}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"b95d5436-77e8-47e3-a4ff-b8957fcd51c8"}],"id":"2b25fe94-5959-4991-b1e2-6f49912c8979","description":"<p>Pedidos feitos na vitrine, prontos para entrar no seu sistema.</p>\n","_postman_id":"2b25fe94-5959-4991-b1e2-6f49912c8979","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}}},{"name":"Webhooks","item":[{"name":"Para onde os eventos estão sendo enviados.","id":"128bc490-c25a-4337-9636-58880dbf26dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks","description":"<p>Devolve <code>null</code> quando não há webhook configurado. O segredo nunca volta inteiro —\nsó os últimos caracteres, para conferir qual está em uso.</p>\n","urlObject":{"path":["webhooks"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8d30e180-5471-4ed0-8c5f-4a4f071ebcc9","name":"Configuração atual (ou `null`).","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"url\": \"https://erp.minhaloja.com.br/integracoes/navitrine\",\n  \"eventos\": [\n    \"pedido.criado\"\n  ],\n  \"ativo\": true,\n  \"segredo_final\": \"…6a25\",\n  \"criado_em\": \"2026-08-10T09:00:00.000Z\"\n}"},{"id":"8b5d6099-1b6a-43af-b98e-102b80fb6e03","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"2023e26d-41cd-4deb-8bdd-faec2cd6d5fc","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"079669b9-28a8-44a9-b14b-15c480556e72","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"128bc490-c25a-4337-9636-58880dbf26dd"},{"name":"Define o endereço que receberá os eventos.","id":"8c3b773b-f46a-4a89-a343-6b7a737b463a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://erp.minhaloja.com.br/integracoes/navitrine\",\n  \"eventos\": [\n    \"pedido.criado\"\n  ],\n  \"ativo\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/webhooks","description":"<p>O endereço precisa ser <strong>https</strong>. Guarde o <code>segredo</code> da resposta: ele aparece uma\núnica vez e é com ele que você confere a assinatura de cada entrega.</p>\n<p>Enviar <code>ativo: false</code> pausa os envios sem perder a configuração.</p>\n","urlObject":{"path":["webhooks"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4cec0eae-cd24-4fa3-ae04-70f074b5448b","name":"Webhook configurado. O `segredo` só aparece aqui.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://erp.minhaloja.com.br/integracoes/navitrine\",\n  \"eventos\": [\n    \"pedido.criado\"\n  ],\n  \"ativo\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"url\": \"https://erp.minhaloja.com.br/integracoes/navitrine\",\n  \"eventos\": [\n    \"pedido.criado\"\n  ],\n  \"ativo\": true,\n  \"segredo_final\": \"…6a25\",\n  \"criado_em\": \"2026-08-10T09:00:00.000Z\",\n  \"segredo\": \"whsec_8faffb86719a064019be981ae7e4fba86056c743e5ea6a25\"\n}"},{"id":"f664fac8-8f4c-4e9b-a2ea-43a7b93cbab1","name":"Corpo ou parâmetro inválido — `errors` diz o motivo por campo.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://erp.minhaloja.com.br/integracoes/navitrine\",\n  \"eventos\": [\n    \"pedido.criado\"\n  ],\n  \"ativo\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"O preço deve ser um valor decimal\",\n  \"errors\": {\n    \"preco\": [\n      \"O preço deve ser um valor decimal\"\n    ]\n  }\n}"},{"id":"a8d0d0df-7754-4f8f-ad9a-8494516772bc","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://erp.minhaloja.com.br/integracoes/navitrine\",\n  \"eventos\": [\n    \"pedido.criado\"\n  ],\n  \"ativo\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"080c416d-e520-4005-ad20-3e4a77a9d190","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://erp.minhaloja.com.br/integracoes/navitrine\",\n  \"eventos\": [\n    \"pedido.criado\"\n  ],\n  \"ativo\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"8f7385a8-c422-4b8c-b15a-fa2a1d20ed1b","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"PUT","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://erp.minhaloja.com.br/integracoes/navitrine\",\n  \"eventos\": [\n    \"pedido.criado\"\n  ],\n  \"ativo\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/webhooks"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"8c3b773b-f46a-4a89-a343-6b7a737b463a"},{"name":"Histórico das entregas, da mais recente para a mais antiga.","id":"62ad7580-5a47-4a42-aa88-6da0a7f9534a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks/entregas","description":"<p>Serve para investigar o que chegou — ou por que não chegou — sem depender de nós\nolharmos o banco. Traz a situação de cada entrega, quantas tentativas houve, o\nstatus que o seu endereço devolveu e o erro registrado.</p>\n<p>Sem webhook configurado, devolve lista vazia.</p>\n","urlObject":{"path":["webhooks","entregas"],"host":["https://api.navitrine.app/api/v1"],"query":[{"disabled":true,"description":{"content":"<p>Página, começando em 1.</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Itens por página (máximo 200).</p>\n","type":"text/plain"},"key":"perPage","value":"50"}],"variable":[]}},"response":[{"id":"23ff5458-cc2e-4f9d-bf5d-b1e2d3b32b2b","name":"Entregas do seu webhook.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/webhooks/entregas?page=1&perPage=50","host":["https://api.navitrine.app/api/v1"],"path":["webhooks","entregas"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"60718293-a4b5-4fc0-91d2-5d6e7f809102\",\n      \"evento\": \"pedido.criado\",\n      \"situacao\": \"entregue\",\n      \"tentativas\": 1,\n      \"status_http\": 200,\n      \"erro\": null,\n      \"criado_em\": \"2026-08-21T14:32:01.000Z\",\n      \"ultima_tentativa_em\": \"2026-08-21T14:32:01.400Z\",\n      \"proxima_tentativa_em\": null\n    },\n    {\n      \"id\": \"71829304-b5c6-40d1-a2e3-6e7f80910213\",\n      \"evento\": \"pedido.criado\",\n      \"situacao\": \"falhou\",\n      \"tentativas\": 3,\n      \"status_http\": 502,\n      \"erro\": \"502 Bad Gateway\",\n      \"criado_em\": \"2026-08-21T11:05:00.000Z\",\n      \"ultima_tentativa_em\": \"2026-08-21T11:40:00.000Z\",\n      \"proxima_tentativa_em\": \"2026-08-21T13:40:00.000Z\"\n    }\n  ],\n  \"page\": 1,\n  \"perPage\": 50,\n  \"total\": 2\n}"},{"id":"75a50218-89f9-468f-b019-53a050916a19","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/webhooks/entregas?page=1&perPage=50","host":["https://api.navitrine.app/api/v1"],"path":["webhooks","entregas"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"038e52c5-752b-44aa-95c4-46cce505c92d","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/webhooks/entregas?page=1&perPage=50","host":["https://api.navitrine.app/api/v1"],"path":["webhooks","entregas"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"73e26e1d-2497-44a3-aae8-76f0405e96b7","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":{"raw":"https://api.navitrine.app/api/v1/webhooks/entregas?page=1&perPage=50","host":["https://api.navitrine.app/api/v1"],"path":["webhooks","entregas"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"50"}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"62ad7580-5a47-4a42-aa88-6da0a7f9534a"},{"name":"Dispara um evento de teste para o seu endereço.","id":"38ba57e8-d07f-444b-8f40-59a0c64c097c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks/teste","description":"<p>Envia um <code>pedido.criado</code> de mentira, com dados fictícios, e devolve o que o seu\nendereço respondeu — status, tempo e o começo do corpo. Serve para validar a\nassinatura e o parsing antes de o primeiro pedido real chegar.</p>\n","urlObject":{"path":["webhooks","teste"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"401129bf-4eb0-4805-bb37-5e79e49337bc","name":"Resultado da entrega de teste.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks/teste"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"entregue\": true,\n  \"status_http\": 200,\n  \"duracao_ms\": 412,\n  \"resposta\": \"{\\\"ok\\\":true}\",\n  \"erro\": null\n}"},{"id":"4c824390-51bf-412f-8ed4-88b72638e17d","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks/teste"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"cc7cd2c0-a97a-4a76-a549-fe7e65203bcd","name":"O token é válido, mas não tem o escopo exigido pela rota.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks/teste"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Este token não tem o escopo catalogo:escrever\"\n}"},{"id":"5a44c84a-183c-4633-a0a0-20729efa848a","name":"Não há webhook configurado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks/teste"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 409,\n  \"path\": \"/api/v1/webhooks/teste\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Nenhum webhook configurado para esta loja\"\n}"},{"id":"191044e1-4c1d-4824-b0f3-34eec24dd2dd","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/webhooks/teste"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"38ba57e8-d07f-444b-8f40-59a0c64c097c"}],"id":"a5b1d7cd-cc43-41c6-b88c-24ff7e57b572","description":"<p>Para onde o Navitrine avisa quando algo acontece.</p>\n","_postman_id":"a5b1d7cd-cc43-41c6-b88c-24ff7e57b572","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}}},{"name":"Desenvolvedor","item":[{"name":"Cria uma conta de desenvolvedor com loja de testes.","id":"bac27d65-5024-4226-b3f2-b44695937a16","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"ERP da Silva\",\n  \"email\": \"dev@erpdasilva.com.br\",\n  \"password\": \"uma-senha-boa-2026\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/dev/registrar","description":"<p>O começo de tudo para quem vai integrar: você sai daqui com uma credencial\n<code>nvt_test_</code> na mão e pode chamar a API na mesma sessão, sem falar com ninguém e\n<strong>sem precisar de um lojista</strong>.</p>\n<p>A loja criada é uma sandbox: não aparece na vitrine, não é cobrada e não dispara\nmensagem para lojista nenhum. Ela já vem com duas seções de exemplo, para o\nprimeiro <code>POST /itens/lote</code> ter onde cair.</p>\n<p><strong>A credencial só aparece nesta resposta.</strong> O login criado serve para gerar outra\ndepois, pelo painel.</p>\n<p>Esta é a única rota da API que não pede autenticação — e tem teto próprio de\ncadastros por hora.</p>\n","urlObject":{"path":["dev","registrar"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5eb35540-cbe2-4415-a0cc-a62fab652d50","name":"Conta criada. Guarde a credencial — ela não volta.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"ERP da Silva\",\n  \"email\": \"dev@erpdasilva.com.br\",\n  \"password\": \"uma-senha-boa-2026\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/dev/registrar"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"loja\": {\n    \"id\": \"82930415-c6d7-41e2-b3f4-7f8091021324\",\n    \"nome\": \"ERP da Silva (sandbox)\",\n    \"slug\": \"erp-da-silva-sandbox\"\n  },\n  \"credencial\": {\n    \"token\": \"nvt_test_PDYOOXMl428GuSZR2XK8QGl0ADsKnt3jU7Uak48lw\",\n    \"escopos\": [\n      \"catalogo:ler\",\n      \"catalogo:escrever\",\n      \"pedidos:ler\",\n      \"webhooks:gerenciar\"\n    ]\n  },\n  \"login\": {\n    \"email\": \"dev@erpdasilva.com.br\"\n  }\n}"},{"id":"29301ca9-9f23-4bdc-92b7-72c89f73efae","name":"Dados inválidos, ou cadastros demais em pouco tempo.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"ERP da Silva\",\n  \"email\": \"dev@erpdasilva.com.br\",\n  \"password\": \"uma-senha-boa-2026\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/dev/registrar"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/dev/registrar\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Muitos cadastros de desenvolvedor em pouco tempo. Tente de novo em alguns minutos ou fale com o suporte.\"\n}"},{"id":"4a159242-51a0-4df6-9813-8483c90452d3","name":"Já existe conta com este e-mail.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"nome\": \"ERP da Silva\",\n  \"email\": \"dev@erpdasilva.com.br\",\n  \"password\": \"uma-senha-boa-2026\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/dev/registrar"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 409,\n  \"path\": \"/api/v1/dev/registrar\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"E-mail já cadastrado\"\n}"}],"_postman_id":"bac27d65-5024-4226-b3f2-b44695937a16"}],"id":"45c3faa2-0759-40ef-8a8a-3e0d3bd1ee56","description":"<p>Cadastro auto-serviço de quem vai integrar. Única rota da API que não pede\ncredencial.</p>\n","_postman_id":"45c3faa2-0759-40ef-8a8a-3e0d3bd1ee56","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}}},{"name":"Loja de testes","item":[{"name":"Cria um pedido de mentira na loja de teste.","id":"7199c9f7-d9fa-4cca-9144-122178e2eac6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza (teste)\",\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"quantidade\": 2\n    }\n  ],\n  \"forma_pagamento\": \"PIX\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/sandbox/pedidos","description":"<p>Em produção o pedido nasce no app do cliente — sem esta rota, testar a integração\nde pedidos exigiria abrir a vitrine e fechar um carrinho a cada tentativa.</p>\n<p>Ela cria o pedido e dispara o <code>pedido.criado</code> no seu webhook, com o mesmo formato\nda produção: é o caminho para validar assinatura e parsing antes do primeiro\npedido real. Os itens são informados pela <code>referencia_externa</code> que você acabou de\nenviar na carga.</p>\n<p><strong>Só funciona com credencial <code>nvt_test_</code></strong>; em loja que vende, responde 403. E\nnenhuma mensagem sai para o lojista — loja de teste não dispara WhatsApp.</p>\n","urlObject":{"path":["sandbox","pedidos"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b9749ac4-e3ec-4590-84d1-68f7382cb127","name":"Pedido criado — o mesmo corpo que chega pelo webhook.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza (teste)\",\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"quantidade\": 2\n    }\n  ],\n  \"forma_pagamento\": \"PIX\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/sandbox/pedidos"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"5f607182-93a4-4ebf-80c1-4c5d6e7f8091\",\n  \"numero\": 1,\n  \"criado_em\": \"2026-08-21T14:32:00.000Z\",\n  \"situacao\": \"recebido\",\n  \"origem\": {\n    \"tipo\": \"app\",\n    \"nome\": null\n  },\n  \"cliente\": {\n    \"nome\": \"Maria Souza\",\n    \"telefone\": \"82999998888\"\n  },\n  \"itens\": [\n    {\n      \"item_id\": \"3d4e5f60-7182-4c9d-8eaf-2a3b4c5d6e7f\",\n      \"referencia_externa\": \"SKU-4471\",\n      \"nome\": \"Dipirona 500mg 10 comprimidos\",\n      \"quantidade\": 2,\n      \"preco_unitario\": \"9.90\",\n      \"total\": \"19.80\",\n      \"adicionais\": [],\n      \"total_com_adicionais\": \"19.80\"\n    },\n    {\n      \"item_id\": \"4e5f6071-8293-4dae-9fb0-3b4c5d6e7f80\",\n      \"referencia_externa\": \"SKU-9902\",\n      \"nome\": \"Shampoo Anticaspa 200ml\",\n      \"quantidade\": 1,\n      \"preco_unitario\": \"24.00\",\n      \"total\": \"24.00\",\n      \"adicionais\": [],\n      \"total_com_adicionais\": \"24.00\"\n    }\n  ],\n  \"subtotal\": \"43.80\",\n  \"forma_pagamento\": \"PIX\",\n  \"entrega\": false,\n  \"endereco_entrega\": null,\n  \"observacoes\": \"Sem sacola, por favor.\"\n}"},{"id":"64679cdf-cb28-4d56-903e-18ab2d174af0","name":"Algum item do pedido não existe na loja de teste (diz qual).","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza (teste)\",\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"quantidade\": 2\n    }\n  ],\n  \"forma_pagamento\": \"PIX\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/sandbox/pedidos"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"path\": \"/api/v1/sandbox/pedidos\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Estes itens não existem na loja de teste: SKU-0000\"\n}"},{"id":"6b835c9e-6785-4a62-aaf2-e7566f84689f","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza (teste)\",\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"quantidade\": 2\n    }\n  ],\n  \"forma_pagamento\": \"PIX\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/sandbox/pedidos"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"9fe53d47-71a0-4852-a31d-b9e40e3889e9","name":"A credencial não é de loja de teste.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza (teste)\",\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"quantidade\": 2\n    }\n  ],\n  \"forma_pagamento\": \"PIX\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/sandbox/pedidos"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/sandbox/pedidos\",\n  \"timestamp\": \"2026-08-22T14:32:00.000Z\",\n  \"message\": \"Esta rota só funciona com credencial de loja de teste (nvt_test_).\"\n}"},{"id":"bf5db484-5c3a-4683-ae1e-ec4fd68e756c","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"cliente_nome\": \"Maria Souza (teste)\",\n  \"itens\": [\n    {\n      \"referencia_externa\": \"SKU-4471\",\n      \"quantidade\": 2\n    }\n  ],\n  \"forma_pagamento\": \"PIX\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.navitrine.app/api/v1/sandbox/pedidos"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"7199c9f7-d9fa-4cca-9144-122178e2eac6"},{"name":"Apaga itens e pedidos da loja de teste.","id":"2c2797db-ebbb-4892-9577-0ab72d6b493d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/sandbox/limpar","description":"<p>Deixa a loja de teste como nova, para você repetir a carga do zero quantas vezes\nquiser — refazer o teste é o uso normal de quem integra, não a exceção.</p>\n<p><strong>Só funciona com credencial <code>nvt_test_</code>.</strong></p>\n","urlObject":{"path":["sandbox","limpar"],"host":["https://api.navitrine.app/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5624ea4a-bf6d-4a4c-89a0-96f70dd5b3cd","name":"O que foi apagado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/sandbox/limpar"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"itens\": 204,\n  \"pedidos\": 12\n}"},{"id":"6ad5097d-8848-4a8b-87a8-6de2fe6a20d6","name":"Token ausente, inválido ou revogado.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/sandbox/limpar"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 401,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Token de acesso inválido\"\n}"},{"id":"6bd5687b-2200-4ff5-a3f7-11d3c5ed33be","name":"A credencial não é de loja de teste.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/sandbox/limpar"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 403,\n  \"path\": \"/api/v1/sandbox/limpar\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Esta rota só funciona com credencial de loja de teste (nvt_test_).\"\n}"},{"id":"96f00e27-1d21-4ffb-a5d5-6dc07fd9b45a","name":"Requisições demais. Tente de novo depois de `Retry-After` segundos.","originalRequest":{"method":"POST","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"},{"key":"Accept","value":"application/json"}],"url":"https://api.navitrine.app/api/v1/sandbox/limpar"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"disabled":true,"description":"Segundos até poder tentar de novo.","key":"Retry-After","value":"30"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 429,\n  \"path\": \"/api/v1/itens\",\n  \"timestamp\": \"2026-08-21T14:32:00.000Z\",\n  \"message\": \"Limite de 120 requisições por minuto excedido. Tente de novo em 38s.\"\n}"}],"_postman_id":"2c2797db-ebbb-4892-9577-0ab72d6b493d"}],"id":"4c3abc8c-0d1c-4b77-acdb-b5c8cd97bd31","description":"<p>Ferramentas que só existem na loja de testes: simular pedido e limpar o que você\ncriou. Exigem credencial <code>nvt_test_</code>.</p>\n","_postman_id":"4c3abc8c-0d1c-4b77-acdb-b5c8cd97bd31","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","id":"f25a7e0d-6789-428b-a83e-b22a7b151a2b","name":"API do Navitrine","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]}},"variable":[{"key":"baseUrl","value":"https://api.navitrine.app/api/v1","type":"string","description":"Base da API pública."},{"key":"token","value":"","type":"string","description":"Token da loja, gerado no painel em Configurações → Integrações → API."}]}