{"info":{"_postman_id":"reton-api-v1","name":"API do Reton","description":"Coleção oficial da API do Reton. 1) Clique na coleção › Variables e cole a sua chave em RETON_API_KEY (Current value). 2) Para testar num ambiente local, troque baseUrl. Documentação: https://reton.com.br/ajuda/api","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"},"auth":{"type":"apikey","apikey":[{"key":"key","value":"X-API-Key","type":"string"},{"key":"value","value":"{{RETON_API_KEY}}","type":"string"},{"key":"in","value":"header","type":"string"}]},"variable":[{"key":"baseUrl","value":"https://app.reton.com.br/api/v1","type":"string"},{"key":"RETON_API_KEY","value":"","type":"string"}],"item":[{"name":"Contatos","description":"Localize um cliente pelo celular, CPF, e-mail ou pelo código do seu sistema; cadastre quem ainda não existe; consulte e exclua.","item":[{"name":"Localizar cliente","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/contatos?celular=11987654321","host":["{{baseUrl}}"],"path":["contatos"],"query":[{"key":"celular","value":"11987654321"}]},"description":"Procura o cliente por celular, CPF/CNPJ, e-mail ou pelo código do seu sistema."},"response":[{"name":"200 · Encontrado","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/contatos?celular=11987654321","host":["{{baseUrl}}"],"path":["contatos"],"query":[{"key":"celular","value":"11987654321"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"total\": 1,\n    \"contatos\": [\n      {\n        \"id\": \"con_LC4dQtpwbrLudiRS\",\n        \"nome\": \"Maria\",\n        \"sobrenome\": \"Silva\",\n        \"celular\": \"11987654321\",\n        \"email\": \"maria.silva@email.com\",\n        \"tipoPessoa\": \"pf\",\n        \"tipoDocumento\": \"cpf\",\n        \"numeroDocumento\": \"52998224725\",\n        \"dataNascimento\": \"1990-05-15T00:00:00.000Z\",\n        \"tags\": [\n          \"vip\"\n        ],\n        \"idExterno\": \"CLI-1042\",\n        \"origemPlataforma\": \"api:PDV loja 1\",\n        \"classificacao\": \"saudavel\",\n        \"ativo\": true,\n        \"optinWhatsapp\": true,\n        \"optinEmail\": false,\n        \"optinSms\": false,\n        \"unidadeId\": null,\n        \"unidadeCodigo\": null,\n        \"unidadeNome\": null,\n        \"customFields\": {},\n        \"canalCadastro\": \"api\",\n        \"criadoEm\": \"2026-09-30T14:51:34.294Z\",\n        \"atualizadoEm\": \"2026-09-30T14:51:34.556Z\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"200 · Ninguém com esse celular","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/contatos?celular=11987654321","host":["{{baseUrl}}"],"path":["contatos"],"query":[{"key":"celular","value":"11987654321"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"total\": 0,\n    \"contatos\": []\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Consultar cliente","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/contatos/con_LC4dQtpwbrLudiRS","host":["{{baseUrl}}"],"path":["contatos","con_LC4dQtpwbrLudiRS"]},"description":"Traz um cliente pelo id do Reton."},"response":[{"name":"200 · Cliente","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/contatos/con_LC4dQtpwbrLudiRS","host":["{{baseUrl}}"],"path":["contatos","con_LC4dQtpwbrLudiRS"]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"con_LC4dQtpwbrLudiRS\",\n    \"nome\": \"Maria\",\n    \"sobrenome\": \"Silva\",\n    \"celular\": \"11987654321\",\n    \"email\": \"maria.silva@email.com\",\n    \"tipoPessoa\": \"pf\",\n    \"tipoDocumento\": \"cpf\",\n    \"numeroDocumento\": \"52998224725\",\n    \"dataNascimento\": \"1990-05-15T00:00:00.000Z\",\n    \"tags\": [\n      \"vip\"\n    ],\n    \"idExterno\": \"CLI-1042\",\n    \"origemPlataforma\": \"api:PDV loja 1\",\n    \"classificacao\": \"saudavel\",\n    \"ativo\": true,\n    \"optinWhatsapp\": true,\n    \"optinEmail\": false,\n    \"optinSms\": false,\n    \"unidadeId\": null,\n    \"unidadeCodigo\": null,\n    \"unidadeNome\": null,\n    \"customFields\": {},\n    \"canalCadastro\": \"api\",\n    \"criadoEm\": \"2026-09-30T14:51:34.294Z\",\n    \"atualizadoEm\": \"2026-09-30T14:51:34.556Z\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"404 · Não existe (ou está na Lixeira)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/contatos/con_LC4dQtpwbrLudiRS","host":["{{baseUrl}}"],"path":["contatos","con_LC4dQtpwbrLudiRS"]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Contato não encontrado.\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Cadastrar cliente","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/contatos","host":["{{baseUrl}}"],"path":["contatos"]},"body":{"mode":"raw","raw":"{\n  \"nome\": \"Maria\",\n  \"sobrenome\": \"Silva\",\n  \"celular\": \"(11) 98765-4321\",\n  \"email\": \"maria.silva@email.com\",\n  \"numeroDocumento\": \"529.982.247-25\",\n  \"dataNascimento\": \"1990-05-15\",\n  \"idExterno\": \"CLI-1042\",\n  \"optinWhatsapp\": true\n}","options":{"raw":{"language":"json"}}},"description":"Cria um cliente. Só nome e celular são obrigatórios."},"response":[{"name":"201 · Cadastrado","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/contatos","host":["{{baseUrl}}"],"path":["contatos"]},"body":{"mode":"raw","raw":"{\n  \"nome\": \"Maria\",\n  \"sobrenome\": \"Silva\",\n  \"celular\": \"(11) 98765-4321\",\n  \"email\": \"maria.silva@email.com\",\n  \"numeroDocumento\": \"529.982.247-25\",\n  \"dataNascimento\": \"1990-05-15\",\n  \"idExterno\": \"CLI-1042\",\n  \"optinWhatsapp\": true\n}","options":{"raw":{"language":"json"}}}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"con_LC4dQtpwbrLudiRS\",\n    \"nome\": \"Maria\",\n    \"sobrenome\": \"Silva\",\n    \"celular\": \"11987654321\",\n    \"email\": \"maria.silva@email.com\",\n    \"tipoPessoa\": \"pf\",\n    \"tags\": [],\n    \"pontosSaldo\": 0,\n    \"classificacao\": \"saudavel\",\n    \"ativo\": true,\n    \"unidadeId\": null,\n    \"unidadeCodigo\": null,\n    \"unidadeNome\": null,\n    \"customFields\": {},\n    \"canalCadastro\": \"api\",\n    \"criadoPor\": {\n      \"tipo\": \"api\",\n      \"apiKeyId\": \"key_LgypViyLXFkaiQWx\",\n      \"apiKeyNome\": \"PDV loja 1\",\n      \"apiKeyHashPrefix\": \"57b4c78c\"\n    },\n    \"criadoEm\": \"2026-09-30T14:51:34.294Z\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"409 · Já existe","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/contatos","host":["{{baseUrl}}"],"path":["contatos"]},"body":{"mode":"raw","raw":"{\n  \"nome\": \"Maria\",\n  \"sobrenome\": \"Silva\",\n  \"celular\": \"(11) 98765-4321\",\n  \"email\": \"maria.silva@email.com\",\n  \"numeroDocumento\": \"529.982.247-25\",\n  \"dataNascimento\": \"1990-05-15\",\n  \"idExterno\": \"CLI-1042\",\n  \"optinWhatsapp\": true\n}","options":{"raw":{"language":"json"}}}},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"CONFLICT\",\n    \"message\": \"Já existe um contato com o celular 11987654321: \\\"Maria\\\" (con_LC4dQtpwbrLudiRS).\",\n    \"details\": [\n      {\n        \"motivo\": \"celular\",\n        \"contatoId\": \"con_LC4dQtpwbrLudiRS\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"400 · Dado inválido","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/contatos","host":["{{baseUrl}}"],"path":["contatos"]},"body":{"mode":"raw","raw":"{\n  \"nome\": \"Maria\",\n  \"sobrenome\": \"Silva\",\n  \"celular\": \"(11) 98765-4321\",\n  \"email\": \"maria.silva@email.com\",\n  \"numeroDocumento\": \"529.982.247-25\",\n  \"dataNascimento\": \"1990-05-15\",\n  \"idExterno\": \"CLI-1042\",\n  \"optinWhatsapp\": true\n}","options":{"raw":{"language":"json"}}}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"Erro de validação nos dados enviados.\",\n    \"details\": [\n      {\n        \"field\": \"email\",\n        \"message\": \"email inválido\",\n        \"code\": \"invalid_format\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Cadastrar cliente — Com todos os campos","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/contatos","host":["{{baseUrl}}"],"path":["contatos"]},"body":{"mode":"raw","raw":"{\n  \"nome\": \"Maria\",\n  \"sobrenome\": \"Silva\",\n  \"celular\": \"(11) 98765-4321\",\n  \"email\": \"maria.silva@email.com\",\n  \"tipoPessoa\": \"pf\",\n  \"tipoDocumento\": \"cpf\",\n  \"numeroDocumento\": \"529.982.247-25\",\n  \"dataNascimento\": \"1990-05-15\",\n  \"sexo\": \"feminino\",\n  \"idExterno\": \"CLI-1042\",\n  \"tags\": [\n    \"vip\",\n    \"cliente-antigo\"\n  ],\n  \"optinWhatsapp\": true,\n  \"optinEmail\": true,\n  \"optinSms\": false,\n  \"unidadeCodigo\": \"LJ01\",\n  \"notas\": \"Prefere ser atendida pela manhã.\",\n  \"customFields\": {\n    \"tamanho_calcado\": \"36\"\n  },\n  \"cep\": \"01310-100\",\n  \"logradouro\": \"Avenida Paulista\",\n  \"numero\": \"1000\",\n  \"complemento\": \"Apto 12\",\n  \"bairro\": \"Bela Vista\",\n  \"cidade\": \"São Paulo\",\n  \"estado\": \"SP\",\n  \"origemCadastro\": \"Loja física\",\n  \"origemPlataforma\": \"PDV Loja 1\"\n}","options":{"raw":{"language":"json"}}},"description":"Todos os campos de pessoa física. Apague os que não usar.\nunidadeCodigo e customFields precisam existir no seu Reton."},"response":[]},{"name":"Excluir cliente","request":{"method":"DELETE","header":[],"url":{"raw":"{{baseUrl}}/contatos/con_LC4dQtpwbrLudiRS","host":["{{baseUrl}}"],"path":["contatos","con_LC4dQtpwbrLudiRS"]},"description":"Manda o cliente para a Lixeira do Reton (dá para restaurar no painel por 90 dias)."},"response":[{"name":"200 · Na Lixeira","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"{{baseUrl}}/contatos/con_LC4dQtpwbrLudiRS","host":["{{baseUrl}}"],"path":["contatos","con_LC4dQtpwbrLudiRS"]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"con_LC4dQtpwbrLudiRS\",\n    \"deletado\": true,\n    \"deletadoEm\": \"2026-09-30T15:02:11.482Z\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]}]},{"name":"Vendas","description":"Registre cada venda no Reton — ela gera pontos ou cashback e mantém o cliente fora do risco — e estorne quando for cancelada.","item":[{"name":"Registrar venda","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes","host":["{{baseUrl}}"],"path":["interacoes"]},"body":{"mode":"raw","raw":"{\n  \"celular\": \"(11) 98765-4321\",\n  \"valor\": 150.9,\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"dataHora\": \"2026-09-30T14:30:00-03:00\",\n  \"observacao\": \"Ração 15kg\"\n}","options":{"raw":{"language":"json"}}},"description":"Grava uma venda para um cliente e devolve os pontos/cashback que ela gerou."},"response":[{"name":"201 · Venda registrada","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes","host":["{{baseUrl}}"],"path":["interacoes"]},"body":{"mode":"raw","raw":"{\n  \"celular\": \"(11) 98765-4321\",\n  \"valor\": 150.9,\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"dataHora\": \"2026-09-30T14:30:00-03:00\",\n  \"observacao\": \"Ração 15kg\"\n}","options":{"raw":{"language":"json"}}}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"interacaoId\": \"int_b7o9FVDzy4cg1fzk\",\n    \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n    \"pontosGerados\": 150,\n    \"valorBruto\": 150.9,\n    \"cashbackUsado\": 0,\n    \"valorLiquido\": 150.9,\n    \"cashbackGerado\": 0,\n    \"regraAplicada\": null,\n    \"percentualAplicado\": null,\n    \"lotesConsumidos\": [],\n    \"cupomAplicado\": null,\n    \"cupomDesconto\": 0\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"200 · Reenvio (já tinha entrado)","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes","host":["{{baseUrl}}"],"path":["interacoes"]},"body":{"mode":"raw","raw":"{\n  \"celular\": \"(11) 98765-4321\",\n  \"valor\": 150.9,\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"dataHora\": \"2026-09-30T14:30:00-03:00\",\n  \"observacao\": \"Ração 15kg\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"interacaoId\": \"int_b7o9FVDzy4cg1fzk\",\n    \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n    \"duplicada\": true,\n    \"mensagem\": \"Esta venda (codigoItem 'PDV1-000123-1') já tinha sido registrada. Nada foi somado de novo.\",\n    \"dataHora\": \"2026-09-30T17:30:00.000Z\",\n    \"estornada\": false,\n    \"pontosGerados\": 150,\n    \"valorBruto\": 150.9,\n    \"cashbackUsado\": 0,\n    \"valorLiquido\": 150.9,\n    \"cashbackGerado\": 0,\n    \"cupomAplicado\": null,\n    \"cupomDesconto\": 0\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"404 · Cliente não encontrado","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes","host":["{{baseUrl}}"],"path":["interacoes"]},"body":{"mode":"raw","raw":"{\n  \"celular\": \"(11) 98765-4321\",\n  \"valor\": 150.9,\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"dataHora\": \"2026-09-30T14:30:00-03:00\",\n  \"observacao\": \"Ração 15kg\"\n}","options":{"raw":{"language":"json"}}}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Cliente não encontrado. Cadastre-o em POST /api/v1/contatos e envie a venda de novo.\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"409 · Venda idêntica sem codigoItem","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes","host":["{{baseUrl}}"],"path":["interacoes"]},"body":{"mode":"raw","raw":"{\n  \"celular\": \"(11) 98765-4321\",\n  \"valor\": 150.9,\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"dataHora\": \"2026-09-30T14:30:00-03:00\",\n  \"observacao\": \"Ração 15kg\"\n}","options":{"raw":{"language":"json"}}}},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"INTERACAO_DUPLICADA\",\n    \"message\": \"Já existe uma interação idêntica para este contato hoje (mesmo valor e descrição). Para registrar uma segunda compra igual, altere a descrição ou envie um codigoItem.\",\n    \"details\": [\n      {\n        \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n        \"valor\": 150.9,\n        \"data\": \"2026-09-30\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Registrar venda — pelo CPF","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes","host":["{{baseUrl}}"],"path":["interacoes"]},"body":{"mode":"raw","raw":"{\n  \"documento\": \"529.982.247-25\",\n  \"valor\": 150.9,\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"dataHora\": \"2026-09-30T14:30:00-03:00\"\n}","options":{"raw":{"language":"json"}}},"description":"Mesma venda, identificando o cliente pelo CPF (com ou sem pontuação)"},"response":[]},{"name":"Estornar (cancelar) uma venda","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes/estorno","host":["{{baseUrl}}"],"path":["interacoes","estorno"]},"body":{"mode":"raw","raw":"{\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"motivo\": \"Cliente devolveu o produto\"\n}","options":{"raw":{"language":"json"}}},"description":"Desfaz uma venda que não valeu: tira do faturamento e retira os pontos, o cashback ou o carimbo que ela deu."},"response":[{"name":"200 · Venda cancelada","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes/estorno","host":["{{baseUrl}}"],"path":["interacoes","estorno"]},"body":{"mode":"raw","raw":"{\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"motivo\": \"Cliente devolveu o produto\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"estornados\": [\n      {\n        \"interacaoEspelhoId\": \"int_iFlDF9h5SD8GEQVQ\",\n        \"pontosEstornados\": 150,\n        \"cashbackEstornado\": 0,\n        \"carimbosRevertidos\": 0,\n        \"cupomDevolvido\": null\n      }\n    ],\n    \"totalPontosEstornados\": 150,\n    \"totalCashbackEstornado\": 0,\n    \"totalInteracoes\": 1\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"409 · Cliente já usou os pontos","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/interacoes/estorno","host":["{{baseUrl}}"],"path":["interacoes","estorno"]},"body":{"mode":"raw","raw":"{\n  \"codigoItem\": \"PDV1-000123-1\",\n  \"motivo\": \"Cliente devolveu o produto\"\n}","options":{"raw":{"language":"json"}}}},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ESTORNO_PONTOS_UTILIZADOS\",\n    \"message\": \"Não é possível estornar. O cliente já usou 100 dos 150 pontos desta venda.\",\n    \"details\": [\n      {\n        \"pontosOriginal\": 150,\n        \"pontosUtilizados\": 100,\n        \"pontosDisponiveis\": 50,\n        \"cashbackOriginal\": 0,\n        \"cashbackUtilizado\": 0,\n        \"cashbackDisponivel\": 0,\n        \"impedimentos\": [\n          {\n            \"interacaoId\": \"int_b7o9FVDzy4cg1fzk\",\n            \"codigoItem\": \"PDV1-000123-1\",\n            \"motivos\": [\n              {\n                \"codigo\": \"pontos_utilizados\",\n                \"mensagem\": \"O cliente já usou 100 dos 150 pontos desta venda.\"\n              }\n            ]\n          }\n        ],\n        \"dica\": \"Cancele o resgate/uso associado antes de estornar, ou faça um ajuste manual pela tela do Reton.\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]}]},{"name":"Fidelidade","description":"Mostre ao cliente quanto ele tem de pontos ou cashback e deixe ele trocar pontos por prêmios do seu catálogo.","item":[{"name":"Consultar saldo","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/saldo?celular=11987654321","host":["{{baseUrl}}"],"path":["fidelidade","saldo"],"query":[{"key":"celular","value":"11987654321"}]},"description":"Quanto o cliente tem hoje — já descontado o que venceu — e quanto vence em breve. Pelo celular ou CPF."},"response":[{"name":"200 · Programa de pontos","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/saldo?celular=11987654321","host":["{{baseUrl}}"],"path":["fidelidade","saldo"],"query":[{"key":"celular","value":"11987654321"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n    \"modelo\": \"pontos\",\n    \"saldoReal\": 350,\n    \"pontosExpirando\": 50,\n    \"dataExpiracao\": \"2026-10-15T03:00:00.000Z\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"200 · Programa de cashback","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/saldo?celular=11987654321","host":["{{baseUrl}}"],"path":["fidelidade","saldo"],"query":[{"key":"celular","value":"11987654321"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n    \"modelo\": \"cashback\",\n    \"saldoPontos\": 0,\n    \"saldoCashback\": 42.5,\n    \"cashbackExpirando\": 12.5,\n    \"cashbackExpiraEm\": \"2026-10-15T03:00:00.000Z\",\n    \"totalAcumulado\": 80,\n    \"totalUsado\": 37.5,\n    \"minimoParaUsar\": 10,\n    \"limitePorUso\": {\n      \"tipo\": \"sem_limite\",\n      \"valor\": null\n    }\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"404 · Cliente não encontrado","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/saldo?celular=11987654321","host":["{{baseUrl}}"],"path":["fidelidade","saldo"],"query":[{"key":"celular","value":"11987654321"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Cliente não encontrado.\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Consultar saldo — pelo CPF","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/saldo?documento=52998224725","host":["{{baseUrl}}"],"path":["fidelidade","saldo"],"query":[{"key":"documento","value":"52998224725"}]},"description":"O mesmo saldo, pelo CPF do cliente (só os números)"},"response":[]},{"name":"Consultar saldo pelo id","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/saldo/con_LC4dQtpwbrLudiRS","host":["{{baseUrl}}"],"path":["fidelidade","saldo","con_LC4dQtpwbrLudiRS"]},"description":"O mesmo saldo, para quem já guardou o id do cliente no Reton."},"response":[{"name":"200 · Programa de pontos","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/saldo/con_LC4dQtpwbrLudiRS","host":["{{baseUrl}}"],"path":["fidelidade","saldo","con_LC4dQtpwbrLudiRS"]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n    \"modelo\": \"pontos\",\n    \"saldoReal\": 350,\n    \"pontosExpirando\": 50,\n    \"dataExpiracao\": \"2026-10-15T03:00:00.000Z\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Resgatar recompensa","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/fidelidade/resgatar","host":["{{baseUrl}}"],"path":["fidelidade","resgatar"]},"body":{"mode":"raw","raw":"{\n  \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n  \"recompensaId\": \"rec_vpyTEeCYIYURK01b\",\n  \"canalResgate\": \"operador\"\n}","options":{"raw":{"language":"json"}}},"description":"Troca pontos do cliente por um prêmio do seu catálogo e gera o voucher."},"response":[{"name":"201 · Resgatado","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/fidelidade/resgatar","host":["{{baseUrl}}"],"path":["fidelidade","resgatar"]},"body":{"mode":"raw","raw":"{\n  \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n  \"recompensaId\": \"rec_vpyTEeCYIYURK01b\",\n  \"canalResgate\": \"operador\"\n}","options":{"raw":{"language":"json"}}}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"resgateIds\": [\n      \"res_WhnxINUFrRdQKFXS\"\n    ],\n    \"voucherCodes\": [\n      \"RES-W4S6TY\"\n    ],\n    \"pontosGastos\": 100,\n    \"saldoApos\": 250\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"400 · Sem pontos suficientes","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/fidelidade/resgatar","host":["{{baseUrl}}"],"path":["fidelidade","resgatar"]},"body":{"mode":"raw","raw":"{\n  \"contatoId\": \"con_LC4dQtpwbrLudiRS\",\n  \"recompensaId\": \"rec_vpyTEeCYIYURK01b\",\n  \"canalResgate\": \"operador\"\n}","options":{"raw":{"language":"json"}}}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"Saldo insuficiente. Tem 80 pontos, precisa de 100\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Listar resgates","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/resgates?status=pendente&limit=20","host":["{{baseUrl}}"],"path":["fidelidade","resgates"],"query":[{"key":"status","value":"pendente"},{"key":"limit","value":"20"}]},"description":"Os resgates da sua conta, do mais novo para o mais antigo, com filtros e paginação."},"response":[{"name":"200 · Página de resgates","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/resgates?status=pendente&limit=20","host":["{{baseUrl}}"],"path":["fidelidade","resgates"],"query":[{"key":"status","value":"pendente"},{"key":"limit","value":"20"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"res_WhnxINUFrRdQKFXS\",\n        \"voucherCode\": \"RES-W4S6TY\",\n        \"pontosUsados\": 100,\n        \"status\": \"pendente\",\n        \"canalResgate\": \"site\",\n        \"varianteSelecionada\": null,\n        \"observacao\": null,\n        \"motivoCancelamento\": null,\n        \"criadoEm\": \"2026-09-30T14:51:42.608Z\",\n        \"entregueEm\": null,\n        \"canceladoEm\": null,\n        \"contato\": {\n          \"id\": \"con_LC4dQtpwbrLudiRS\",\n          \"nome\": \"Maria\",\n          \"celular\": \"11987654321\",\n          \"foto\": null\n        },\n        \"recompensa\": {\n          \"id\": \"rec_vpyTEeCYIYURK01b\",\n          \"nome\": \"Café grátis\",\n          \"tipo\": \"brinde\",\n          \"icone\": null\n        },\n        \"operador\": {\n          \"id\": \"op_avNMa0IQROfQV7Nq\",\n          \"nome\": \"API\"\n        },\n        \"canceladoPorNome\": null\n      }\n    ],\n    \"total\": 1,\n    \"limit\": 20,\n    \"offset\": 0\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Consultar resgate","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/resgates/RES-W4S6TY","host":["{{baseUrl}}"],"path":["fidelidade","resgates","RES-W4S6TY"]},"description":"Um resgate pelo id (res_…) ou pelo código do voucher (RES-…)."},"response":[{"name":"200 · Resgate","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/resgates/RES-W4S6TY","host":["{{baseUrl}}"],"path":["fidelidade","resgates","RES-W4S6TY"]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"res_WhnxINUFrRdQKFXS\",\n    \"voucherCode\": \"RES-W4S6TY\",\n    \"pontosUsados\": 100,\n    \"status\": \"entregue\",\n    \"canalResgate\": \"operador\",\n    \"varianteSelecionada\": null,\n    \"observacao\": null,\n    \"motivoCancelamento\": null,\n    \"criadoEm\": \"2026-09-30T14:51:42.608Z\",\n    \"entregueEm\": \"2026-09-30T14:51:42.535Z\",\n    \"canceladoEm\": null,\n    \"contato\": {\n      \"id\": \"con_LC4dQtpwbrLudiRS\",\n      \"nome\": \"Maria\",\n      \"celular\": \"11987654321\"\n    },\n    \"recompensa\": {\n      \"id\": \"rec_vpyTEeCYIYURK01b\",\n      \"nome\": \"Café grátis\",\n      \"tipo\": \"brinde\"\n    },\n    \"operador\": {\n      \"id\": \"op_avNMa0IQROfQV7Nq\",\n      \"nome\": \"API\"\n    }\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"404 · Não encontrado","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/fidelidade/resgates/RES-W4S6TY","host":["{{baseUrl}}"],"path":["fidelidade","resgates","RES-W4S6TY"]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Resgate não encontrado.\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Cancelar resgate","request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/fidelidade/resgates/res_WhnxINUFrRdQKFXS","host":["{{baseUrl}}"],"path":["fidelidade","resgates","res_WhnxINUFrRdQKFXS"]},"body":{"mode":"raw","raw":"{\n  \"motivoCancelamento\": \"Cliente desistiu do prêmio\"\n}","options":{"raw":{"language":"json"}}},"description":"Cancela um resgate e devolve os pontos ao cliente."},"response":[{"name":"200 · Cancelado","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/fidelidade/resgates/res_WhnxINUFrRdQKFXS","host":["{{baseUrl}}"],"path":["fidelidade","resgates","res_WhnxINUFrRdQKFXS"]},"body":{"mode":"raw","raw":"{\n  \"motivoCancelamento\": \"Cliente desistiu do prêmio\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"cancelado\": true,\n    \"resgateId\": \"res_WhnxINUFrRdQKFXS\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]}]},{"name":"Lojas","description":"Liste e mantenha as lojas da sua rede, para separar clientes, vendas e relatórios por loja.","item":[{"name":"Listar lojas","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/unidades","host":["{{baseUrl}}"],"path":["unidades"]},"description":"Todas as lojas ativas da conta."},"response":[{"name":"200 · Lojas","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/unidades","host":["{{baseUrl}}"],"path":["unidades"]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"total\": 1,\n    \"unidades\": [\n      {\n        \"id\": \"uni_N98eudAvtndlbaM1\",\n        \"nome\": \"Loja Centro\",\n        \"codigo\": \"LJ01\",\n        \"endereco\": \"Rua das Flores, 120 — Centro\",\n        \"telefone\": \"1133334444\",\n        \"ativo\": true,\n        \"principal\": false,\n        \"criadoEm\": \"2026-09-30T14:51:44.508Z\",\n        \"atualizadoEm\": \"2026-09-30T14:51:44.782Z\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Cadastrar loja","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/unidades","host":["{{baseUrl}}"],"path":["unidades"]},"body":{"mode":"raw","raw":"{\n  \"nome\": \"Loja Centro\",\n  \"codigo\": \"LJ01\",\n  \"endereco\": \"Rua das Flores, 120 — Centro\",\n  \"telefone\": \"1133334444\"\n}","options":{"raw":{"language":"json"}}},"description":"Cria uma loja nova."},"response":[{"name":"201 · Criada","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/unidades","host":["{{baseUrl}}"],"path":["unidades"]},"body":{"mode":"raw","raw":"{\n  \"nome\": \"Loja Centro\",\n  \"codigo\": \"LJ01\",\n  \"endereco\": \"Rua das Flores, 120 — Centro\",\n  \"telefone\": \"1133334444\"\n}","options":{"raw":{"language":"json"}}}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"uni_N98eudAvtndlbaM1\",\n    \"nome\": \"Loja Centro\",\n    \"codigo\": \"LJ01\",\n    \"endereco\": \"Rua das Flores, 120 — Centro\",\n    \"telefone\": \"1133334444\",\n    \"ativo\": true,\n    \"principal\": false,\n    \"criadoEm\": \"2026-09-30T14:51:44.508Z\",\n    \"atualizadoEm\": \"2026-09-30T14:51:44.782Z\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Consultar loja","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/unidades/uni_N98eudAvtndlbaM1","host":["{{baseUrl}}"],"path":["unidades","uni_N98eudAvtndlbaM1"]},"description":"Uma loja pelo id."},"response":[{"name":"200 · Loja","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/unidades/uni_N98eudAvtndlbaM1","host":["{{baseUrl}}"],"path":["unidades","uni_N98eudAvtndlbaM1"]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"uni_N98eudAvtndlbaM1\",\n    \"nome\": \"Loja Centro\",\n    \"codigo\": \"LJ01\",\n    \"endereco\": \"Rua das Flores, 120 — Centro\",\n    \"telefone\": \"1133334444\",\n    \"ativo\": true,\n    \"principal\": false,\n    \"criadoEm\": \"2026-09-30T14:51:44.508Z\",\n    \"atualizadoEm\": \"2026-09-30T14:51:44.782Z\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"404 · Não encontrada","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/unidades/uni_N98eudAvtndlbaM1","host":["{{baseUrl}}"],"path":["unidades","uni_N98eudAvtndlbaM1"]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Unidade não encontrada.\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Alterar loja","request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/unidades/uni_N98eudAvtndlbaM1","host":["{{baseUrl}}"],"path":["unidades","uni_N98eudAvtndlbaM1"]},"body":{"mode":"raw","raw":"{\n  \"telefone\": \"1133334444\"\n}","options":{"raw":{"language":"json"}}},"description":"Muda só os campos que você mandar."},"response":[{"name":"200 · Alterada","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/unidades/uni_N98eudAvtndlbaM1","host":["{{baseUrl}}"],"path":["unidades","uni_N98eudAvtndlbaM1"]},"body":{"mode":"raw","raw":"{\n  \"telefone\": \"1133334444\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"uni_N98eudAvtndlbaM1\",\n    \"nome\": \"Loja Centro\",\n    \"codigo\": \"LJ01\",\n    \"endereco\": \"Rua das Flores, 120 — Centro\",\n    \"telefone\": \"1133334444\",\n    \"ativo\": true,\n    \"principal\": false,\n    \"criadoEm\": \"2026-09-30T14:51:44.508Z\",\n    \"atualizadoEm\": \"2026-09-30T14:51:44.782Z\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]},{"name":"Desativar loja","request":{"method":"DELETE","header":[],"url":{"raw":"{{baseUrl}}/unidades/uni_N98eudAvtndlbaM1","host":["{{baseUrl}}"],"path":["unidades","uni_N98eudAvtndlbaM1"]},"description":"Desativa a loja (não apaga o histórico dela)."},"response":[{"name":"200 · Desativada","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"{{baseUrl}}/unidades/uni_N98eudAvtndlbaM1","host":["{{baseUrl}}"],"path":["unidades","uni_N98eudAvtndlbaM1"]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": true,\n  \"data\": {\n    \"ok\": true,\n    \"message\": \"Unidade desativada.\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"},{"name":"422 · Única loja ativa","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"{{baseUrl}}/unidades/uni_N98eudAvtndlbaM1","host":["{{baseUrl}}"],"path":["unidades","uni_N98eudAvtndlbaM1"]}},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"Não é possível desativar a única unidade ativa da empresa.\"\n  },\n  \"meta\": {\n    \"requestId\": \"req_V1StGXR8Z5jdHi6B\"\n  }\n}"}]}]}]}