# HXAPI

> API fiscal brasileira: emissão de NFS-e (padrão nacional), NF-e e NFC-e, DF-e recebidos (notas de entrada), tributos da reforma tributária (IBS/CBS), documentos auxiliares em PDF, webhooks, automações e relatórios. JSON em português, erros no formato RFC 9457.

Base: https://api.hexasistemas.com.br
OpenAPI 3.1: https://api.hexasistemas.com.br/v1/openapi.json

## Autenticação

- Envie a chave em `Authorization: Bearer <chave>` (ou `X-Api-Key`).
- `hx_test_…` emite em simulação/homologação; `hx_live_…` emite em produção.
- Cada chave tem escopos `recurso:acao` (ex.: `nfse:emitir`, `nfe:ler`, `recebidos:manifestar`). Sem o escopo: 403.

## Ambientes

- `simulacao`: nada é transmitido; assina com certificado de teste e simula o autorizador. Force cenários com `"simulacao": {"cenario": "rejeitar:539"}` (também `denegar`, `indisponivel`, `atraso:5`).
- `homologacao`: autorizador real de testes (precisa do certificado A1 do emitente).
- `producao`: valor fiscal; só com chave `hx_live_`.

## Convenções

- Envie `Idempotency-Key` em POST/PUT/PATCH/DELETE: a repetição em 24 h devolve a mesma resposta.
- Listas: `?limite=` (até 100) e `?apos=<proximo_cursor>`.
- Valores monetários como texto decimal com ponto (`"1500.00"`).
- Erros: `{"status":422,"codigo":"VALIDACAO","erros":[{"campo":"itens[0].ncm","codigo":"VALOR_INVALIDO","mensagem":"..."}]}`. Rejeições do autorizador vêm em `rejeicao` com `cstat`, `xmotivo`, `explicacao` e `sugestao`.

## Fluxo básico

1. `POST /v1/emitentes` (CNPJ, endereço, regime) e `POST /v1/emitentes/{id}/certificados` (A1, multipart com `arquivo` e `senha`).
2. Emita com `POST /v1/documentos/{tipo}` (`nfse`, `nfe`, `nfce`). Com `"sincrono": true` a resposta já traz o resultado (até 30 s); sem ele, 202 e o resultado chega por webhook (`documento.autorizado`, `documento.rejeitado`…) ou por `GET /v1/documentos/{id}`.
3. Arquivos: `GET /v1/documentos/{id}/xml` e `/pdf` (NFC-e: `?layout=58` ou `?formato=escpos`).
4. Eventos: `POST /v1/documentos/{id}/eventos` com `{"tipo":"cancelamento","justificativa":"..."}` (NF-e também `carta_correcao`; NFC-e `cancelamento_substituicao`).

### NFS-e (padrão nacional)

```json
POST /v1/documentos/nfse
{"emitente_id":"emi_...","sincrono":true,
 "tomador":{"dados":{"tipo":"pj","cpf_cnpj":"11444777000161","nome":"Cliente LTDA"}},
 "servico":{"codigo_tributacao_nacional":"010101","nbs":"115022000","descricao":"Desenvolvimento de software"},
 "valores":{"servico":"1500.00"},"iss":{"aliquota":"2"}}
```

### NF-e

```json
POST /v1/documentos/nfe
{"emitente_id":"emi_...","sincrono":true,
 "emissao":{"natureza_operacao":"Venda de mercadoria"},
 "participantes":{"destinatario":{"id":"par_..."}},
 "itens":[{"codigo":"P1","descricao":"Caneta","ncm":"96081000","cfop":"5102","quantidade":"10","valor_unitario":"2.50",
           "tributos":{"icms":{"cst":"102"}}}],
 "pagamentos":[{"meio":"pix","valor":"25.00"}]}
```

Tributação: informe no item ou use `perfil_tributario_id` (regras padrão e por destino). A plataforma calcula bases, valores e totais; `POST /v1/tributos/calcular` faz o mesmo sem emitir.

### NFC-e

Configure o CSC em `PUT /v1/emitentes/{id}/modelos/nfce`; envie itens e pagamentos (com `troco` quando houver). Consumidor é opcional.

### CT-e, MDF-e, BP-e, NF3e, NFCom, NFAg, NFGas e DC-e

Estes modelos recebem o grupo assinado do leiaute oficial em JSON, com os nomes das tags do MOC, em `dados` (o conteúdo de `infCte`, `infMDFe`, `infBPe`…). A plataforma preenche o automático: `cUF`, código numérico, número e série, `dhEmi`, `tpAmb`, `tpEmis`, `cDV`, `verProc`, o grupo `emit` a partir do cadastro (o que você mandar em `emit` prevalece), o responsável técnico, os campos de valor único (modelo, versão), o QR Code e a assinatura. Números podem ir como número ou texto. Erros de leiaute voltam em 422 com o caminho do campo (`dados.vPrest.vTPrest`).

O modal do CT-e e do MDF-e vai em `modal` (`{"rodo": {"RNTRC": "12345678"}}`; também `aereo`, `aquav`, `ferrov`, `duto`, `multimodal`, `rodoOS`). Variantes: `"variante": "simplificado"` (CT-e simplificado) e `"tm"` (BP-e TM). Contingência SVC do CT-e: `"contingencia": {"justificativa": "…"}`.

Eventos: `POST /v1/documentos/{id}/eventos` com `tipo` (veja `GET /v1/tipos/{tipo}/eventos`), `justificativa` quando o evento tem xJust, e os demais campos do grupo do evento em `detalhe` (ex.: encerramento do MDF-e: `{"tipo":"encerramento","detalhe":{"dtEnc":"2026-10-27","cUF":"33","cMun":"3304557"}}`). nProt e a descrição do evento são preenchidos pela plataforma.

## Webhooks

Cadastre em `POST /v1/webhooks`. Cada entrega traz `HX-Signature: t=<unix>,v1=<hmac_sha256_hex>` calculado sobre `<t>.<corpo>` com o segredo do webhook. Recuse assinaturas com mais de 5 minutos.

## DF-e recebidos

`POST /v1/emitentes/{id}/recebidos/sincronizar` busca as notas destinadas ao CNPJ (a SEFAZ impõe espera de 1 hora quando não há novidades: resposta 429 com Retry-After). Manifeste com `POST /v1/recebidos/{id}/manifestacao` (`ciencia` traz o XML completo na próxima sincronização). CT-e e MDF-e recebidos usam `?servico=cte` ou `?servico=mdfe`; o tomador registra desacordo de CT-e em `POST /v1/recebidos/{id}/desacordo`.

## Rotas

### saude

- `GET /` — Página inicial com o menu de documentos (HTML) _(sem autenticação)_

### .well-known

- `GET /.well-known/oauth-authorization-server` — Metadados do servidor de autorização OAuth 2.1 (RFC 8414) _(sem autenticação)_
- `GET /.well-known/oauth-protected-resource` — Metadados do recurso protegido MCP (RFC 9728) _(sem autenticação)_
- `GET /.well-known/oauth-protected-resource/mcp` — Metadados do recurso protegido MCP (RFC 9728) _(sem autenticação)_

### docs

- `GET /docs` — Referência navegável da API (HTML) _(sem autenticação)_

### llms.txt

- `GET /llms.txt` — Documentação resumida para agentes de IA (Markdown) _(sem autenticação)_

### mcp

- `POST /mcp` — Servidor MCP (Streamable HTTP) para agentes de IA

### oauth

- `GET /oauth/autorizar` — Início da autorização (código com PKCE S256); leva ao consentimento no painel _(sem autenticação)_
- `POST /oauth/registrar` — Registro dinâmico de cliente MCP público (RFC 7591) _(sem autenticação)_
- `POST /oauth/revogar` — Revoga um token OAuth (RFC 7009) _(sem autenticação)_
- `POST /oauth/token` — Troca o código ou o refresh token por tokens (form-urlencoded) _(sem autenticação)_

### saude

- `GET /saude` — Processo no ar (sem tocar dependências) _(sem autenticação)_
- `GET /saude/dependencias` — Situação do MySQL, Redis e armazenamento _(sem autenticação)_

### auditoria

- `GET /v1/auditoria` — Trilha de auditoria _(auditoria:ler)_

### automacoes

- `GET /v1/automacoes` — Regras de automação _(conta:ler)_
- `POST /v1/automacoes` — Cria regra (gatilho, filtros, ações) _(conta:escrever)_
- `DELETE /v1/automacoes/{id}` — Exclui regra _(conta:escrever)_
- `PUT /v1/automacoes/{id}` — Altera regra _(conta:escrever)_
- `GET /v1/automacoes/{id}/execucoes` — Histórico de execuções _(conta:ler)_

### autorizadores

- `GET /v1/autorizadores/status` — Situação dos autorizadores da NF-e e NFC-e

### cadastro

- `POST /v1/cadastro` — Cria conta e usuário proprietário _(sem autenticação)_

### chaves

- `GET /v1/chaves` — Chaves de API _(chaves:ler)_
- `POST /v1/chaves` — Cria chave de API (o token só aparece nesta resposta) _(chaves:escrever)_
- `DELETE /v1/chaves/{id}` — Revoga chave _(chaves:escrever)_
- `PATCH /v1/chaves/{id}` — Altera chave (nome, escopos, emitentes, IPs) _(chaves:escrever)_

### cobranca

- `DELETE /v1/cobranca/assinatura` — Cancela no fim do período pago _(cobranca:escrever)_
- `GET /v1/cobranca/assinatura` — Assinatura e faturas pendentes _(conta:ler)_
- `POST /v1/cobranca/assinatura` — Assina plano (cartao, pix ou checkout) _(cobranca:escrever)_
- `GET /v1/cobranca/faturas` — Faturas _(conta:ler)_
- `GET /v1/cobranca/planos` — Planos disponíveis _(conta:ler)_
- `POST /v1/cobranca/recargas` — Recarga da carteira por Pix _(cobranca:escrever)_

### consultas

- `POST /v1/consultas/chave` — Situação de uma NF-e/NFC-e pela chave, direto na SEFAZ _(consultas:ler)_
- `GET /v1/consultas/cnpj/{cnpj}` — Dados cadastrais de um CNPJ _(consultas:ler)_

### conta

- `GET /v1/conta` — Dados da conta _(conta:ler)_
- `PATCH /v1/conta` — Altera a conta _(conta:escrever)_
- `GET /v1/conta/carteira` — Extrato da carteira _(conta:ler)_
- `GET /v1/conta/consumo` — Plano, cota, consumo do ciclo e saldo _(conta:ler)_

### documentos

- `GET /v1/documentos` — Documentos emitidos (?tipo, ?status, ?ambiente, ?emitente_id, ?referencia_externa, ?chave, ?inicio, ?fim) _(<tipo>:ler)_
- `GET /v1/documentos/por-referencia/{ref}` — Documento pela referência do integrador _(<tipo>:ler)_
- `GET /v1/documentos/{id}` — Documento _(<tipo>:ler)_
- `POST /v1/documentos/{id}/email` — Envia XML e PDF por e-mail _(<tipo>:ler)_
- `GET /v1/documentos/{id}/eventos` — Eventos do documento _(<tipo>:ler)_
- `POST /v1/documentos/{id}/eventos` — Registra evento (cancelamento, carta_correcao, cancelamento_substituicao) _(<tipo>:cancelar ou <tipo>:eventos)_
- `GET /v1/documentos/{id}/pdf` — Documento auxiliar (?layout=58|80, ?formato=pdf|escpos, ?resumido=true) _(<tipo>:ler)_
- `GET /v1/documentos/{id}/requisicoes` — Chamadas ao autorizador (XML enviado e recebido) _(<tipo>:ler)_
- `POST /v1/documentos/{id}/sincronizar` — Retransmite/consulta o autorizador agora _(<tipo>:ler)_
- `GET /v1/documentos/{id}/xml` — XML autorizado (nfeProc, NFS-e) _(<tipo>:ler)_
- `POST /v1/documentos/{tipo}` — Emite documento (nfse, nfe, nfce, cte, cteos, gtve, mdfe, bpe, nf3e, nfcom, nfag, nfgas, dce). Envie Idempotency-Key _(<tipo>:emitir)_
- `POST /v1/documentos/{tipo}/validar` — Monta, valida e assina como na emissão, sem transmitir nem numerar (prévia) _(<tipo>:emitir)_

### emitentes

- `GET /v1/emitentes` — Emitentes _(emitentes:ler)_
- `POST /v1/emitentes` — Cadastra emitente _(emitentes:escrever)_
- `DELETE /v1/emitentes/{emitente_id}` — Exclui emitente _(emitentes:escrever)_
- `GET /v1/emitentes/{emitente_id}` — Emitente _(emitentes:ler)_
- `PATCH /v1/emitentes/{emitente_id}` — Altera emitente _(emitentes:escrever)_

### certificados

- `GET /v1/emitentes/{emitente_id}/certificados` — Certificados A1 _(certificados:ler)_
- `POST /v1/emitentes/{emitente_id}/certificados` — Envia certificado A1 (multipart: arquivo, senha) _(certificados:escrever)_
- `DELETE /v1/emitentes/{emitente_id}/certificados/{id}` — Exclui certificado _(certificados:escrever)_
- `POST /v1/emitentes/{emitente_id}/certificados/{id}/testar` — Testa assinatura e cadeia do certificado _(certificados:ler)_

### itens

- `GET /v1/emitentes/{emitente_id}/itens` — Itens (produtos e serviços) _(itens:ler)_
- `POST /v1/emitentes/{emitente_id}/itens` — Cadastra item _(itens:escrever)_
- `DELETE /v1/emitentes/{emitente_id}/itens/{id}` — Exclui item _(itens:escrever)_
- `GET /v1/emitentes/{emitente_id}/itens/{id}` — Item _(itens:ler)_
- `PATCH /v1/emitentes/{emitente_id}/itens/{id}` — Altera item _(itens:escrever)_

### logo

- `DELETE /v1/emitentes/{emitente_id}/logo` — Remove o logo _(emitentes:escrever)_
- `PUT /v1/emitentes/{emitente_id}/logo` — Envia o logo (PNG/JPEG no corpo) _(emitentes:escrever)_

### mdfe

- `GET /v1/emitentes/{emitente_id}/mdfe/nao-encerrados` — MDF-e autorizados e ainda não encerrados na SEFAZ (?ambiente) _(mdfe:ler)_

### modelos

- `GET /v1/emitentes/{emitente_id}/modelos/{modelo}` — Configuração do modelo (série padrão, CSC da NFC-e, IBS/CBS) _(emitentes:ler)_
- `PUT /v1/emitentes/{emitente_id}/modelos/{modelo}` — Altera a configuração do modelo _(emitentes:escrever)_

### nfse

- `POST /v1/emitentes/{emitente_id}/nfse/sincronizar` — Importa NFS-e prestadas ou tomadas no provedor municipal (?direcao=prestadas|tomadas, ?inicio, ?fim, ?ambiente) _(nfse:ler)_

### participantes

- `GET /v1/emitentes/{emitente_id}/participantes` — Participantes (clientes, fornecedores) _(participantes:ler)_
- `POST /v1/emitentes/{emitente_id}/participantes` — Cadastra participante _(participantes:escrever)_
- `DELETE /v1/emitentes/{emitente_id}/participantes/{id}` — Exclui participante _(participantes:escrever)_
- `GET /v1/emitentes/{emitente_id}/participantes/{id}` — Participante _(participantes:ler)_
- `PATCH /v1/emitentes/{emitente_id}/participantes/{id}` — Altera participante _(participantes:escrever)_

### perfis-tributarios

- `GET /v1/emitentes/{emitente_id}/perfis-tributarios` — Perfis tributários _(perfis:ler)_
- `POST /v1/emitentes/{emitente_id}/perfis-tributarios` — Cadastra perfil tributário (regras padrão e por destino) _(perfis:escrever)_
- `DELETE /v1/emitentes/{emitente_id}/perfis-tributarios/{id}` — Exclui perfil _(perfis:escrever)_
- `GET /v1/emitentes/{emitente_id}/perfis-tributarios/{id}` — Perfil tributário _(perfis:ler)_
- `PATCH /v1/emitentes/{emitente_id}/perfis-tributarios/{id}` — Altera perfil _(perfis:escrever)_

### recebidos

- `PUT /v1/emitentes/{emitente_id}/recebidos/configuracao` — Sincronização automática e ciência automática _(recebidos:manifestar)_
- `GET /v1/emitentes/{emitente_id}/recebidos/estado` — Último NSU, última e próxima consulta _(recebidos:ler)_
- `POST /v1/emitentes/{emitente_id}/recebidos/sincronizar` — Busca DF-e destinados por NSU (?servico=nfe|cte|mdfe; respeita a espera da SEFAZ) _(recebidos:ler)_

### exportacoes

- `GET /v1/exportacoes` — Exportações _(relatorios:ler)_
- `POST /v1/exportacoes` — Exporta emitidos ou recebidos (csv, xlsx, zip_xml) em segundo plano _(relatorios:ler)_
- `GET /v1/exportacoes/{id}` — Exportação e link de download _(relatorios:ler)_

### interno

- `GET /v1/interno/atualizacoes` — Fila de mudanças regulatórias (só operadores da plataforma com 2FA)
- `GET /v1/interno/atualizacoes/{id}` — Mudança regulatória com diff e relatório (só operadores)
- `PATCH /v1/interno/atualizacoes/{id}` — Move a mudança na fila (só operadores)

### inutilizacoes

- `GET /v1/inutilizacoes` — Inutilizações
- `POST /v1/inutilizacoes` — Inutiliza faixa de numeração (NF-e/NFC-e) _(<tipo>:inutilizar)_
- `GET /v1/inutilizacoes/{id}` — Inutilização

### llms.txt

- `GET /v1/llms.txt` — Documentação resumida para agentes de IA (Markdown) _(sem autenticação)_

### logs

- `GET /v1/logs/requisicoes` — Requisições recebidas _(metricas:ler)_

### mcp

- `GET /v1/mcp/confirmacoes` — Atos pedidos por agentes de IA aguardando aprovação (?status=pendente) _(conta:ler)_
- `POST /v1/mcp/confirmacoes/{id}/aprovar` — Aprova um ato pedido por agente de IA (só usuários do painel)
- `POST /v1/mcp/confirmacoes/{id}/recusar` — Recusa um ato pedido por agente de IA

### metricas

- `GET /v1/metricas/api` — Volume, sucesso e latência da API _(metricas:ler)_
- `GET /v1/metricas/fiscal` — Chamadas aos autorizadores e rejeições frequentes _(metricas:ler)_

### oauth

- `GET /v1/oauth/concessoes` — Aplicativos autorizados por OAuth _(chaves:ler)_
- `DELETE /v1/oauth/concessoes/{id}` — Revoga um aplicativo autorizado _(chaves:escrever)_
- `GET /v1/oauth/pedidos/{id}` — Pedido de autorização aguardando consentimento (só usuários do painel) _(chaves:escrever)_
- `POST /v1/oauth/pedidos/{id}/aprovar` — Aprova o aplicativo com escopos, emitentes e ambiente; devolve o redirect _(chaves:escrever)_
- `POST /v1/oauth/pedidos/{id}/recusar` — Recusa o aplicativo; devolve o redirect com access_denied _(chaves:escrever)_

### openapi.json

- `GET /v1/openapi.json` — Esta especificação OpenAPI 3.1 _(sem autenticação)_

### publico

- `GET /v1/publico/arquivos/exportacoes/{id}` — Download de exportação por link assinado (?expira, ?assinatura) _(sem autenticação)_
- `POST /v1/publico/cobranca/mercadopago` — Avisos do Mercado Pago (uso interno do gateway) _(sem autenticação)_
- `GET /v1/publico/login-social` — Provedores de login social ativos (google, github) _(sem autenticação)_
- `GET /v1/publico/nfse/codigos-tributacao` — Lista de serviço nacional (códigos de tributação) _(sem autenticação)_
- `GET /v1/publico/nfse/municipios` — Municípios e cobertura da NFS-e Nacional (?situacao, ?uf, ?busca) _(sem autenticação)_
- `GET /v1/publico/nfse/municipios/{ibge}` — Cobertura e convênio de um município _(sem autenticação)_
- `GET /v1/publico/nfse/nbs` — Tabela NBS (?busca, ?emitivel=true) _(sem autenticação)_
- `GET /v1/publico/nfse/provedores` — Provedores municipais de NFS-e com driver (ABRASF 2.x) e os pendentes _(sem autenticação)_
- `GET /v1/publico/planos` — Planos públicos e preços _(sem autenticação)_

### rascunhos

- `GET /v1/rascunhos` — Lista os rascunhos de emissão da conta (dos tipos que o chamador pode emitir)
- `POST /v1/rascunhos` — Guarda um rascunho de emissão (formulário do painel) em JSON
- `DELETE /v1/rascunhos/{id}` — Exclui um rascunho
- `GET /v1/rascunhos/{id}` — Obtém um rascunho com os dados
- `PUT /v1/rascunhos/{id}` — Substitui um rascunho

### recebidos

- `GET /v1/recebidos` — DF-e recebidos (?emitente_id, ?manifestacao, ?situacao, ?emissor, ?inicio, ?fim) _(recebidos:ler)_
- `POST /v1/recebidos/manifestacao-lote` — Manifesta até 50 recebidos _(recebidos:manifestar)_
- `GET /v1/recebidos/{id}` — Recebido e seus eventos _(recebidos:ler)_
- `POST /v1/recebidos/{id}/desacordo` — Prestação do serviço em desacordo (tomador de CT-e recebido, evento 610110) _(recebidos:manifestar)_
- `POST /v1/recebidos/{id}/manifestacao` — Manifestação do destinatário (ciencia, confirmacao, desconhecimento, operacao_nao_realizada) _(recebidos:manifestar)_
- `GET /v1/recebidos/{id}/pdf` — DANFE do recebido _(recebidos:ler)_
- `GET /v1/recebidos/{id}/xml` — XML completo do recebido _(recebidos:ler)_

### relatorios

- `GET /v1/relatorios/resumo` — Resumo por tipo, situação e mês, com tributos _(relatorios:ler)_

### sessoes

- `POST /v1/sessoes` — Login no painel (devolve token de sessão) _(sem autenticação)_
- `DELETE /v1/sessoes/atual` — Encerra a sessão atual
- `POST /v1/sessoes/social/2fa` — Segundo fator do login social (desafio + codigo_2fa) _(sem autenticação)_
- `POST /v1/sessoes/social/{provedor}` — Conclui o login social com code e state; cria a conta no primeiro acesso _(sem autenticação)_
- `POST /v1/sessoes/social/{provedor}/inicio` — Inicia o login social: devolve o endereço do provedor (state e PKCE) _(sem autenticação)_

### tabelas

- `GET /v1/tabelas/{nome}` — Tabelas oficiais: municipios, ncm, cfop, cclasstrib, cst-ibs-cbs, paises, fcp, nbs, servicos-nacionais, indicadores-operacao

### tipos

- `GET /v1/tipos/{tipo}/eventos` — Eventos aceitos por modelo
- `GET /v1/tipos/{tipo}/exemplo` — Pedido de emissão de exemplo, válido no XSD oficial (CT-e, MDF-e e demais DF-e; ?variante=)

### tributos

- `POST /v1/tributos/calcular` — Calcula tributos e totais sem emitir (mesmo envelope da emissão + tipo)
- `GET /v1/tributos/class-trib` — Tabela cClassTrib (?busca) _(consultas:ler)_
- `GET /v1/tributos/class-trib/{codigo}` — Classificação tributária e CST _(consultas:ler)_
- `GET /v1/tributos/ibpt` — Tabelas IBPT importadas _(conta:ler)_
- `POST /v1/tributos/ibpt` — Importa o CSV do IBPT da UF (?uf=) _(conta:escrever)_
- `GET /v1/tributos/ibs-cbs` — Alíquotas padrão de IBS e CBS na data _(consultas:ler)_
- `GET /v1/tributos/iss` — Parâmetros do ISS do serviço no município (Sefin Nacional) _(consultas:ler)_
- `GET /v1/tributos/ncm/{ncm}` — NCM vigente e aproximados do IBPT (?uf_destino) _(consultas:ler)_
- `POST /v1/tributos/split-payment/simular` — Simulação informativa do split payment _(consultas:ler)_

### usuarios

- `GET /v1/usuarios` — Usuários da conta _(usuarios:ler)_
- `POST /v1/usuarios` — Convida/cria usuário _(usuarios:escrever)_
- `GET /v1/usuarios/eu` — Usuário e conta da credencial
- `POST /v1/usuarios/eu/2fa` — Inicia o cadastro do segundo fator (TOTP)
- `POST /v1/usuarios/eu/2fa/ativar` — Ativa o segundo fator
- `POST /v1/usuarios/eu/2fa/desativar` — Desativa o segundo fator
- `GET /v1/usuarios/eu/identidades` — Provedores de login social vinculados ao usuário
- `DELETE /v1/usuarios/eu/identidades/{provedor}` — Desvincula um provedor de login social (exige senha definida se for o único)
- `PUT /v1/usuarios/eu/senha` — Troca a senha
- `DELETE /v1/usuarios/{id}` — Remove usuário _(usuarios:escrever)_
- `PATCH /v1/usuarios/{id}` — Altera usuário (papel, ativo) _(usuarios:escrever)_

### webhooks

- `GET /v1/webhooks` — Webhooks _(webhooks:ler)_
- `POST /v1/webhooks` — Cadastra webhook (o segredo só aparece nesta resposta) _(webhooks:escrever)_
- `POST /v1/webhooks/entregas/{id}/reenviar` — Reenvia uma entrega _(webhooks:escrever)_
- `DELETE /v1/webhooks/{id}` — Exclui webhook _(webhooks:escrever)_
- `GET /v1/webhooks/{id}` — Webhook _(webhooks:ler)_
- `PATCH /v1/webhooks/{id}` — Altera webhook _(webhooks:escrever)_
- `GET /v1/webhooks/{id}/entregas` — Histórico de entregas _(webhooks:ler)_
- `POST /v1/webhooks/{id}/rotacionar-segredo` — Gera novo segredo (o anterior vale por 24 h) _(webhooks:escrever)_
- `POST /v1/webhooks/{id}/testar` — Envia um evento de teste _(webhooks:escrever)_
