{"info":{"_postman_id":"8f1a5d2e-9c34-4f77-b2ec-5a6f0d3c7b10","name":"Prumo API","description":"API pública da Prumo. Uma chave pertence a uma organização e age com o papel de quem a criou.\n\nDefina as variáveis da coleção: baseUrl (endereço da função publicada) e apiKey (a chave gerada em Integrações e API).\n\nGerado de apps/web/lib/api-docs/catalogue.ts — não edite à mão.","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{apiKey}}","type":"string"}]},"variable":[{"key":"baseUrl","value":"https://api.goprumo.com.br/functions/v1/api/v1","type":"string"},{"key":"apiKey","value":"","type":"string"}],"item":[{"name":"Conta e organização","description":"A chave já sabe de qual organização ela é. Nenhum endereço aceita um id de organização por fora.","item":[{"name":"Quem sou eu","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/me","host":["{{baseUrl}}"],"path":["v1","me"],"query":[],"variable":[]},"description":"Devolve a chave, a pessoa que a criou, a organização e o nível de cada permissão desse papel.\n\nPermissão: qualquer chave.\nResposta: A organização, o ator e o mapa de permissões."},"response":[]},{"name":"Dados da empresa","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/organization","host":["{{baseUrl}}"],"path":["v1","organization"],"query":[],"variable":[]},"description":"Cadastro completo da organização da chave.\n\nPermissão: qualquer chave.\nResposta: A organização."},"response":[]},{"name":"Atualizar a empresa","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/organization","host":["{{baseUrl}}"],"path":["v1","organization"],"query":[],"variable":[]},"description":"Muda só os campos enviados. O CNPJ é imutável e qualquer campo desconhecido faz a requisição falhar.\n\nPermissão: manage_members.\nResposta: A organização já atualizada.\n\nCorpo:\n- legalName (string | null): Razão social.\n- tradeName (string | null): Nome fantasia.\n- cnae (string | null): CNAE principal.\n- street (string | null): Logradouro.\n- city (string | null): Cidade.\n- state (string | null): Sigla do estado, duas letras.\n- postalCode (string | null): CEP, oito dígitos, só números.\n- taxRegime (simples | general): Regime tributário.\n- ratRate (number): RAT como fração: 0.02 é 2%. Vai de 0 a 0.03.\n- paydayRule (string | null): Regra de pagamento.\n- pjVacationPaid (boolean): Se as férias de PJ são remuneradas ou descontadas pro rata.\n- employerUnion (string | null): Sindicato patronal.\n- digitalCertificateExpiresAt (string | null): Validade do certificado digital, AAAA-MM-DD.","body":{"mode":"raw","raw":"{\n  \"tradeName\": \"Vale Norte Distribuidora\",\n  \"ratRate\": 0.02\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Encerrar a organização","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/organization/close","host":["{{baseUrl}}"],"path":["v1","organization","close"],"query":[],"variable":[]},"description":"Marca a organização como encerrada. Todas as chaves param de funcionar em seguida.\n\nPermissão: manage_members.\nResposta: A organização encerrada."},"response":[]},{"name":"Matriz de permissões","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/permissions","host":["{{baseUrl}}"],"path":["v1","permissions"],"query":[],"variable":[]},"description":"O nível de cada permissão para cada papel desta organização.\n\nPermissão: qualquer chave.\nResposta: Uma lista de papel, permissão e nível."},"response":[]}]},{"name":"Membros e convites","description":"Membros são as contas com acesso ao produto. O proprietário nunca pode ser alterado nem removido pela API, e uma chave não mexe na própria conta.","item":[{"name":"Listar membros","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/members","host":["{{baseUrl}}"],"path":["v1","members"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Quem tem acesso a esta organização, com papel e última visita.\n\nPermissão: qualquer chave.\nResposta: Lista paginada de membros.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Criar membro","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/members","host":["{{baseUrl}}"],"path":["v1","members"],"query":[],"variable":[]},"description":"Cria a conta já confirmada e dá acesso a esta organização. Entregue a senha à pessoa.\n\nPermissão: manage_members.\nResposta: O membro criado.\n\nCorpo:\n- fullName (string) obrigatório: Nome completo.\n- email (string) obrigatório: E-mail de acesso.\n- password (string) obrigatório: Mínimo de 10 caracteres.\n- role (finance | hr | accountant | employee) obrigatório: Papel.","body":{"mode":"raw","raw":"{\n  \"fullName\": \"Marina Toledo\",\n  \"email\": \"marina@valenorte.com.br\",\n  \"password\": \"uma-senha-forte\",\n  \"role\": \"hr\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Trocar o papel","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/members/:userId","host":["{{baseUrl}}"],"path":["v1","members",":userId"],"query":[],"variable":[{"key":"userId","value":"","description":"Id da conta."}]},"description":"Muda o papel de um membro.\n\nPermissão: manage_members.\nResposta: O membro atualizado.\n\nParâmetros do caminho:\n- userId (uuid) obrigatório: Id da conta.\n\nCorpo:\n- role (finance | hr | accountant | employee) obrigatório: Novo papel.","body":{"mode":"raw","raw":"{\n  \"role\": \"finance\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Remover membro","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/members/:userId","host":["{{baseUrl}}"],"path":["v1","members",":userId"],"query":[],"variable":[{"key":"userId","value":"","description":"Id da conta."}]},"description":"Tira o acesso da pessoa a esta organização. A conta continua existindo.\n\nPermissão: manage_members.\nResposta: O id removido.\n\nParâmetros do caminho:\n- userId (uuid) obrigatório: Id da conta."},"response":[]},{"name":"Listar convites","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/invitations","host":["{{baseUrl}}"],"path":["v1","invitations"],"query":[{"key":"status","value":"","description":"Inclui convites já aceitos ou revogados.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Convites pendentes. Passe status=all para ver também os aceitos e revogados.\n\nPermissão: manage_members.\nResposta: Lista paginada de convites.\n\nParâmetros de busca:\n- status (all): Inclui convites já aceitos ou revogados.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Convidar por e-mail","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/invitations","host":["{{baseUrl}}"],"path":["v1","invitations"],"query":[],"variable":[]},"description":"Cria o convite e dispara o e-mail com o link de aceite.\n\nPermissão: manage_members.\nResposta: O convite criado.\n\nCorpo:\n- email (string) obrigatório: Para quem vai o convite.\n- role (finance | hr | accountant | employee) obrigatório: Papel.","body":{"mode":"raw","raw":"{\n  \"email\": \"novo@valenorte.com.br\",\n  \"role\": \"hr\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Reenviar convite","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/invitations/:invitationId/resend","host":["{{baseUrl}}"],"path":["v1","invitations",":invitationId","resend"],"query":[],"variable":[{"key":"invitationId","value":"","description":"Id do convite."}]},"description":"Estende a validade por mais sete dias e manda o e-mail de novo.\n\nPermissão: manage_members.\nResposta: O convite atualizado.\n\nParâmetros do caminho:\n- invitationId (uuid) obrigatório: Id do convite."},"response":[]},{"name":"Revogar convite","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/invitations/:invitationId","host":["{{baseUrl}}"],"path":["v1","invitations",":invitationId"],"query":[],"variable":[{"key":"invitationId","value":"","description":"Id do convite."}]},"description":"Invalida um convite ainda não aceito.\n\nPermissão: manage_members.\nResposta: O convite revogado.\n\nParâmetros do caminho:\n- invitationId (uuid) obrigatório: Id do convite."},"response":[]}]},{"name":"Funcionários","description":"O quadro que alimenta toda competência. Desligar é um endereço próprio, porque a data entra na mesma escrita.","item":[{"name":"Listar funcionários","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees","host":["{{baseUrl}}"],"path":["v1","employees"],"query":[{"key":"status","value":"","description":"Inclui desligados.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Traz o quadro ativo. Passe status=all para incluir quem foi desligado.\n\nPermissão: view_all_employees (ver).\nResposta: Lista paginada de funcionários.\n\nParâmetros de busca:\n- status (all): Inclui desligados.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Cadastrar funcionário","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees","host":["{{baseUrl}}"],"path":["v1","employees"],"query":[],"variable":[]},"description":"Cria a ficha. Com o objeto access a pessoa também ganha conta para assinar o próprio holerite, e aí o e-mail é obrigatório.\n\nPermissão: manage_employees, mais manage_members quando access.role não é employee.\nResposta: O funcionário criado.\n\nCorpo:\n- fullName (string) obrigatório: Nome completo.\n- cpf (string) obrigatório: Com ou sem pontuação.\n- jobTitle (string) obrigatório: Cargo.\n- hiredOn (string) obrigatório: Admissão, AAAA-MM-DD.\n- contractType (permanent | temporary | pj) obrigatório: Tipo de contrato. PJ não entra em INSS, IRRF nem FGTS.\n- baseSalary (number) obrigatório: Salário base em reais.\n- contractEndsOn (string | null): Obrigatório no contrato temporário.\n- email (string | null): E-mail do funcionário.\n- pisNis (string | null): Onze dígitos.\n- weeklyHours (number | null): Jornada semanal.\n- ctps (string | null): CTPS.\n- unionName (string | null): Sindicato.\n- costCenter (string | null): Centro de custo.\n- employmentStatus (active | on_vacation): Situação. Padrão active.\n- dependentsCount (number): De 0 a 20.\n- bankName (string | null): Banco.\n- bankBranch (string | null): Agência.\n- bankAccount (string | null): Conta.\n- pixKey (string | null): Chave PIX.\n- mealAllowance (number | null): Vale refeição.\n- transportAllowance (number | null): Vale transporte.\n- childcareAllowance (number | null): Auxílio creche.\n- healthPlan (number | null): Plano de saúde.\n- access (objeto): password e role para criar a conta de acesso.","body":{"mode":"raw","raw":"{\n  \"fullName\": \"Adilson Ferreira da Silva\",\n  \"cpf\": \"024.118.402-92\",\n  \"jobTitle\": \"operador de empilhadeira\",\n  \"hiredOn\": \"2026-03-01\",\n  \"contractType\": \"permanent\",\n  \"baseSalary\": 3240,\n  \"dependentsCount\": 2\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Importar em lote","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/batch","host":["{{baseUrl}}"],"path":["v1","employees","batch"],"query":[],"variable":[]},"description":"Cadastra até mil funcionários de uma vez. Um CPF já registrado é ignorado, nunca atualizado, como na importação por planilha.\n\nPermissão: manage_employees.\nResposta: Quantos foram criados, quantos foram ignorados e quais CPFs.\n\nCorpo:\n- employees (array) obrigatório: Cada item tem os mesmos campos de POST /v1/employees, sem access.","body":{"mode":"raw","raw":"{\n  \"employees\": [\n    {\n      \"fullName\": \"Adilson Ferreira da Silva\",\n      \"cpf\": \"024.118.402-92\",\n      \"jobTitle\": \"operador de empilhadeira\",\n      \"hiredOn\": \"2026-03-01\",\n      \"contractType\": \"permanent\",\n      \"baseSalary\": 3240,\n      \"dependentsCount\": 2\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver funcionário","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"A ficha completa de uma pessoa.\n\nPermissão: view_all_employees (ver).\nResposta: O funcionário.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]},{"name":"Atualizar funcionário","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Muda só os campos enviados. Para desligar, use o endereço de desligamento.\n\nPermissão: manage_employees.\nResposta: O funcionário atualizado.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário.\n\nCorpo:\n- … (—): Os mesmos campos de POST /v1/employees, todos opcionais.","body":{"mode":"raw","raw":"{\n  \"baseSalary\": 3600,\n  \"jobTitle\": \"conferente de carga\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Desligar","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/terminate","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","terminate"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Marca o desligamento. A data não pode ser futura nem anterior à admissão.\n\nPermissão: manage_employees.\nResposta: O funcionário desligado.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário.\n\nCorpo:\n- terminatedOn (string) obrigatório: AAAA-MM-DD.","body":{"mode":"raw","raw":"{\n  \"terminatedOn\": \"2026-09-30\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Baixar o comprovante bancário","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/bank-proof","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","bank-proof"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Devolve uma URL assinada que vale 60 segundos.\n\nPermissão: view_all_employees (ver).\nResposta: url e expiresAt.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]},{"name":"Anexar o comprovante bancário","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/bank-proof","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","bank-proof"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Envio multipart. Substitui o anterior, que é apagado do armazenamento.\n\nPermissão: manage_employees.\nResposta: O funcionário atualizado.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário.\n\nCampos do formulário:\n- file (arquivo) obrigatório: PDF, PNG ou JPEG de até 5 MB.","body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":[],"description":"PDF, PNG ou JPEG de até 5 MB."}]}},"response":[]},{"name":"Dar acesso ao holerite","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/grant-access","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","grant-access"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Manda o e-mail de acesso para o funcionário assinar os próprios holerites.\n\nPermissão: issue_payslips.\nResposta: O e-mail para onde o acesso foi enviado.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]},{"name":"Holerites da pessoa","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/payslips","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","payslips"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Os holerites vindos da folha e os enviados por PDF, em duas listas.\n\nPermissão: view_payroll (ver).\nResposta: fromPayroll e uploaded.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]}]},{"name":"Folha de pagamento","description":"A competência congela o quadro e as tabelas fiscais na abertura. Todo lançamento é recalculado pelo mesmo motor que a tela usa.","item":[{"name":"Listar competências","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs","host":["{{baseUrl}}"],"path":["v1","payroll-runs"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Da mais recente para a mais antiga.\n\nPermissão: view_payroll (ver).\nResposta: Lista paginada de competências.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Abrir competência","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs","host":["{{baseUrl}}"],"path":["v1","payroll-runs"],"query":[],"variable":[]},"description":"Copia o quadro ativo para dentro da folha, fixa as tabelas vigentes e já calcula todo mundo. Sem período, abre o mês corrente.\n\nPermissão: edit_payroll_entries.\nResposta: A competência aberta.\n\nCorpo:\n- period (string): AAAA-MM. Padrão: mês corrente.\n- payOn (string): Data de pagamento, AAAA-MM-DD. Padrão: dia 5 do mês seguinte.","body":{"mode":"raw","raw":"{\n  \"period\": \"2026-09\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver competência","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs/:runId","host":["{{baseUrl}}"],"path":["v1","payroll-runs",":runId"],"query":[],"variable":[{"key":"runId","value":"","description":"Id da competência."}]},"description":"A competência com o total de pessoas, o custo do empregador, os itens calculados e os lançamentos.\n\nPermissão: view_payroll (ver).\nResposta: A competência, items e entries.\n\nParâmetros do caminho:\n- runId (uuid) obrigatório: Id da competência."},"response":[]},{"name":"Lançar horas e descontos","request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs/:runId/entries/:employeeId","host":["{{baseUrl}}"],"path":["v1","payroll-runs",":runId","entries",":employeeId"],"query":[],"variable":[{"key":"runId","value":"","description":"Id da competência."},{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Substitui o lançamento da pessoa e recalcula o item na hora. Só funciona enquanto a competência está em conferência.\n\nPermissão: edit_payroll_entries.\nResposta: O item recalculado.\n\nParâmetros do caminho:\n- runId (uuid) obrigatório: Id da competência.\n- employeeId (uuid) obrigatório: Id do funcionário.\n\nCorpo:\n- overtime50Minutes (number): Hora extra 50% em minutos.\n- overtime100Minutes (number): Hora extra 100% em minutos.\n- nightMinutes (number): Adicional noturno em minutos.\n- absenceDays (number): Faltas em dias, aceita meio dia.\n- vacationDays (number): Dias de férias gozados na competência.\n- vacationSoldDays (number): Dias vendidos como abono pecuniário.\n- advanceThirteenth (boolean): Paga a primeira parcela do 13º junto das férias.\n- unionDues (number): Contribuição sindical em reais.\n- salaryAdvance (number): Adiantamento em reais.","body":{"mode":"raw","raw":"{\n  \"overtime50Minutes\": 600,\n  \"unionDues\": 25.5\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Recalcular a competência","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs/:runId/recompute","host":["{{baseUrl}}"],"path":["v1","payroll-runs",":runId","recompute"],"query":[],"variable":[{"key":"runId","value":"","description":"Id da competência."}]},"description":"Refaz o cálculo de todos os itens com as tabelas vigentes para o período.\n\nPermissão: edit_payroll_entries.\nResposta: A competência.\n\nParâmetros do caminho:\n- runId (uuid) obrigatório: Id da competência."},"response":[]},{"name":"Aprovar","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs/:runId/approve","host":["{{baseUrl}}"],"path":["v1","payroll-runs",":runId","approve"],"query":[],"variable":[{"key":"runId","value":"","description":"Id da competência."}]},"description":"Fecha o mês e cria a fatura da competência. Se a cobrança não estiver configurada, billingError explica e a fatura fica registrada sem link de pagamento.\n\nPermissão: approve_payroll.\nResposta: A competência aprovada e billingError.\n\nParâmetros do caminho:\n- runId (uuid) obrigatório: Id da competência."},"response":[]},{"name":"Reabrir","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs/:runId/reopen","host":["{{baseUrl}}"],"path":["v1","payroll-runs",":runId","reopen"],"query":[],"variable":[{"key":"runId","value":"","description":"Id da competência."}]},"description":"Volta a competência para conferência e recalcula. Recusa se já houver holerite emitido.\n\nPermissão: approve_payroll.\nResposta: A competência reaberta.\n\nParâmetros do caminho:\n- runId (uuid) obrigatório: Id da competência."},"response":[]},{"name":"Marcar como paga","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs/:runId/pay","host":["{{baseUrl}}"],"path":["v1","payroll-runs",":runId","pay"],"query":[],"variable":[{"key":"runId","value":"","description":"Id da competência."}]},"description":"Registra o pagamento da folha aprovada.\n\nPermissão: approve_payroll.\nResposta: A competência paga.\n\nParâmetros do caminho:\n- runId (uuid) obrigatório: Id da competência."},"response":[]},{"name":"Holerites da competência","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs/:runId/payslips","host":["{{baseUrl}}"],"path":["v1","payroll-runs",":runId","payslips"],"query":[],"variable":[{"key":"runId","value":"","description":"Id da competência."}]},"description":"Os holerites emitidos para essa competência.\n\nPermissão: view_payroll (ver).\nResposta: Lista de holerites.\n\nParâmetros do caminho:\n- runId (uuid) obrigatório: Id da competência."},"response":[]},{"name":"Emitir holerites","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payroll-runs/:runId/payslips","host":["{{baseUrl}}"],"path":["v1","payroll-runs",":runId","payslips"],"query":[],"variable":[{"key":"runId","value":"","description":"Id da competência."}]},"description":"Emite em lote para toda a competência aprovada. Emitir duas vezes não duplica.\n\nPermissão: issue_payslips.\nResposta: Quantos holerites foram emitidos agora.\n\nParâmetros do caminho:\n- runId (uuid) obrigatório: Id da competência."},"response":[]},{"name":"Tabelas de INSS e IRRF","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/tax-tables","host":["{{baseUrl}}"],"path":["v1","tax-tables"],"query":[{"key":"period","value":"","description":"AAAA-MM. Padrão: mês corrente.","disabled":true}],"variable":[]},"description":"As faixas e parâmetros em vigor para a competência pedida.\n\nPermissão: qualquer chave.\nResposta: inss, irrf e parameters.\n\nParâmetros de busca:\n- period (string): AAAA-MM. Padrão: mês corrente."},"response":[]}]},{"name":"Holerites","description":"Duas origens convivem: o holerite que sai da folha e o PDF enviado em lote. A assinatura em si só acontece na sessão do funcionário, nunca pela API.","item":[{"name":"Listar holerites da folha","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payslips","host":["{{baseUrl}}"],"path":["v1","payslips"],"query":[{"key":"employeeId","value":"","description":"Só os de uma pessoa.","disabled":true},{"key":"payrollRunId","value":"","description":"Só os de uma competência.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Filtra por funcionário ou por competência.\n\nPermissão: view_payroll (ver).\nResposta: Lista paginada de holerites.\n\nParâmetros de busca:\n- employeeId (uuid): Só os de uma pessoa.\n- payrollRunId (uuid): Só os de uma competência.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Ver holerite da folha","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payslips/:payslipId","host":["{{baseUrl}}"],"path":["v1","payslips",":payslipId"],"query":[],"variable":[{"key":"payslipId","value":"","description":"Id do holerite."}]},"description":"O holerite com a competência e todos os valores do item de folha.\n\nPermissão: view_payroll (ver).\nResposta: O holerite, o período e o item.\n\nParâmetros do caminho:\n- payslipId (uuid) obrigatório: Id do holerite."},"response":[]},{"name":"Listar lotes de PDF","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payslip-uploads","host":["{{baseUrl}}"],"path":["v1","payslip-uploads"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Cada lote traz a caixa de assinatura e as páginas já distribuídas por funcionário.\n\nPermissão: view_payroll (ver).\nResposta: Lista paginada de lotes com suas páginas.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Enviar holerites em PDF","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payslip-uploads","host":["{{baseUrl}}"],"path":["v1","payslip-uploads"],"query":[],"variable":[]},"description":"Envio multipart. O plano diz qual página de qual arquivo é de quem e onde a assinatura vai ser carimbada. O PDF é fatiado por página no servidor.\n\nPermissão: issue_payslips.\nResposta: O lote criado com as páginas.\n\nCampos do formulário:\n- files (arquivos) obrigatório: Um ou mais PDFs, até 10 MB cada e 30 MB somados.\n- plan (json) obrigatório: box com x, y, width e height em fração da página, rotation 0, 90, 180 ou 270, e pages com fileIndex, pageIndex, employeeId e label. Até 60 páginas.","body":{"mode":"formdata","formdata":[{"key":"files","type":"file","src":[],"description":"Um ou mais PDFs, até 10 MB cada e 30 MB somados."},{"key":"plan","type":"text","value":"","description":"box com x, y, width e height em fração da página, rotation 0, 90, 180 ou 270, e pages com fileIndex, pageIndex, employeeId e label. Até 60 páginas."}]}},"response":[]},{"name":"Ver holerite em PDF","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/uploaded-payslips/:payslipId","host":["{{baseUrl}}"],"path":["v1","uploaded-payslips",":payslipId"],"query":[],"variable":[{"key":"payslipId","value":"","description":"Id da página."}]},"description":"Situação de uma página do lote, incluindo quando foi assinada.\n\nPermissão: view_payroll (ver).\nResposta: O holerite enviado.\n\nParâmetros do caminho:\n- payslipId (uuid) obrigatório: Id da página."},"response":[]},{"name":"Remover holerite em PDF","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/uploaded-payslips/:payslipId","host":["{{baseUrl}}"],"path":["v1","uploaded-payslips",":payslipId"],"query":[],"variable":[{"key":"payslipId","value":"","description":"Id da página."}]},"description":"Apaga a página e o arquivo. Recusa se já estiver assinada. O lote some sozinho quando fica vazio.\n\nPermissão: issue_payslips.\nResposta: O id removido.\n\nParâmetros do caminho:\n- payslipId (uuid) obrigatório: Id da página."},"response":[]},{"name":"Baixar o PDF","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/uploaded-payslips/:payslipId/file","host":["{{baseUrl}}"],"path":["v1","uploaded-payslips",":payslipId","file"],"query":[{"key":"kind","value":"","description":"Padrão original.","disabled":true}],"variable":[{"key":"payslipId","value":"","description":"Id da página."}]},"description":"URL assinada de 60 segundos para o original ou para o documento já assinado.\n\nPermissão: view_payroll (ver).\nResposta: url e expiresAt.\n\nParâmetros do caminho:\n- payslipId (uuid) obrigatório: Id da página.\n\nParâmetros de busca:\n- kind (original | signed): Padrão original."},"response":[]}]},{"name":"Cobrança","description":"A fatura nasce quando a folha é aprovada, com o número de pessoas congelado naquele instante.","item":[{"name":"Listar faturas","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/invoices","host":["{{baseUrl}}"],"path":["v1","invoices"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Da competência mais recente para a mais antiga.\n\nPermissão: view_billing (ver).\nResposta: Lista paginada de faturas.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Gerar o link de pagamento","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/invoices/:invoiceId/charge","host":["{{baseUrl}}"],"path":["v1","invoices",":invoiceId","charge"],"query":[],"variable":[{"key":"invoiceId","value":"","description":"Id da fatura."}]},"description":"Refaz a cobrança na AbacatePay e devolve a fatura com o link. Recusa fatura já paga.\n\nPermissão: view_billing.\nResposta: A fatura com providerUrl.\n\nParâmetros do caminho:\n- invoiceId (uuid) obrigatório: Id da fatura."},"response":[]}]},{"name":"Análise financeira","description":"As demonstrações, os indicadores e as carteiras montados a partir do balancete importado. A importação por aqui recebe JSON já normalizado: o parser de planilha continua só na tela.","item":[{"name":"Listar competências disponíveis","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-periods","host":["{{baseUrl}}"],"path":["v1","financial-periods"],"query":[],"variable":[]},"description":"Da mais recente para a mais antiga, só as importações concluídas.\n\nPermissão: view_financials (ver).\nResposta: Lista de competências com o id da importação em uso."},"response":[]},{"name":"Visão geral da competência","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-overview","host":["{{baseUrl}}"],"path":["v1","financial-overview"],"query":[{"key":"competencia","value":"","description":"Competência a analisar. Padrão: a mais recente.","disabled":true},{"key":"comparar","value":"","description":"previous_month, same_month_last_year, twelve_month_average, budget ou year_to_date.","disabled":true}],"variable":[]},"description":"O índice de saúde, os totais do mês, os sinais de atenção e a série de doze meses.\n\nPermissão: view_financials (ver).\nResposta: Índice de saúde, totais, sinais e série mensal.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar. Padrão: a mais recente.\n- comparar (string): previous_month, same_month_last_year, twelve_month_average, budget ou year_to_date."},"response":[]},{"name":"Demonstração do resultado","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-statements/income","host":["{{baseUrl}}"],"path":["v1","financial-statements","income"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true},{"key":"comparar","value":"","description":"Base de comparação.","disabled":true}],"variable":[]},"description":"As linhas do resultado com comparativo, variação e peso sobre a receita, mais a decomposição do lucro.\n\nPermissão: view_financials (ver).\nResposta: Linhas do resultado e passos da decomposição.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar.\n- comparar (string): Base de comparação."},"response":[]},{"name":"Balanço patrimonial","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-statements/balance","host":["{{baseUrl}}"],"path":["v1","financial-statements","balance"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true},{"key":"comparar","value":"","description":"Base de comparação.","disabled":true}],"variable":[]},"description":"Ativo, passivo e patrimônio líquido por grupo, mais a leitura de capital de giro.\n\nPermissão: view_financials (ver).\nResposta: Grupos do balanço, totais, diferença e estrutura de capital de giro.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar.\n- comparar (string): Base de comparação."},"response":[]},{"name":"Fluxo de caixa","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-statements/cash-flow","host":["{{baseUrl}}"],"path":["v1","financial-statements","cash-flow"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true},{"key":"comparar","value":"","description":"Base de comparação.","disabled":true}],"variable":[]},"description":"Método indireto, com operação, investimento, financiamento e a variação do saldo.\n\nPermissão: view_financials (ver).\nResposta: As três atividades e a conciliação do saldo.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar.\n- comparar (string): Base de comparação."},"response":[]},{"name":"Indicadores","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-indicators","host":["{{baseUrl}}"],"path":["v1","financial-indicators"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true},{"key":"comparar","value":"","description":"Base de comparação.","disabled":true}],"variable":[]},"description":"Dezessete indicadores em quatro famílias, com faixa de referência e meta.\n\nPermissão: view_financials (ver).\nResposta: Lista de indicadores com valor, anterior, faixa e meta.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar.\n- comparar (string): Base de comparação."},"response":[]},{"name":"Carteira de recebíveis","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/receivables","host":["{{baseUrl}}"],"path":["v1","receivables"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true}],"variable":[]},"description":"Faixas de vencimento, clientes e concentração na data de referência da competência.\n\nPermissão: view_financials (ver).\nResposta: Faixas, clientes e concentração.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar."},"response":[]},{"name":"Carteira de pagáveis","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/payables","host":["{{baseUrl}}"],"path":["v1","payables"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true}],"variable":[]},"description":"Janelas de vencimento e os títulos em aberto na data de referência da competência.\n\nPermissão: view_financials (ver).\nResposta: Janelas de vencimento e títulos.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar."},"response":[]},{"name":"Listar importações","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-imports","host":["{{baseUrl}}"],"path":["v1","ledger-imports"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Da mais recente para a mais antiga, em qualquer estado.\n\nPermissão: view_financials (ver).\nResposta: Lista paginada de importações.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Importar balancete","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-imports","host":["{{baseUrl}}"],"path":["v1","ledger-imports"],"query":[],"variable":[]},"description":"Recebe o plano de contas e os saldos já normalizados. Contas sem destino recebem a sugestão do Prumo.\n\nPermissão: manage_financials.\nResposta: A importação criada, em rascunho.\n\nCorpo:\n- period (AAAA-MM) obrigatório: Competência da importação.\n- sourceSystem (string): Sistema contábil de origem.\n- accounts (array) obrigatório: code, name e, se quiser, statementLine e costBehavior.\n- balances (array) obrigatório: code, period e closingBalance, com débito e crédito opcionais.","body":{"mode":"raw","raw":"{\n  \"period\": \"2026-08\",\n  \"sourceSystem\": \"dominio\",\n  \"accounts\": [\n    {\n      \"code\": \"1.1.1.01\",\n      \"name\": \"Caixa e equivalentes\"\n    }\n  ],\n  \"balances\": [\n    {\n      \"code\": \"1.1.1.01\",\n      \"period\": \"2026-08\",\n      \"closingBalance\": 18700\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver uma importação","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-imports/:importId","host":["{{baseUrl}}"],"path":["v1","ledger-imports",":importId"],"query":[],"variable":[{"key":"importId","value":"","description":"Id da importação."}]},"description":"Com os arquivos do envio e o resultado das conferências.\n\nPermissão: view_financials (ver).\nResposta: A importação, seus arquivos e as conferências.\n\nParâmetros do caminho:\n- importId (uuid) obrigatório: Id da importação."},"response":[]},{"name":"Concluir a importação","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-imports/:importId/complete","host":["{{baseUrl}}"],"path":["v1","ledger-imports",":importId","complete"],"query":[],"variable":[{"key":"importId","value":"","description":"Id da importação."}]},"description":"Recusa enquanto houver conferência que impede concluir. Substitui a importação anterior da mesma competência.\n\nPermissão: manage_financials.\nResposta: A importação concluída.\n\nParâmetros do caminho:\n- importId (uuid) obrigatório: Id da importação."},"response":[]},{"name":"Listar o plano de contas","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-accounts","host":["{{baseUrl}}"],"path":["v1","ledger-accounts"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Com o destino nas demonstrações, o comportamento de custo e a confiança da sugestão.\n\nPermissão: view_financials (ver).\nResposta: Lista paginada de contas.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Classificar uma conta","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-accounts/:accountId","host":["{{baseUrl}}"],"path":["v1","ledger-accounts",":accountId"],"query":[],"variable":[{"key":"accountId","value":"","description":"Id da conta."}]},"description":"Grava o destino como decisão manual, e as próximas importações passam a respeitá-la.\n\nPermissão: manage_financials.\nResposta: A conta com o mapeamento novo.\n\nParâmetros do caminho:\n- accountId (uuid) obrigatório: Id da conta.\n\nCorpo:\n- statementLine (string) obrigatório: Destino nas demonstrações.\n- costBehavior (string): variable, fixed ou unreviewed.","body":{"mode":"raw","raw":"{\n  \"statementLine\": \"administrative_expenses\",\n  \"costBehavior\": \"fixed\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver metas e pesos","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-settings","host":["{{baseUrl}}"],"path":["v1","financial-settings"],"query":[],"variable":[]},"description":"As metas, os limites de alerta, os pesos do índice e as preferências de cálculo.\n\nPermissão: view_financials (ver).\nResposta: As configurações do módulo."},"response":[]},{"name":"Alterar metas e pesos","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-settings","host":["{{baseUrl}}"],"path":["v1","financial-settings"],"query":[],"variable":[]},"description":"Só os campos enviados mudam. Os cinco pesos precisam somar 100.\n\nPermissão: manage_financials.\nResposta: As configurações depois da alteração.\n\nCorpo:\n- targetNetMargin (number): Meta de margem líquida, em fração.\n- alertNetDebtEbitda (number): Limite de dívida líquida sobre EBITDA.\n- weightLiquidity (number): Peso da liquidez no índice.\n- daysInMonth (number): Dias no mês usados nos prazos médios.","body":{"mode":"raw","raw":"{\n  \"targetNetMargin\": 0.07,\n  \"alertNetDebtEbitda\": 2.5\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Listar conjuntos de cenários","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-scenarios","host":["{{baseUrl}}"],"path":["v1","financial-scenarios"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Do mais recente para o mais antigo, com as premissas de cada cenário.\n\nPermissão: view_financials (ver).\nResposta: Lista paginada de conjuntos.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Salvar um conjunto de cenários","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-scenarios","host":["{{baseUrl}}"],"path":["v1","financial-scenarios"],"query":[],"variable":[]},"description":"Um conjunto guarda as premissas dos cenários conservador, base e otimista.\n\nPermissão: manage_financials.\nResposta: O id do conjunto criado.\n\nCorpo:\n- name (string) obrigatório: Nome do conjunto.\n- period (AAAA-MM) obrigatório: Competência de partida.\n- scenarios (array) obrigatório: Até três cenários, um por slot.","body":{"mode":"raw","raw":"{\n  \"name\": \"Renovação do limite, banco Itaú\",\n  \"period\": \"2026-08\",\n  \"scenarios\": [\n    {\n      \"slot\": \"base\",\n      \"revenueGrowth\": 0.03,\n      \"netMargin\": 0.025,\n      \"expenseInflation\": 0.05,\n      \"dsoDays\": 46,\n      \"dpoDays\": 44,\n      \"capex\": 420000,\n      \"debtRaise\": 500000\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Projeção dos três cenários","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-scenario-projection","host":["{{baseUrl}}"],"path":["v1","financial-scenario-projection"],"query":[{"key":"competencia","value":"","description":"Competência de partida.","disabled":true}],"variable":[]},"description":"A base de doze meses e o resultado projetado nos cenários conservador, base e otimista.\n\nPermissão: view_financials (ver).\nResposta: A base e os três cenários com suas premissas.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência de partida."},"response":[]},{"name":"Enviar a carteira de recebíveis","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-imports/:importId/receivables","host":["{{baseUrl}}"],"path":["v1","ledger-imports",":importId","receivables"],"query":[],"variable":[{"key":"importId","value":"","description":"Id da importação."}]},"description":"Substitui os títulos daquela data de referência. Clientes novos entram no cadastro.\n\nPermissão: manage_financials.\nResposta: A data de referência e quantos títulos entraram.\n\nParâmetros do caminho:\n- importId (uuid) obrigatório: Id da importação.\n\nCorpo:\n- asOf (AAAA-MM-DD) obrigatório: Data de referência da carteira.\n- titles (array) obrigatório: counterparty, document, dueOn e amount, com issuedOn e settledAmount opcionais.","body":{"mode":"raw","raw":"{\n  \"asOf\": \"2026-08-31\",\n  \"titles\": [\n    {\n      \"counterparty\": \"Rede Norte Sul\",\n      \"document\": \"NF 24.881\",\n      \"issuedOn\": \"2026-07-13\",\n      \"dueOn\": \"2026-08-12\",\n      \"amount\": 148200\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Enviar a carteira de pagáveis","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-imports/:importId/payables","host":["{{baseUrl}}"],"path":["v1","ledger-imports",":importId","payables"],"query":[],"variable":[{"key":"importId","value":"","description":"Id da importação."}]},"description":"Mesma forma da carteira de recebíveis, com categoria e custo ao ano por título.\n\nPermissão: manage_financials.\nResposta: A data de referência e quantos títulos entraram.\n\nParâmetros do caminho:\n- importId (uuid) obrigatório: Id da importação.\n\nCorpo:\n- asOf (AAAA-MM-DD) obrigatório: Data de referência da carteira.\n- titles (array) obrigatório: counterparty, document, dueOn, amount e category entre supplier, payroll, tax e loan.","body":{"mode":"raw","raw":"{\n  \"asOf\": \"2026-08-31\",\n  \"titles\": [\n    {\n      \"counterparty\": \"Banco Itaú\",\n      \"category\": \"loan\",\n      \"document\": \"Parcela 12/48\",\n      \"dueOn\": \"2026-09-10\",\n      \"amount\": 120000,\n      \"annualRate\": 0.214\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Rodar as conferências","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-imports/:importId/validate","host":["{{baseUrl}}"],"path":["v1","ledger-imports",":importId","validate"],"query":[],"variable":[{"key":"importId","value":"","description":"Id da importação."}]},"description":"Roda as sete checagens sobre a competência e grava o resultado. É o que libera concluir.\n\nPermissão: manage_financials.\nResposta: A lista de conferências com severidade, valor e detalhe.\n\nParâmetros do caminho:\n- importId (uuid) obrigatório: Id da importação."},"response":[]},{"name":"Classificar contas em lote","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/ledger-accounts/batch","host":["{{baseUrl}}"],"path":["v1","ledger-accounts","batch"],"query":[],"variable":[]},"description":"Grava o destino de várias contas de uma vez, como decisão manual.\n\nPermissão: manage_financials.\nResposta: Quantas contas foram gravadas.\n\nCorpo:\n- mappings (array) obrigatório: code, statementLine e costBehavior opcional.","body":{"mode":"raw","raw":"{\n  \"mappings\": [\n    {\n      \"code\": \"4.2.1.19\",\n      \"statementLine\": \"administrative_expenses\",\n      \"costBehavior\": \"fixed\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Projeção de treze semanas","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-cash-projection","host":["{{baseUrl}}"],"path":["v1","financial-cash-projection"],"query":[{"key":"competencia","value":"","description":"Competência de partida.","disabled":true},{"key":"atrasoMaiorCliente","value":"","description":"Dias de atraso a aplicar aos títulos do maior cliente.","disabled":true},{"key":"inadimplencia","value":"","description":"Fração a reduzir de toda entrada prevista.","disabled":true},{"key":"adiarMaiorPagamento","value":"","description":"Tira o maior pagamento da semana em que vence.","disabled":true},{"key":"captacao","value":"","description":"Valor de capital de giro a injetar.","disabled":true},{"key":"captacaoSemana","value":"","description":"Semana da injeção, de 1 a 13. Padrão 3.","disabled":true}],"variable":[]},"description":"Entradas, saídas e saldo semana a semana, com as mesmas premissas da tela.\n\nPermissão: view_financials (ver).\nResposta: Saldo de partida, menor saldo, saldo final e as treze semanas.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência de partida.\n- atrasoMaiorCliente (number): Dias de atraso a aplicar aos títulos do maior cliente.\n- inadimplencia (number): Fração a reduzir de toda entrada prevista.\n- adiarMaiorPagamento (boolean): Tira o maior pagamento da semana em que vence.\n- captacao (number): Valor de capital de giro a injetar.\n- captacaoSemana (number): Semana da injeção, de 1 a 13. Padrão 3."},"response":[]},{"name":"Calendário de compromissos","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-payment-calendar","host":["{{baseUrl}}"],"path":["v1","financial-payment-calendar"],"query":[{"key":"competencia","value":"","description":"Competência de partida.","disabled":true}],"variable":[]},"description":"As treze semanas de pagáveis empilhadas por categoria. A folha entra pela competência aprovada.\n\nPermissão: view_financials (ver).\nResposta: As semanas com total e recorte por categoria.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência de partida."},"response":[]},{"name":"Ponto de equilíbrio","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-breakeven","host":["{{baseUrl}}"],"path":["v1","financial-breakeven"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true}],"variable":[]},"description":"Estrutura de custo entre fixo e variável, margem de contribuição, ponto de equilíbrio e sensibilidade.\n\nPermissão: view_financials (ver).\nResposta: O resultado da competência e as contas com o comportamento de custo.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar."},"response":[]},{"name":"Estrutura e risco","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-risk","host":["{{baseUrl}}"],"path":["v1","financial-risk"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true}],"variable":[]},"description":"Necessidade de capital de giro, saldo de tesouraria, tipo de estrutura, Kanitz, Altman e perfil da dívida.\n\nPermissão: view_financials (ver).\nResposta: Estrutura, solvência, série de doze meses e contratos de dívida.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar."},"response":[]},{"name":"Pessoas e resultado","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-people","host":["{{baseUrl}}"],"path":["v1","financial-people"],"query":[{"key":"competencia","value":"","description":"Competência a analisar.","disabled":true}],"variable":[]},"description":"O custo de pessoal do balancete cruzado com a folha da competência, por centro de custo.\n\nPermissão: view_financials (ver).\nResposta: Custo, quadro, receita e lucro por pessoa, composição e centros de custo.\n\nParâmetros de busca:\n- competencia (AAAA-MM): Competência a analisar."},"response":[]},{"name":"Histórico de alterações","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-settings/changes","host":["{{baseUrl}}"],"path":["v1","financial-settings","changes"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Cada mudança de meta, limite ou peso, com autor e data.\n\nPermissão: view_financials (ver).\nResposta: Lista paginada de alterações.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Listar pacotes gerados","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-reports","host":["{{baseUrl}}"],"path":["v1","financial-reports"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Do mais recente para o mais antigo, com as seções que entraram e o número de páginas.\n\nPermissão: view_financials (ver).\nResposta: Lista paginada de pacotes.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Gerar o pacote em PDF","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/financial-reports","host":["{{baseUrl}}"],"path":["v1","financial-reports"],"query":[],"variable":[]},"description":"Monta o PDF com as seções escolhidas, registra o pacote e devolve o arquivo em base64.\n\nPermissão: manage_financials.\nResposta: O pacote registrado e o PDF em base64.\n\nCorpo:\n- name (string) obrigatório: Nome do pacote.\n- period (AAAA-MM) obrigatório: Competência do pacote.\n- scope (string) obrigatório: month, quarter, year_to_date ou twelve_months.\n- sections (array) obrigatório: cover, summary, income, balance, cash, indicators, receivables, people e quality.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pacote completo, banco Itaú\",\n  \"period\": \"2026-08\",\n  \"scope\": \"month\",\n  \"sections\": [\n    \"cover\",\n    \"summary\",\n    \"income\",\n    \"balance\",\n    \"cash\",\n    \"indicators\",\n    \"receivables\",\n    \"people\",\n    \"quality\"\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]}]},{"name":"Férias","description":"O período aquisitivo sai da admissão e o saldo é consumido do mais antigo para o mais novo. O que for aprovado entra na folha da competência em que cai.","item":[{"name":"Listar pedidos de férias","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/vacation-requests","host":["{{baseUrl}}"],"path":["v1","vacation-requests"],"query":[{"key":"status","value":"","description":"Filtra pela situação.","disabled":true},{"key":"employeeId","value":"","description":"Filtra por funcionário.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Do período mais recente para o mais antigo.\n\nPermissão: view_vacations (ver).\nResposta: Lista paginada de pedidos.\n\nParâmetros de busca:\n- status (pending | approved | rejected | cancelled): Filtra pela situação.\n- employeeId (uuid): Filtra por funcionário.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Agendar férias","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/vacation-requests","host":["{{baseUrl}}"],"path":["v1","vacation-requests"],"query":[],"variable":[]},"description":"Lança férias já combinadas com a pessoa: o registro nasce aprovado, com a chave como solicitante e aprovadora. O aviso de 30 dias e a regra do dia de início não se aplicam aqui. Contrato PJ recusa abono e adiantamento de 13º.\n\nPermissão: manage_vacations.\nResposta: O pedido criado, já aprovado.\n\nCorpo:\n- employeeId (uuid) obrigatório: Id do funcionário.\n- startsOn (string) obrigatório: Primeiro dia, AAAA-MM-DD.\n- endsOn (string) obrigatório: Último dia, AAAA-MM-DD.\n- soldDays (number): Abono pecuniário em dias, até um terço do direito.\n- advanceThirteenth (boolean): Paga a primeira parcela do 13º junto.\n- note (string | null): Observação livre.","body":{"mode":"raw","raw":"{\n  \"employeeId\": \"27e68007-0000-0000-0000-000000000000\",\n  \"startsOn\": \"2026-11-02\",\n  \"endsOn\": \"2026-11-16\",\n  \"soldDays\": 5\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver pedido de férias","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/vacation-requests/:requestId","host":["{{baseUrl}}"],"path":["v1","vacation-requests",":requestId"],"query":[],"variable":[{"key":"requestId","value":"","description":"Id do pedido."}]},"description":"O pedido com o período aquisitivo que ele consome e a decisão registrada.\n\nPermissão: view_vacations (ver).\nResposta: O pedido.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id do pedido."},"response":[]},{"name":"Aprovar","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/vacation-requests/:requestId/approve","host":["{{baseUrl}}"],"path":["v1","vacation-requests",":requestId","approve"],"query":[],"variable":[{"key":"requestId","value":"","description":"Id do pedido."}]},"description":"Aprova um pedido que ainda está aguardando e atualiza o lançamento das competências em conferência. Recusa aprovar o próprio pedido, a não ser que a chave seja do proprietário.\n\nPermissão: manage_vacations.\nResposta: O pedido aprovado.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id do pedido."},"response":[]},{"name":"Recusar","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/vacation-requests/:requestId/reject","host":["{{baseUrl}}"],"path":["v1","vacation-requests",":requestId","reject"],"query":[],"variable":[{"key":"requestId","value":"","description":"Id do pedido."}]},"description":"Recusa um pedido aguardando decisão. A justificativa é obrigatória e aparece para o funcionário.\n\nPermissão: manage_vacations.\nResposta: O pedido recusado.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id do pedido.\n\nCorpo:\n- note (string) obrigatório: Motivo da recusa.","body":{"mode":"raw","raw":"{\n  \"note\": \"Fechamento do trimestre nessa semana.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Cancelar","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/vacation-requests/:requestId/cancel","host":["{{baseUrl}}"],"path":["v1","vacation-requests",":requestId","cancel"],"query":[],"variable":[{"key":"requestId","value":"","description":"Id do pedido."}]},"description":"Cancela um pedido aguardando ou umas férias aprovadas que ainda não começaram.\n\nPermissão: manage_vacations.\nResposta: O pedido cancelado.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id do pedido.\n\nCorpo:\n- note (string | null): Motivo do cancelamento.","body":{"mode":"raw","raw":"{\n  \"note\": \"Remarcado a pedido da pessoa.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Saldo de férias do funcionário","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/vacation-balance","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","vacation-balance"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Um período aquisitivo por ano de casa, com direito, dias gozados, vendidos, aguardando decisão e saldo. Marca o período que já passou do prazo de concessão.\n\nPermissão: view_vacations (ver).\nResposta: policy e a lista de períodos com o saldo de cada um.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]}]},{"name":"Ponto","description":"A batida é registro imutável: só um ajuste aprovado corrige, e o horário antigo continua no histórico. Espelho, saldo do dia e banco de horas saem derivados das batidas, nunca gravados.","item":[{"name":"Listar batidas","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-punches","host":["{{baseUrl}}"],"path":["v1","time-punches"],"query":[{"key":"employeeId","value":"","description":"Filtra por funcionário.","disabled":true},{"key":"from","value":"","description":"Primeiro dia da janela, AAAA-MM-DD.","disabled":true},{"key":"to","value":"","description":"Último dia da janela, AAAA-MM-DD.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Da mais recente para a mais antiga. Batida substituída por ajuste ou apagada não aparece.\n\nPermissão: view_timesheets (ver).\nResposta: Lista paginada de batidas.\n\nParâmetros de busca:\n- employeeId (uuid): Filtra por funcionário.\n- from (string): Primeiro dia da janela, AAAA-MM-DD.\n- to (string): Último dia da janela, AAAA-MM-DD.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Lançar batida","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-punches","host":["{{baseUrl}}"],"path":["v1","time-punches"],"query":[],"variable":[]},"description":"Registra uma batida em nome do funcionário, com origem manual. Recusa duplicata no mesmo instante e tipo.\n\nPermissão: manage_timesheets.\nResposta: A batida criada.\n\nCorpo:\n- employeeId (uuid) obrigatório: Id do funcionário.\n- punchedAt (string) obrigatório: Instante da batida em ISO 8601.\n- kind (entry | break_start | break_end | exit) obrigatório: Qual batida do dia.","body":{"mode":"raw","raw":"{\n  \"employeeId\": \"27e68007-0000-4000-8000-000000000000\",\n  \"punchedAt\": \"2026-09-09T11:02:00.000Z\",\n  \"kind\": \"entry\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Espelho do funcionário","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/timesheet","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","timesheet"],"query":[{"key":"period","value":"","description":"Competência AAAA-MM. Padrão: o mês corrente.","disabled":true}],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"O mês dia a dia, com jornada, saldo, situação e origem de cada linha, mais os totais, o banco de horas e o que iria para a folha.\n\nPermissão: view_timesheets (ver).\nResposta: O espelho do mês, derivado das batidas.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário.\n\nParâmetros de busca:\n- period (string): Competência AAAA-MM. Padrão: o mês corrente."},"response":[]},{"name":"Painel do ponto","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-board","host":["{{baseUrl}}"],"path":["v1","time-board"],"query":[{"key":"period","value":"","description":"Competência AAAA-MM. Padrão: o mês corrente.","disabled":true}],"variable":[]},"description":"Quem está na jornada agora, com o total do mês e as pendências abertas de cada pessoa.\n\nPermissão: view_timesheets (ver).\nResposta: O painel da equipe na competência.\n\nParâmetros de busca:\n- period (string): Competência AAAA-MM. Padrão: o mês corrente."},"response":[]},{"name":"Listar ajustes","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-adjustments","host":["{{baseUrl}}"],"path":["v1","time-adjustments"],"query":[{"key":"status","value":"","description":"Filtra pela situação.","disabled":true},{"key":"employeeId","value":"","description":"Filtra por funcionário.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Do pedido mais recente para o mais antigo.\n\nPermissão: view_timesheets (ver).\nResposta: Lista paginada de ajustes.\n\nParâmetros de busca:\n- status (pending | approved | rejected | cancelled): Filtra pela situação.\n- employeeId (uuid): Filtra por funcionário.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Abrir ajuste","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-adjustments","host":["{{baseUrl}}"],"path":["v1","time-adjustments"],"query":[],"variable":[]},"description":"Abre a correção em nome do funcionário. Fica pendente até a aprovação: enquanto isso o dia conta pelo que foi batido.\n\nPermissão: manage_timesheets.\nResposta: O ajuste criado, ainda pendente.\n\nCorpo:\n- employeeId (uuid) obrigatório: Id do funcionário.\n- workDate (string) obrigatório: Dia do espelho, AAAA-MM-DD.\n- kind (add | change | remove) obrigatório: O que fazer com a batida.\n- punchKind (entry | break_start | break_end | exit) obrigatório: Qual batida do dia.\n- punchId (uuid | null): Batida existente. Obrigatório fora do tipo add.\n- proposedAt (string | null): Horário correto em ISO 8601. Obrigatório fora do tipo remove.\n- reason (string) obrigatório: O que aconteceu no dia.","body":{"mode":"raw","raw":"{\n  \"employeeId\": \"27e68007-0000-4000-8000-000000000000\",\n  \"workDate\": \"2026-09-03\",\n  \"kind\": \"add\",\n  \"punchKind\": \"exit\",\n  \"reason\": \"saiu direto para a transportadora e esqueceu de bater\",\n  \"proposedAt\": \"2026-09-03T20:06:00.000Z\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Aprovar ajuste","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-adjustments/:adjustmentId/approve","host":["{{baseUrl}}"],"path":["v1","time-adjustments",":adjustmentId","approve"],"query":[],"variable":[{"key":"adjustmentId","value":"","description":"Id do ajuste."}]},"description":"Grava a batida corrigida e marca a antiga como substituída. O espelho e o banco de horas são recalculados na leitura seguinte.\n\nPermissão: manage_timesheets.\nResposta: O ajuste aprovado.\n\nParâmetros do caminho:\n- adjustmentId (uuid) obrigatório: Id do ajuste."},"response":[]},{"name":"Recusar ajuste","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-adjustments/:adjustmentId/reject","host":["{{baseUrl}}"],"path":["v1","time-adjustments",":adjustmentId","reject"],"query":[],"variable":[{"key":"adjustmentId","value":"","description":"Id do ajuste."}]},"description":"A justificativa é obrigatória e aparece para o funcionário. O espelho continua como está.\n\nPermissão: manage_timesheets.\nResposta: O ajuste recusado.\n\nParâmetros do caminho:\n- adjustmentId (uuid) obrigatório: Id do ajuste.\n\nCorpo:\n- note (string) obrigatório: Motivo da recusa.","body":{"mode":"raw","raw":"{\n  \"note\": \"o relógio registrou a saída às 17:06\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Listar jornadas","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/work-schedules","host":["{{baseUrl}}"],"path":["v1","work-schedules"],"query":[],"variable":[]},"description":"As jornadas da organização, com dias de trabalho, intervalo mínimo e tolerância.\n\nPermissão: view_timesheets (ver).\nResposta: As jornadas cadastradas."},"response":[]},{"name":"Criar jornada","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/work-schedules","host":["{{baseUrl}}"],"path":["v1","work-schedules"],"query":[],"variable":[]},"description":"O alvo diário sai da jornada semanal dividida pelos dias de trabalho.\n\nPermissão: manage_timesheets.\nResposta: A jornada criada.\n\nCorpo:\n- name (string) obrigatório: Nome da jornada.\n- weeklyMinutes (number) obrigatório: Jornada semanal em minutos.\n- workdays (array) obrigatório: Dias ISO de trabalho, de 1 a 7.\n- breakMinutes (number): Intervalo mínimo em minutos. Padrão 60.\n- toleranceMinutes (number): Tolerância diária em minutos. Padrão 10.\n- isDefault (boolean): Vira a jornada de quem não tem uma.","body":{"mode":"raw","raw":"{\n  \"name\": \"44h · seg a sex\",\n  \"weeklyMinutes\": 2640,\n  \"workdays\": [\n    1,\n    2,\n    3,\n    4,\n    5\n  ],\n  \"breakMinutes\": 60,\n  \"toleranceMinutes\": 10,\n  \"isDefault\": true\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Atualizar jornada","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/work-schedules/:scheduleId","host":["{{baseUrl}}"],"path":["v1","work-schedules",":scheduleId"],"query":[],"variable":[{"key":"scheduleId","value":"","description":"Id da jornada."}]},"description":"Reescreve a jornada inteira. Espelhos já lidos são recalculados na leitura seguinte.\n\nPermissão: manage_timesheets.\nResposta: A jornada atualizada.\n\nParâmetros do caminho:\n- scheduleId (uuid) obrigatório: Id da jornada.\n\nCorpo:\n- name (string) obrigatório: Nome da jornada.\n- weeklyMinutes (number) obrigatório: Jornada semanal em minutos.\n- workdays (array) obrigatório: Dias ISO de trabalho, de 1 a 7.\n- breakMinutes (number): Intervalo mínimo em minutos.\n- toleranceMinutes (number): Tolerância diária em minutos.\n- isDefault (boolean): Vira a jornada de quem não tem uma.","body":{"mode":"raw","raw":"{\n  \"name\": \"30h · seg a sex\",\n  \"weeklyMinutes\": 1800,\n  \"workdays\": [\n    1,\n    2,\n    3,\n    4,\n    5\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Listar importações","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-imports","host":["{{baseUrl}}"],"path":["v1","time-imports"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Os lotes já gravados, do mais recente para o mais antigo.\n\nPermissão: view_timesheets (ver).\nResposta: Lista paginada de importações.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Importar batidas","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-imports","host":["{{baseUrl}}"],"path":["v1","time-imports"],"query":[],"variable":[]},"description":"Grava um lote já normalizado. A leitura do arquivo é da tela: a API recebe batidas com funcionário resolvido. Repetida no mesmo instante e tipo é ignorada.\n\nPermissão: manage_timesheets.\nResposta: O lote gravado, com o que entrou e o que foi ignorado.\n\nCorpo:\n- fileName (string) obrigatório: Nome do arquivo de origem.\n- fileKind (csv | xlsx | afd) obrigatório: Formato do arquivo.\n- punches (array) obrigatório: As batidas a gravar, até 20.000.","body":{"mode":"raw","raw":"{\n  \"fileName\": \"afd-setembro-2026.txt\",\n  \"fileKind\": \"afd\",\n  \"punches\": [\n    {\n      \"employeeId\": \"27e68007-0000-4000-8000-000000000000\",\n      \"punchedAt\": \"2026-09-01T11:02:00.000Z\",\n      \"kind\": \"entry\",\n      \"nsr\": \"1042\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Fechar período do ponto","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/time-periods/close","host":["{{baseUrl}}"],"path":["v1","time-periods","close"],"query":[],"variable":[]},"description":"Leva as extras e as faltas do mês para o lançamento da folha, com origem relógio de ponto. Recusa se houver ajuste pendente ou se a competência não estiver em rascunho.\n\nPermissão: manage_timesheets.\nResposta: As horas lançadas na folha em rascunho.\n\nCorpo:\n- employeeId (uuid) obrigatório: Id do funcionário.\n- period (string) obrigatório: Competência como AAAA-MM-01.","body":{"mode":"raw","raw":"{\n  \"employeeId\": \"27e68007-0000-4000-8000-000000000000\",\n  \"period\": \"2026-09-01\"\n}","options":{"raw":{"language":"json"}}}},"response":[]}]},{"name":"Suporte","description":"Os chamados que os clientes da sua empresa abrem pelo link público de suporte. O prazo de resposta corre de segunda a sábado, das 7h às 18h.","item":[{"name":"Listar chamados","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-tickets","host":["{{baseUrl}}"],"path":["v1","support-tickets"],"query":[{"key":"status","value":"","description":"Filtra pela situação.","disabled":true},{"key":"category","value":"","description":"Filtra pela categoria.","disabled":true},{"key":"assigneeId","value":"","description":"Filtra pelo responsável.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Do que teve mensagem mais recente para o mais antigo.\n\nPermissão: view_tickets (ver).\nResposta: Lista paginada de chamados.\n\nParâmetros de busca:\n- status (open | in_progress | resolved): Filtra pela situação.\n- category (delivery | order | billing | damage | account | other): Filtra pela categoria.\n- assigneeId (uuid): Filtra pelo responsável.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Abrir chamado","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-tickets","host":["{{baseUrl}}"],"path":["v1","support-tickets"],"query":[],"variable":[]},"description":"Registra um chamado em nome de um cliente já cadastrado na organização.\n\nPermissão: manage_tickets.\nResposta: O chamado criado.\n\nCorpo:\n- requesterId (uuid) obrigatório: Id do usuário cliente que pediu.\n- subject (string) obrigatório: Assunto, até 160 caracteres.\n- category (delivery | order | billing | damage | account | other) obrigatório: Categoria do chamado.\n- priority (high | normal | low): Padrão normal.\n- body (string) obrigatório: A primeira mensagem, até 4000 caracteres.","body":{"mode":"raw","raw":"{\n  \"requesterId\": \"0f3d4a2c-6f9a-4a3e-9f1a-2b5c7d8e9f01\",\n  \"subject\": \"Segunda via da fatura de agosto\",\n  \"category\": \"billing\",\n  \"priority\": \"normal\",\n  \"body\": \"Preciso da segunda via com o vencimento reprogramado.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver chamado","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-tickets/:ticketId","host":["{{baseUrl}}"],"path":["v1","support-tickets",":ticketId"],"query":[],"variable":[{"key":"ticketId","value":"","description":"Id do chamado."}]},"description":"Os dados de um chamado, sem as mensagens.\n\nPermissão: view_tickets (ver).\nResposta: O chamado.\n\nParâmetros do caminho:\n- ticketId (uuid) obrigatório: Id do chamado."},"response":[]},{"name":"Listar mensagens","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-tickets/:ticketId/messages","host":["{{baseUrl}}"],"path":["v1","support-tickets",":ticketId","messages"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[{"key":"ticketId","value":"","description":"Id do chamado."}]},"description":"A conversa inteira, da mais antiga para a mais nova, incluindo as notas internas.\n\nPermissão: view_tickets (ver).\nResposta: Lista paginada de mensagens.\n\nParâmetros do caminho:\n- ticketId (uuid) obrigatório: Id do chamado.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Responder","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-tickets/:ticketId/messages","host":["{{baseUrl}}"],"path":["v1","support-tickets",":ticketId","messages"],"query":[],"variable":[{"key":"ticketId","value":"","description":"Id do chamado."}]},"description":"Grava a resposta do atendimento. Com internal, vira nota interna: o cliente não vê e o prazo não é marcado como respondido.\n\nPermissão: manage_tickets.\nResposta: A mensagem criada.\n\nParâmetros do caminho:\n- ticketId (uuid) obrigatório: Id do chamado.\n\nCorpo:\n- body (string) obrigatório: A mensagem, até 4000 caracteres.\n- internal (boolean): Padrão false.","body":{"mode":"raw","raw":"{\n  \"body\": \"Emiti a segunda via com o vencimento reprogramado.\",\n  \"internal\": false\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Atribuir","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-tickets/:ticketId/assign","host":["{{baseUrl}}"],"path":["v1","support-tickets",":ticketId","assign"],"query":[],"variable":[{"key":"ticketId","value":"","description":"Id do chamado."}]},"description":"Define o responsável. Envie null para devolver o chamado à triagem.\n\nPermissão: manage_tickets.\nResposta: O chamado atualizado.\n\nParâmetros do caminho:\n- ticketId (uuid) obrigatório: Id do chamado.\n\nCorpo:\n- assigneeId (uuid | null) obrigatório: Quem atende.","body":{"mode":"raw","raw":"{\n  \"assigneeId\": \"0f3d4a2c-6f9a-4a3e-9f1a-2b5c7d8e9f01\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Mudar prioridade","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-tickets/:ticketId/priority","host":["{{baseUrl}}"],"path":["v1","support-tickets",":ticketId","priority"],"query":[],"variable":[{"key":"ticketId","value":"","description":"Id do chamado."}]},"description":"A prioridade define o prazo de primeira resposta e de solução.\n\nPermissão: manage_tickets.\nResposta: O chamado atualizado.\n\nParâmetros do caminho:\n- ticketId (uuid) obrigatório: Id do chamado.\n\nCorpo:\n- priority (high | normal | low) obrigatório: Nova prioridade.","body":{"mode":"raw","raw":"{\n  \"priority\": \"high\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Mudar situação","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-tickets/:ticketId/status","host":["{{baseUrl}}"],"path":["v1","support-tickets",":ticketId","status"],"query":[],"variable":[{"key":"ticketId","value":"","description":"Id do chamado."}]},"description":"Cada mudança deixa uma mensagem de sistema na conversa.\n\nPermissão: manage_tickets.\nResposta: O chamado atualizado.\n\nParâmetros do caminho:\n- ticketId (uuid) obrigatório: Id do chamado.\n\nCorpo:\n- status (open | in_progress | resolved) obrigatório: Nova situação.","body":{"mode":"raw","raw":"{\n  \"status\": \"resolved\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Painel de SLA","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-metrics","host":["{{baseUrl}}"],"path":["v1","support-metrics"],"query":[],"variable":[]},"description":"Os números dos últimos 14 dias: primeira resposta média, dentro do SLA, tempo de resolução, reaberturas, volume por dia, quebra por categoria e carga por atendente. Tudo em minutos úteis.\n\nPermissão: view_tickets (ver).\nResposta: O painel do período."},"response":[]},{"name":"Listar respostas prontas","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-macros","host":["{{baseUrl}}"],"path":["v1","support-macros"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Da mais usada para a menos usada.\n\nPermissão: view_tickets (ver).\nResposta: Lista paginada de respostas prontas.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Criar resposta pronta","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-macros","host":["{{baseUrl}}"],"path":["v1","support-macros"],"query":[],"variable":[]},"description":"Os campos entre chaves são preenchidos na hora de responder: {nome}, {chamado}, {atendente}, {sla} e {assunto}.\n\nPermissão: manage_tickets.\nResposta: A resposta pronta criada.\n\nCorpo:\n- label (string) obrigatório: Nome curto, até 80 caracteres.\n- category (delivery | order | billing | damage | account | other | null): Null é a resposta geral.\n- body (string) obrigatório: O texto, até 4000 caracteres.","body":{"mode":"raw","raw":"{\n  \"label\": \"Recebido e em análise\",\n  \"category\": \"delivery\",\n  \"body\": \"Oi, {nome}. Recebi o chamado {chamado} e já estou verificando. Volto aqui em até {sla}.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Editar resposta pronta","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-macros/:macroId","host":["{{baseUrl}}"],"path":["v1","support-macros",":macroId"],"query":[],"variable":[{"key":"macroId","value":"","description":"Id da resposta pronta."}]},"description":"Reescreve nome, categoria e texto. A contagem de uso não muda.\n\nPermissão: manage_tickets.\nResposta: A resposta pronta atualizada.\n\nParâmetros do caminho:\n- macroId (uuid) obrigatório: Id da resposta pronta.\n\nCorpo:\n- label (string) obrigatório: Nome curto, até 80 caracteres.\n- category (delivery | order | billing | damage | account | other | null): Null é a resposta geral.\n- body (string) obrigatório: O texto, até 4000 caracteres.","body":{"mode":"raw","raw":"{\n  \"label\": \"Recebido e em análise\",\n  \"category\": \"delivery\",\n  \"body\": \"Oi, {nome}. Recebi o chamado {chamado} e já estou verificando.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Remover resposta pronta","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/support-macros/:macroId","host":["{{baseUrl}}"],"path":["v1","support-macros",":macroId"],"query":[],"variable":[{"key":"macroId","value":"","description":"Id da resposta pronta."}]},"description":"Some da lista e do campo de resposta. Não mexe nas mensagens já enviadas.\n\nPermissão: manage_tickets.\nResposta: O id removido.\n\nParâmetros do caminho:\n- macroId (uuid) obrigatório: Id da resposta pronta."},"response":[]}]},{"name":"Benefícios","description":"O catálogo é da organização e a adesão é da pessoa. O valor da adesão vence o do plano quando existe, e a situação sai das datas: nada de ativo ou encerrado é gravado.","item":[{"name":"Listar planos de benefício","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/benefit-plans","host":["{{baseUrl}}"],"path":["v1","benefit-plans"],"query":[{"key":"category","value":"","description":"Filtra pela categoria.","disabled":true},{"key":"status","value":"","description":"all inclui os arquivados. Padrão live.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Em ordem alfabética. Traz só os planos ativos, a não ser que status venha como all.\n\nPermissão: view_all_employees.\nResposta: Lista paginada de planos.\n\nParâmetros de busca:\n- category (health_plan | dental_plan | life_insurance | meal_voucher | food_voucher | transport_voucher | childcare | education | gym | fuel | other): Filtra pela categoria.\n- status (live | all): all inclui os arquivados. Padrão live.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Cadastrar plano","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/benefit-plans","host":["{{baseUrl}}"],"path":["v1","benefit-plans"],"query":[],"variable":[]},"description":"Cria um plano no catálogo da organização. O nome não se repete dentro da mesma organização. Os dois valores são o padrão que a adesão herda quando não traz valor próprio.\n\nPermissão: manage_employees.\nResposta: O plano criado.\n\nCorpo:\n- name (string) obrigatório: Nome do plano, até 120 caracteres.\n- category (health_plan | dental_plan | life_insurance | meal_voucher | food_voucher | transport_voucher | childcare | education | gym | fuel | other) obrigatório: Categoria do benefício.\n- provider (string | null): Operadora ou fornecedor.\n- employerCost (number): Custo mensal do empregador. Padrão 0.\n- employeeCost (number): Desconto mensal do funcionário. Padrão 0.\n- notes (string | null): Observação livre, até 1000 caracteres.","body":{"mode":"raw","raw":"{\n  \"name\": \"Unimed Nacional Enfermaria\",\n  \"category\": \"health_plan\",\n  \"provider\": \"Unimed\",\n  \"employerCost\": 182,\n  \"employeeCost\": 48\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Editar plano","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/benefit-plans/:planId","host":["{{baseUrl}}"],"path":["v1","benefit-plans",":planId"],"query":[],"variable":[{"key":"planId","value":"","description":"Id do plano."}]},"description":"Muda só o que vier no corpo. Mudar o valor do plano não reescreve as adesões que já têm valor próprio.\n\nPermissão: manage_employees.\nResposta: O plano atualizado.\n\nParâmetros do caminho:\n- planId (uuid) obrigatório: Id do plano.\n\nCorpo:\n- name (string): Nome do plano, até 120 caracteres.\n- category (health_plan | dental_plan | life_insurance | meal_voucher | food_voucher | transport_voucher | childcare | education | gym | fuel | other): Categoria do benefício.\n- provider (string | null): Operadora ou fornecedor.\n- employerCost (number): Custo mensal do empregador.\n- employeeCost (number): Desconto mensal do funcionário.\n- notes (string | null): Observação livre, até 1000 caracteres.","body":{"mode":"raw","raw":"{\n  \"employerCost\": 195.5,\n  \"employeeCost\": 52\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Arquivar plano","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/benefit-plans/:planId","host":["{{baseUrl}}"],"path":["v1","benefit-plans",":planId"],"query":[],"variable":[{"key":"planId","value":"","description":"Id do plano."}]},"description":"Arquiva o plano em vez de apagar: as adesões já registradas continuam de pé e o plano some das adesões novas. Arquivar de novo devolve o mesmo plano.\n\nPermissão: manage_employees.\nResposta: O plano com archivedAt preenchido.\n\nParâmetros do caminho:\n- planId (uuid) obrigatório: Id do plano."},"response":[]},{"name":"Benefícios de uma pessoa","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/benefits","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","benefits"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Da adesão mais recente para a mais antiga, com a situação derivada das datas.\n\nPermissão: view_all_employees.\nResposta: As adesões da pessoa.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]},{"name":"Vincular a um plano","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employees/:employeeId/benefits","host":["{{baseUrl}}"],"path":["v1","employees",":employeeId","benefits"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Registra a adesão. Recusa plano arquivado e recusa uma segunda adesão aberta no mesmo plano. Os dois valores só entram quando esta pessoa paga diferente do catálogo.\n\nPermissão: manage_employees.\nResposta: A adesão criada.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário.\n\nCorpo:\n- benefitPlanId (uuid) obrigatório: Id do plano.\n- startedOn (string) obrigatório: Primeiro dia, AAAA-MM-DD.\n- endedOn (string | null): Último dia, AAAA-MM-DD.\n- employerCost (number | null): Custo próprio do empregador nesta adesão.\n- employeeCost (number | null): Desconto próprio do funcionário nesta adesão.\n- note (string | null): Observação livre, até 500 caracteres.","body":{"mode":"raw","raw":"{\n  \"benefitPlanId\": \"6811aaf9-0000-0000-0000-000000000000\",\n  \"startedOn\": \"2026-10-01\",\n  \"employerCost\": 340,\n  \"employeeCost\": 102\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Editar adesão","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employee-benefits/:benefitId","host":["{{baseUrl}}"],"path":["v1","employee-benefits",":benefitId"],"query":[],"variable":[{"key":"benefitId","value":"","description":"Id da adesão."}]},"description":"Muda só o que vier no corpo. Encerrar é mandar endedOn; o fim não pode ser anterior ao início.\n\nPermissão: manage_employees.\nResposta: A adesão atualizada.\n\nParâmetros do caminho:\n- benefitId (uuid) obrigatório: Id da adesão.\n\nCorpo:\n- benefitPlanId (uuid): Troca o plano da adesão.\n- startedOn (string): Primeiro dia, AAAA-MM-DD.\n- endedOn (string | null): Último dia, AAAA-MM-DD.\n- employerCost (number | null): Custo próprio do empregador nesta adesão.\n- employeeCost (number | null): Desconto próprio do funcionário nesta adesão.\n- note (string | null): Observação livre, até 500 caracteres.","body":{"mode":"raw","raw":"{\n  \"endedOn\": \"2026-12-31\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Remover adesão","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/employee-benefits/:benefitId","host":["{{baseUrl}}"],"path":["v1","employee-benefits",":benefitId"],"query":[],"variable":[{"key":"benefitId","value":"","description":"Id da adesão."}]},"description":"Apaga o registro de vez, para desfazer um lançamento errado. Para encerrar sem perder o histórico, mande endedOn no PATCH.\n\nPermissão: manage_employees.\nResposta: O id removido.\n\nParâmetros do caminho:\n- benefitId (uuid) obrigatório: Id da adesão."},"response":[]}]},{"name":"Compras","description":"A requisição anda em três etapas: quem pede abre, suprimentos confere e o financeiro libera. A trilha e o alerta de preço são derivados, nunca gravados, e o fornecedor é só nome e CNPJ, sem cadastro.","item":[{"name":"Listar requisições","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-requests","host":["{{baseUrl}}"],"path":["v1","purchase-requests"],"query":[{"key":"stage","value":"","description":"Filtra pela etapa da trilha.","disabled":true},{"key":"category","value":"","description":"Filtra pela categoria da compra.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Da mais recente para a mais antiga, com a etapa e as duas decisões da trilha em cada linha.\n\nPermissão: view_purchases.\nResposta: Lista paginada de requisições.\n\nParâmetros de busca:\n- stage (supply | finance | approved | rejected): Filtra pela etapa da trilha.\n- category (office | it | facilities | packaging | furniture | uniforms | services | other): Filtra pela categoria da compra.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Abrir requisição","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-requests","host":["{{baseUrl}}"],"path":["v1","purchase-requests"],"query":[],"variable":[]},"description":"Abre a requisição na etapa de suprimentos. Cada item vira ou reaproveita uma linha do catálogo, e o preço da última compra aprovada do mesmo item é gravado junto para a comparação.\n\nPermissão: request_own_purchase.\nResposta: A requisição criada, na etapa supply.\n\nCorpo:\n- title (string) obrigatório: Título do pedido, até 160 caracteres.\n- category (office | it | facilities | packaging | furniture | uniforms | services | other): Categoria da compra. Padrão other.\n- supplierName (string) obrigatório: Fornecedor de referência.\n- supplierCnpj (string | null): CNPJ com 14 dígitos, sem pontuação.\n- costCenter (string | null): Centro de custo, até 32 caracteres.\n- department (string | null): Setor de quem pede.\n- note (string | null): Justificativa que entra na trilha.\n- items (array) obrigatório: De 1 a 40 itens com descrição, quantidade, unidade e preço unitário.","body":{"mode":"raw","raw":"{\n  \"title\": \"Papel A4 e suprimentos de escritório\",\n  \"category\": \"office\",\n  \"supplierName\": \"Nordeste Papelaria\",\n  \"supplierCnpj\": \"98765432000198\",\n  \"costCenter\": \"ADM-01\",\n  \"items\": [\n    {\n      \"description\": \"Papel A4 75g, resma\",\n      \"quantity\": 40,\n      \"unitLabel\": \"resma\",\n      \"unitPrice\": 24.9\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver requisição","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-requests/:requestId","host":["{{baseUrl}}"],"path":["v1","purchase-requests",":requestId"],"query":[],"variable":[{"key":"requestId","value":"","description":"Id da requisição."}]},"description":"A requisição com os itens, o preço da última compra de cada um e as duas decisões da trilha.\n\nPermissão: view_purchases.\nResposta: A requisição e os itens.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id da requisição."},"response":[]},{"name":"Aprovar a etapa corrente","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-requests/:requestId/approve","host":["{{baseUrl}}"],"path":["v1","purchase-requests",":requestId","approve"],"query":[],"variable":[{"key":"requestId","value":"","description":"Id da requisição."}]},"description":"Aprova a etapa em que a requisição está: suprimentos exige manage_purchases e manda para o financeiro, o financeiro exige approve_purchases e encerra a trilha. Requisição fora dessas duas etapas devolve purchase_stage_mismatch.\n\nPermissão: manage_purchases ou approve_purchases, conforme a etapa.\nResposta: A requisição na etapa seguinte.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id da requisição.\n\nCorpo:\n- note (string | null): Comentário que fica na trilha.","body":{"mode":"raw","raw":"{\n  \"note\": \"Três cotações levantadas, preço dentro da faixa.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Reprovar a requisição","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-requests/:requestId/reject","host":["{{baseUrl}}"],"path":["v1","purchase-requests",":requestId","reject"],"query":[],"variable":[{"key":"requestId","value":"","description":"Id da requisição."}]},"description":"Devolve a requisição ao solicitante. O motivo é obrigatório e fica registrado na trilha.\n\nPermissão: manage_purchases ou approve_purchases, conforme a etapa.\nResposta: A requisição reprovada.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id da requisição.\n\nCorpo:\n- note (string) obrigatório: Motivo da reprovação.","body":{"mode":"raw","raw":"{\n  \"note\": \"14% acima da última compra sem justificativa.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ler a conversa do pedido","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-requests/:requestId/messages","host":["{{baseUrl}}"],"path":["v1","purchase-requests",":requestId","messages"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[{"key":"requestId","value":"","description":"Id da requisição."}]},"description":"Da mais antiga para a mais recente, incluindo as marcas de sistema que cada decisão deixa.\n\nPermissão: view_purchases.\nResposta: Lista paginada de mensagens.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id da requisição.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Escrever na conversa do pedido","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-requests/:requestId/messages","host":["{{baseUrl}}"],"path":["v1","purchase-requests",":requestId","messages"],"query":[],"variable":[{"key":"requestId","value":"","description":"Id da requisição."}]},"description":"Registra uma dúvida de produto, de preço ou de aprovação. A marca de sistema é escrita só pela trilha.\n\nPermissão: view_purchases.\nResposta: A mensagem criada.\n\nParâmetros do caminho:\n- requestId (uuid) obrigatório: Id da requisição.\n\nCorpo:\n- kind (product | price | approval) obrigatório: Assunto da mensagem.\n- body (string) obrigatório: Texto da mensagem, até 4000 caracteres.","body":{"mode":"raw","raw":"{\n  \"kind\": \"price\",\n  \"body\": \"A Nordeste segurou o preço até sexta.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Listar o catálogo de itens","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-items","host":["{{baseUrl}}"],"path":["v1","purchase-items"],"query":[{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Em ordem alfabética. O catálogo se forma sozinho: cada item citado numa requisição entra aqui.\n\nPermissão: view_purchases.\nResposta: Lista paginada de itens do catálogo.\n\nParâmetros de busca:\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Ajustar a faixa de referência","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-items/:itemId","host":["{{baseUrl}}"],"path":["v1","purchase-items",":itemId"],"query":[],"variable":[{"key":"itemId","value":"","description":"Id do item do catálogo."}]},"description":"Grava o piso e o teto que definem quando o item entra em alerta. Os dois vêm juntos, em ordem, ou os dois vêm nulos para tirar a faixa.\n\nPermissão: manage_purchases.\nResposta: O item com a faixa atualizada.\n\nParâmetros do caminho:\n- itemId (uuid) obrigatório: Id do item do catálogo.\n\nCorpo:\n- bandMin (number | null): Piso da faixa.\n- bandMax (number | null): Teto da faixa.","body":{"mode":"raw","raw":"{\n  \"bandMin\": 21.4,\n  \"bandMax\": 25.2\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver a série de preço do item","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-items/:itemId/prices","host":["{{baseUrl}}"],"path":["v1","purchase-items",":itemId","prices"],"query":[],"variable":[{"key":"itemId","value":"","description":"Id do item do catálogo."}]},"description":"Oito meses de preço por fornecedor, derivados das requisições aprovadas, com a última compra, a média, o melhor preço já pago e a variação no período.\n\nPermissão: view_purchases.\nResposta: O item, os meses da janela, uma série por fornecedor e as estatísticas.\n\nParâmetros do caminho:\n- itemId (uuid) obrigatório: Id do item do catálogo."},"response":[]},{"name":"Listar cotações","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-quotes","host":["{{baseUrl}}"],"path":["v1","purchase-quotes"],"query":[{"key":"status","value":"","description":"Filtra pela situação da cotação.","disabled":true},{"key":"limit","value":"","description":"Até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Deslocamento da página.","disabled":true}],"variable":[]},"description":"Da mais recente para a mais antiga.\n\nPermissão: view_purchases.\nResposta: Lista paginada de cotações.\n\nParâmetros de busca:\n- status (open | closed): Filtra pela situação da cotação.\n- limit (number): Até 1000. Padrão 50.\n- offset (number): Deslocamento da página."},"response":[]},{"name":"Abrir cotação","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-quotes","host":["{{baseUrl}}"],"path":["v1","purchase-quotes"],"query":[],"variable":[]},"description":"Um item, o volume, o preço-alvo e os fornecedores convidados. A proposta inicial de cada fornecedor é opcional e, quando vem, já entra como a primeira rodada.\n\nPermissão: manage_purchases.\nResposta: A cotação criada.\n\nCorpo:\n- itemDescription (string) obrigatório: Item cotado.\n- quantity (number) obrigatório: Volume da cotação.\n- unitLabel (string): Unidade do volume. Padrão unidade.\n- targetPrice (number) obrigatório: Preço-alvo por unidade.\n- lastBuyPrice (number | null): Preço da última compra, para medir a economia.\n- suppliers (array) obrigatório: De 1 a 10 fornecedores com nome, CNPJ opcional e proposta inicial opcional.","body":{"mode":"raw","raw":"{\n  \"itemDescription\": \"Papel A4 75g, resma\",\n  \"quantity\": 120,\n  \"unitLabel\": \"resma\",\n  \"targetPrice\": 22,\n  \"lastBuyPrice\": 24.9,\n  \"suppliers\": [\n    {\n      \"name\": \"Nordeste Papelaria\",\n      \"cnpj\": \"98765432000198\",\n      \"value\": 24.9\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Ver cotação","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-quotes/:quoteId","host":["{{baseUrl}}"],"path":["v1","purchase-quotes",":quoteId"],"query":[],"variable":[{"key":"quoteId","value":"","description":"Id da cotação."}]},"description":"A cotação com os fornecedores e todas as rodadas de cada um, da mais antiga para a mais recente.\n\nPermissão: view_purchases.\nResposta: A cotação, os fornecedores e as rodadas.\n\nParâmetros do caminho:\n- quoteId (uuid) obrigatório: Id da cotação."},"response":[]},{"name":"Registrar rodada","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-quotes/:quoteId/rounds","host":["{{baseUrl}}"],"path":["v1","purchase-quotes",":quoteId","rounds"],"query":[],"variable":[{"key":"quoteId","value":"","description":"Id da cotação."}]},"description":"Proposta do fornecedor, contraproposta nossa ou aceite. O aceite fecha a cotação, e cotação fechada não recebe rodada nova.\n\nPermissão: manage_purchases.\nResposta: A rodada registrada.\n\nParâmetros do caminho:\n- quoteId (uuid) obrigatório: Id da cotação.\n\nCorpo:\n- quoteSupplierId (uuid) obrigatório: Fornecedor da cotação.\n- kind (offer | counter | accepted) obrigatório: Tipo da rodada.\n- value (number) obrigatório: Preço por unidade.\n- note (string | null): Observação da rodada, até 500 caracteres.","body":{"mode":"raw","raw":"{\n  \"quoteSupplierId\": \"8f3c…\",\n  \"kind\": \"counter\",\n  \"value\": 22.4,\n  \"note\": \"Lote fechado à vista.\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Gerar requisição da cotação","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-quotes/:quoteId/request","host":["{{baseUrl}}"],"path":["v1","purchase-quotes",":quoteId","request"],"query":[],"variable":[{"key":"quoteId","value":"","description":"Id da cotação."}]},"description":"Transforma o aceite em requisição, com o preço fechado e o fornecedor vencedor, na etapa de suprimentos. Sem rodada de aceite devolve purchase_quote_not_accepted.\n\nPermissão: manage_purchases.\nResposta: A requisição gerada.\n\nParâmetros do caminho:\n- quoteId (uuid) obrigatório: Id da cotação.\n\nCorpo:\n- title (string) obrigatório: Título do pedido.\n- category (office | it | facilities | packaging | furniture | uniforms | services | other): Categoria da compra. Padrão other.\n- costCenter (string | null): Centro de custo.\n- department (string | null): Setor de quem pede.","body":{"mode":"raw","raw":"{\n  \"title\": \"Papel A4 negociado\",\n  \"category\": \"office\",\n  \"costCenter\": \"ADM-01\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Números do mês","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/purchase-metrics","host":["{{baseUrl}}"],"path":["v1","purchase-metrics"],"query":[{"key":"month","value":"","description":"Competência no formato AAAA-MM. Padrão o mês corrente.","disabled":true}],"variable":[]},"description":"O que está em aprovação, o que foi aprovado no mês, a economia negociada, o prazo médio de aprovação e o gasto por categoria. Tudo derivado das requisições, nada gravado.\n\nPermissão: view_purchases.\nResposta: Os números do mês e o gasto por categoria.\n\nParâmetros de busca:\n- month (string): Competência no formato AAAA-MM. Padrão o mês corrente."},"response":[]}]},{"name":"Admissão e desligamento","description":"O ciclo de entrada e de saída como processo. A admissão prende um checklist na ficha do funcionário e segura a situação em onboarding até tudo fechar; o desligamento guarda motivo, aviso prévio e checklist de saída, e congela as verbas rescisórias na conclusão. A prévia das verbas é recalculada a cada leitura e nunca vem do corpo da requisição.","item":[{"name":"Admissões em andamento","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/admissions","host":["{{baseUrl}}"],"path":["v1","admissions"],"query":[{"key":"limit","value":"","description":"Itens por página, até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Quantos itens pular.","disabled":true}],"variable":[]},"description":"Quem está em onboarding, com o progresso do checklist derivado das tarefas. Nada de percentual gravado.\n\nPermissão: view_all_employees (ver).\nResposta: Uma página de admissões com o progresso de cada uma.\n\nParâmetros de busca:\n- limit (number): Itens por página, até 1000. Padrão 50.\n- offset (number): Quantos itens pular."},"response":[]},{"name":"Abrir admissão","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/admissions","host":["{{baseUrl}}"],"path":["v1","admissions"],"query":[],"variable":[]},"description":"Passa a situação do funcionário para onboarding e materializa o checklist padrão do tipo de contrato. O funcionário precisa ter e-mail, senão devolve admission_needs_email.\n\nPermissão: manage_employees.\nResposta: O id do funcionário e o checklist criado.\n\nCorpo:\n- employeeId (uuid) obrigatório: Id do funcionário ativo.","body":{"mode":"raw","raw":"{\n  \"employeeId\": \"3f1c8f2e-1f4a-4a1b-9a3e-2c9d5b7e1a01\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Detalhe da admissão","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/admissions/:employeeId","host":["{{baseUrl}}"],"path":["v1","admissions",":employeeId"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"A admissão aberta de um funcionário, com o checklist e o progresso.\n\nPermissão: view_all_employees (ver).\nResposta: A admissão, o progresso e as tarefas.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]},{"name":"Acrescentar tarefas à admissão","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/admissions/:employeeId/tasks","host":["{{baseUrl}}"],"path":["v1","admissions",":employeeId","tasks"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Inclui tarefas no fim do checklist de entrada. Até 40 por chamada.\n\nPermissão: manage_employees.\nResposta: O checklist atualizado.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário.\n\nCorpo:\n- tasks (array) obrigatório: Lista de tarefas com title, kind, owner, required e dueOn.","body":{"mode":"raw","raw":"{\n  \"tasks\": [\n    {\n      \"title\": \"Crachá\",\n      \"kind\": \"task\",\n      \"owner\": \"company\",\n      \"required\": false,\n      \"dueOn\": \"2026-09-20\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Concluir admissão","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/admissions/:employeeId/complete","host":["{{baseUrl}}"],"path":["v1","admissions",":employeeId","complete"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Passa a situação para active. Recusa com admission_tasks_pending enquanto houver tarefa obrigatória em aberto.\n\nPermissão: manage_employees.\nResposta: O id do funcionário e a situação resultante.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]},{"name":"Cancelar admissão","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/admissions/:employeeId/cancel","host":["{{baseUrl}}"],"path":["v1","admissions",":employeeId","cancel"],"query":[],"variable":[{"key":"employeeId","value":"","description":"Id do funcionário."}]},"description":"Apaga o checklist de entrada e devolve a situação para active. O cadastro permanece.\n\nPermissão: manage_employees.\nResposta: O id do funcionário e a situação resultante.\n\nParâmetros do caminho:\n- employeeId (uuid) obrigatório: Id do funcionário."},"response":[]},{"name":"Uma tarefa","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/lifecycle-tasks/:taskId","host":["{{baseUrl}}"],"path":["v1","lifecycle-tasks",":taskId"],"query":[],"variable":[{"key":"taskId","value":"","description":"Id da tarefa."}]},"description":"A tarefa de admissão ou de desligamento, com o documento entregue e a conferência.\n\nPermissão: view_all_employees (ver).\nResposta: A tarefa.\n\nParâmetros do caminho:\n- taskId (uuid) obrigatório: Id da tarefa."},"response":[]},{"name":"Concluir ou reabrir tarefa","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/lifecycle-tasks/:taskId","host":["{{baseUrl}}"],"path":["v1","lifecycle-tasks",":taskId"],"query":[],"variable":[{"key":"taskId","value":"","description":"Id da tarefa."}]},"description":"Marca a tarefa como concluída ou a devolve para pendente. Reabrir também limpa o documento entregue e a data de envio.\n\nPermissão: manage_employees.\nResposta: A tarefa atualizada.\n\nParâmetros do caminho:\n- taskId (uuid) obrigatório: Id da tarefa.\n\nCorpo:\n- done (boolean) obrigatório: true conclui, false reabre.\n- note (string | null): Observação da conferência.","body":{"mode":"raw","raw":"{\n  \"done\": true,\n  \"note\": \"documento conferido\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Remover tarefa","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/lifecycle-tasks/:taskId","host":["{{baseUrl}}"],"path":["v1","lifecycle-tasks",":taskId"],"query":[],"variable":[{"key":"taskId","value":"","description":"Id da tarefa."}]},"description":"Tira do checklist uma tarefa que não se aplica.\n\nPermissão: manage_employees.\nResposta: O id removido.\n\nParâmetros do caminho:\n- taskId (uuid) obrigatório: Id da tarefa."},"response":[]},{"name":"Desligamentos","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/terminations","host":["{{baseUrl}}"],"path":["v1","terminations"],"query":[{"key":"status","value":"","description":"Filtra pela situação do processo.","disabled":true},{"key":"limit","value":"","description":"Itens por página, até 1000. Padrão 50.","disabled":true},{"key":"offset","value":"","description":"Quantos itens pular.","disabled":true}],"variable":[]},"description":"Os processos de saída da organização, do mais recente para o mais antigo.\n\nPermissão: view_all_employees (ver).\nResposta: Uma página de desligamentos.\n\nParâmetros de busca:\n- status (open | completed | cancelled): Filtra pela situação do processo.\n- limit (number): Itens por página, até 1000. Padrão 50.\n- offset (number): Quantos itens pular."},"response":[]},{"name":"Abrir desligamento","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/terminations","host":["{{baseUrl}}"],"path":["v1","terminations"],"query":[],"variable":[]},"description":"Registra motivo, aviso prévio e último dia, e materializa o checklist de saída. O cadastro do funcionário só muda na conclusão. Um desligamento aberto por pessoa.\n\nPermissão: manage_employees.\nResposta: O desligamento aberto.\n\nCorpo:\n- employeeId (uuid) obrigatório: Id do funcionário ativo.\n- reason (dismissal_without_cause | dismissal_with_cause | resignation | mutual_agreement | contract_end | retirement | death) obrigatório: Motivo do desligamento. Ele limita o aviso possível e a multa do FGTS.\n- notice (worked | indemnified | none) obrigatório: Tipo de aviso prévio.\n- noticeDays (number) obrigatório: Dias de aviso, de 0 a 90. Com notice none e dias maiores que zero, o aviso é descontado.\n- notifiedOn (string) obrigatório: Data do aviso, AAAA-MM-DD.\n- lastDay (string) obrigatório: Último dia de trabalho, AAAA-MM-DD.\n- note (string | null): Observação do processo.","body":{"mode":"raw","raw":"{\n  \"employeeId\": \"3f1c8f2e-1f4a-4a1b-9a3e-2c9d5b7e1a01\",\n  \"reason\": \"dismissal_without_cause\",\n  \"notice\": \"indemnified\",\n  \"noticeDays\": 30,\n  \"notifiedOn\": \"2026-09-01\",\n  \"lastDay\": \"2026-09-01\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Detalhe do desligamento","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/terminations/:terminationId","host":["{{baseUrl}}"],"path":["v1","terminations",":terminationId"],"query":[],"variable":[{"key":"terminationId","value":"","description":"Id do desligamento."}]},"description":"O processo, o checklist de saída e o progresso dele.\n\nPermissão: view_all_employees (ver).\nResposta: O desligamento, o progresso e as tarefas.\n\nParâmetros do caminho:\n- terminationId (uuid) obrigatório: Id do desligamento."},"response":[]},{"name":"Verbas rescisórias","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/terminations/:terminationId/settlement","host":["{{baseUrl}}"],"path":["v1","terminations",":terminationId","settlement"],"query":[],"variable":[{"key":"terminationId","value":"","description":"Id do desligamento."}]},"description":"A prévia calculada agora enquanto o processo está aberto, ou os valores congelados quando ele foi concluído. O campo frozen diz qual dos dois veio.\n\nPermissão: view_all_employees (ver).\nResposta: As verbas linha a linha, o bruto, os descontos e o líquido.\n\nParâmetros do caminho:\n- terminationId (uuid) obrigatório: Id do desligamento."},"response":[]},{"name":"Acrescentar tarefas à saída","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/terminations/:terminationId/tasks","host":["{{baseUrl}}"],"path":["v1","terminations",":terminationId","tasks"],"query":[],"variable":[{"key":"terminationId","value":"","description":"Id do desligamento."}]},"description":"Inclui tarefas no fim do checklist de desligamento. Até 40 por chamada.\n\nPermissão: manage_employees.\nResposta: O checklist atualizado.\n\nParâmetros do caminho:\n- terminationId (uuid) obrigatório: Id do desligamento.\n\nCorpo:\n- tasks (array) obrigatório: Lista de tarefas com title, kind, owner, required e dueOn.","body":{"mode":"raw","raw":"{\n  \"tasks\": [\n    {\n      \"title\": \"Devolver notebook\",\n      \"kind\": \"task\",\n      \"owner\": \"employee\",\n      \"required\": true,\n      \"dueOn\": \"2026-09-30\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Concluir desligamento","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/terminations/:terminationId/complete","host":["{{baseUrl}}"],"path":["v1","terminations",":terminationId","complete"],"query":[],"variable":[{"key":"terminationId","value":"","description":"Id do desligamento."}]},"description":"Recalcula as verbas no servidor, congela o resultado, marca o desligamento no cadastro e grava a data de saída. O corpo não carrega valores. Recusa com termination_tasks_pending enquanto houver tarefa obrigatória aberta.\n\nPermissão: manage_employees.\nResposta: O desligamento concluído, com as verbas congeladas.\n\nParâmetros do caminho:\n- terminationId (uuid) obrigatório: Id do desligamento.\n\nCorpo:\n- exitInterviewNote (string | null): Entrevista de desligamento.","body":{"mode":"raw","raw":"{\n  \"exitInterviewNote\": \"saiu para uma proposta melhor\"\n}","options":{"raw":{"language":"json"}}}},"response":[]},{"name":"Cancelar desligamento","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/terminations/:terminationId/cancel","host":["{{baseUrl}}"],"path":["v1","terminations",":terminationId","cancel"],"query":[],"variable":[{"key":"terminationId","value":"","description":"Id do desligamento."}]},"description":"Encerra o processo sem desligar ninguém. O funcionário continua ativo e o checklist é preservado.\n\nPermissão: manage_employees.\nResposta: O desligamento cancelado.\n\nParâmetros do caminho:\n- terminationId (uuid) obrigatório: Id do desligamento.\n\nCorpo:\n- note (string | null): Motivo do cancelamento.","body":{"mode":"raw","raw":"{\n  \"note\": \"acordo revertido\"\n}","options":{"raw":{"language":"json"}}}},"response":[]}]}]}