Skip to main content
Esta página descreve os endpoints /api/v1/consents para integração server-to-server com API Key. Eles são distintos do fluxo público do banner (POST /api/v1/public/consent), que usa o header X-Site-Token. Para obter e usar uma API Key, consulte API Key.

Autenticação

Inclua o header em toda chamada:
Cada requisição bem-sucedida consome 1 unidade da cota mensal do plano (api_access).

Endpoints

Especificação OpenAPI completa, com schemas e exemplos por endpoint, está disponível na aba API Reference.

Criar consentimento

Corpo mínimo: site_id é obrigatório; os demais campos refinam a evidência. Resposta 201 com o ConsentDTO completo.

Listar consentimentos

GET /api/v1/consents retorna uma página paginada por cursor. Filtre por site_id, subject_id, consent_id, accepted, e janela temporal from/to (ISO 8601). limit padrão é 50, máximo 100. Use next_cursor da resposta para a próxima página; quando vier null, você chegou ao fim.

Detalhe de um consentimento

GET /api/v1/consents/{id} retorna o ConsentDTO completo.

Atualizar aceite / preferências

PUT /api/v1/consents/{id} aceita accepted e/ou preferences. A alteração é registrada na trilha de auditoria do consentimento.

Excluir (soft-delete)

DELETE /api/v1/consents/{id} marca o consentimento como excluído (deleted_at preenchido). O histórico permanece para evidência regulatória.

Trilha de auditoria

GET /api/v1/consents/{id}/history devolve todos os snapshots já registrados para aquele consentimento — útil para apresentar a “linha do tempo” da decisão do titular em auditoria.

Batch ingestion

Para importar dados históricos ou sincronizar lotes grandes use POST /api/v1/consents/batch (até 1000 consentimentos por chamada). A resposta volta no formato Stripe-like: created, failed, skipped_quota e um array results indexado por linha. A primeira linha é coberta pela cobrança do request; cada linha adicional consome +1 unidade da cota mensal. Se a cota acabar no meio do batch, as linhas restantes voltam com status="skipped_quota" e nada é gravado.

Recibo regulador (DSAR)

GET /api/v1/consents/{id}/receipt devolve um recibo canônico cuja forma JSON é estável (version: "1.0") — arquive-o como evidência. Inclui o titular, escolha, preferências, versão de política, país/região e timestamps.

Direito ao esquecimento (DSAR erase)

DELETE /api/v1/consents/by-subject/{subjectId} apaga (logicamente) todos os consentimentos do titular sob a sua conta. O histórico continua íntegro — reguladores querem prova de que a remoção aconteceu, então apenas o deleted_at é marcado. Passe ?site_id=<uuid> para limitar a um único site.
Resposta: { "subject_id": "user_sha256_a1b2c3d4e5f6", "erased": 7 }

Não confundir com o banner no site

Erros frequentes

O corpo de erro segue o schema APIErrorResponse: campos error (código) e message (texto).
  • unauthorized — API Key inválida ou revogada.
  • quota_exceeded — cota mensual da API esgotada (429).
  • not_found — consentimento ou site não encontrado para o utilizador da chave.
  • invalid_request — corpo ou query inválidos (ex.: cursor malformado).

Dúvidas? suporte@consentfly.com.br