Public API

API Documentação

Integre a verificação de selos digitais Veryfinner ao seu sistema. Endpoints públicos com autenticação opcional via API Key.

GET

Verificar Selo por Código

Verifica a autenticidade e validade de um selo digital através do seu código unico. Retorna informações completas do selo, incluindo dados de blockchain.

GET /api/public/seal/verify/{sealCode}

Parâmetros

Nome Tipo Local Descrição
sealCode String Path Código do selo. Formato: FNR-YYYY-XXXXXXXX
X-Api-Key String Header Opcional. API Key do integrador para limites customizados.

Response 200

{
  "sealCode": "FNR-2026-A1B2C3D4",
  "valid": true,
  "signatureValid": true,
  "documentType": "CCB",
  "documentReference": "CCB-2026-001",
  "sealLevel": "GOLD",
  "issuedAt": "2026-03-15T10:30:00",
  "expiresAt": null,
  "organizationName": "Fundo Alpha FIDC",
  "validatedFields": ["nome", "cpf", "valor", "data_emissao"],
  "blockchainTxHash": "0xabc123...",
  "blockchainNetwork": "Polygon PoS",
  "merkleRoot": "sha256:def456..."
}

Exemplo cURL

# Acesso publico (sem API Key)
curl -X GET \
  https://finner-validator.ambitiousmoss-3a2f23b7.brazilsouth.azurecontainerapps.io/api/public/seal/verify/FNR-2026-A1B2C3D4

# Com API Key
curl -X GET \
  -H "X-Api-Key: your-api-key" \
  https://finner-validator.ambitiousmoss-3a2f23b7.brazilsouth.azurecontainerapps.io/api/public/seal/verify/FNR-2026-A1B2C3D4
POST

Verificar Selo por Arquivo

Verifica a autenticidade de um selo digital enviando o arquivo original. O hash do arquivo é comparado com o hash registrado no momento da certificação. O campo signatureValid reflete se o arquivo corresponde ao original.

POST /api/public/seal/verify/{sealCode}/file

Parâmetros

Nome Tipo Local Descrição
sealCode String Path Código do selo.
file File Body (multipart) Arquivo PDF, PNG ou JPG para verificação de hash.
X-Api-Key String Header Opcional. API Key do integrador.

Response 200

{
  "sealCode": "FNR-2026-A1B2C3D4",
  "valid": true,
  "signatureValid": true,
  "documentType": "CCB",
  "documentReference": "CCB-2026-001",
  "sealLevel": "GOLD",
  "issuedAt": "2026-03-15T10:30:00",
  "expiresAt": null,
  "organizationName": "Fundo Alpha FIDC",
  "validatedFields": ["nome", "cpf", "valor", "data_emissao"],
  "blockchainTxHash": "0xabc123...",
  "blockchainNetwork": "Polygon PoS",
  "merkleRoot": "sha256:def456..."
}

Exemplo cURL

curl -X POST \
  -H "X-Api-Key: your-api-key" \
  -F "file=@documento.pdf" \
  https://finner-validator.ambitiousmoss-3a2f23b7.brazilsouth.azurecontainerapps.io/api/public/seal/verify/FNR-2026-A1B2C3D4/file
GET

Verificar Selo de Lote

Verifica a integridade de um lote de documentos certificados. Retorna a Merkle Root do lote e o total de documentos selados.

GET /api/public/seal/batch/verify/{batchSealCode}

Parâmetros

Nome Tipo Local Descrição
batchSealCode String Path Código do lote. Formato: FNR-B-YYYY-XXXXXXXX
X-Api-Key String Header Opcional. API Key do integrador.

Response 200

{
  "batchSealCode": "FNR-B-2026-X9Y8Z7",
  "totalDocuments": 150,
  "sealedDocuments": 150,
  "merkleRoot": "sha256:abc789...",
  "createdAt": "2026-03-15T14:00:00"
}

Exemplo cURL

curl -X GET \
  https://finner-validator.ambitiousmoss-3a2f23b7.brazilsouth.azurecontainerapps.io/api/public/seal/batch/verify/FNR-B-2026-X9Y8Z7
GET

Selo Embed (PNG)

Retorna a imagem do selo digital em formato PNG. Ideal para incorporar em documentos, e-mails ou páginas web como prova visual de certificação.

GET /api/public/seal/embed/{sealCode}.png

Parâmetros

Nome Tipo Local Descrição
sealCode String Path Código do selo.

Response 200

Content-Type: image/png
Content-Disposition: inline

[binary image data]

Exemplo de Uso (HTML)

<!-- Incorporar selo em uma página web -->
<img
  src="https://finner-validator...azurecontainerapps.io/api/public/seal/embed/FNR-2026-A1B2C3D4.png"
  alt="Selo Veryfinner"
  width="180"
/>
GET

Selo Embed (SVG)

Retorna a imagem do selo digital em formato SVG vetorial. Escala para qualquer tamanho sem perda de qualidade. Ideal para impressão e documentos de alta resolução.

GET /api/public/seal/embed/{sealCode}.svg

Parâmetros

Nome Tipo Local Descrição
sealCode String Path Código do selo.

Response 200

Content-Type: image/svg+xml
Content-Disposition: inline

[SVG markup]

Exemplo de Uso (HTML)

<!-- Incorporar selo vetorial -->
<img
  src="https://finner-validator...azurecontainerapps.io/api/public/seal/embed/FNR-2026-A1B2C3D4.svg"
  alt="Selo Veryfinner"
  style="width: 180px; height: auto;"
/>

Autenticação

Todos os endpoints públicos podem ser acessados de duas formas:

Acesso Público

Sem API Key. Rate limited por IP.

# Sem headers adicionais
curl /api/public/seal/verify/FNR-...
Acesso Integrador

Com API Key. Limites customizados.

# Header X-Api-Key
curl -H "X-Api-Key: sk_live_..." \
  /api/public/seal/verify/FNR-...

Base URLs

Production https://finner-validator.ambitiousmoss-3a2f23b7.brazilsouth.azurecontainerapps.io
Sandbox Entre em contato com o time comercial para acesso ao ambiente sandbox.

Respostas de Erro

A API utiliza códigos de status HTTP padrão. Todas as respostas de erro seguem o mesmo formato:

{
  "error": "seal_not_found",
  "message": "Selo não encontrado para o código informado.",
  "statusCode": 404
}
Status Código Descrição
404 seal_not_found Selo não encontrado para o código informado.
401 invalid_api_key API Key inválida ou expirada.
429 rate_limit_exceeded Limite de requisições excedido. Tente novamente em breve.
500 internal_error Erro interno do servidor. Contate o suporte se persistir.

Rate Limits

Limites de requisições são aplicados por janela de 1 minuto. Os headers de resposta informam o status atual.

60
req/min (público)
Custom
req/min (integrador)

Response Headers

Header Descrição
X-RateLimit-Limit Numero maximo de requisicoes na janela atual.
X-RateLimit-Remaining Requisicoes restantes na janela atual.
X-RateLimit-Reset Timestamp Unix de quando a janela sera resetada.