Referência da API REST do Chaindoc
Referência completa para integrar a API REST do Chaindoc nas tuas aplicações. Gerencia documentos, assinaturas, verificação de blockchain e fluxos de trabalho de assinatura incorporados.
Visão geral
A API REST da Chaindoc fornece acesso programático à gestão de documentos, verificação de blockchain e funcionalidade de assinatura digital. A API foi concebida para integração servidor a servidor e suporta chaves API públicas e secretas.
Principais funcionalidades
- Gestão de documentos - Crie, atualize e gerencie documentos com verificação por blockchain
- Assinaturas digitais - Solicite e recolha assinaturas digitais de várias partes
- Verificação de blockchain - Verifique a autenticidade do documento em redes de blockchain
- Sessões incorporadas - Crie sessões seguras para fluxos de trabalho de assinatura front-end
- Carregamento de mídia - Carregue ficheiros (PDF, imagens, vídeos) para a criação de documentos
- Integração KYC - Partilhe e verifique dados de identidade com o Sumsub
Autenticação
A API Chaindoc usa chaves API para autenticação. Existem dois tipos de chaves com diferentes níveis de acesso.
Tipos de chaves API
- Chave pública (pk_) - Acesso somente leitura para aplicações front-end e verificação
- Chave secreta (sk_) - Acesso total de leitura e escrita para servidores backend
Obtenção de chaves API
1Inscreva-se no Plano de NegóciosSó os utilizadores do plano Business podem criar chaves API
2Navegue até Acesso à APIVá para Configurações → Acesso à API no seu painel
3Criar chave APIClique no botão Criar chave API
4Armazene com segurançaGuarde a chave secreta em segurança (mostrada apenas uma vez)
Usando chaves API
Inclua a sua chave API no cabeçalho de autorização com autenticação Bearer:
curl -X GET https://api.chaindoc.io/api/v1/me \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxx"Limitação de taxa
Os pontos finais da API têm limites de taxa para evitar abusos. Os limites de taxa variam de acordo com o tipo de ponto final.
- Pontos finais gerais: 3 pedidos por 10 segundos
- Upload de mídia: 3 solicitações a cada 10 segundos
- Verificação OTP: 5 pedidos por 60 segundos
- Operações de leitura: 10 pedidos por 60 segundos
- Criação de assinatura: 20 pedidos a cada 3 segundos
Quando o limite de taxa for excedido, receberá uma resposta 429 Too Many Requests (Demasiadas solicitações). Os cabeçalhos de limite de taxa estão incluídos nas respostas:
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 2
X-RateLimit-Reset: 1640000000Tratamento de erros
Códigos de estado HTTP
- 200 - Sucesso
- 201 - Recurso criado com sucesso
- 400 - Pedido inválido (erro de validação)
- 401 - Não autorizado (chave API inválida ou ausente)
- 403 - Proibido (permissões insuficientes)
- 404 - Recurso não encontrado
- 429 - Demasiados pedidos (limite de taxa excedido)
- 500 - Erro interno do servidor
Formato de resposta de erro
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"details": [
{
"field": "name",
"message": "name must be a string"
}
]
}API geral
Obter informações sobre a chave API
Obtenha informações sobre a chave API atual.
GET /me
Authorization: Bearer sk_live_xxxxxVerificação de integridade
Verifique a conectividade da API e a validade da chave.
GET /health
Authorization: Bearer sk_live_xxxxxAPI de documentos
Criar documento
Crie um novo documento com verificação de blockchain. Quando o estado for definido como «publicado», o documento é automaticamente verificado na blockchain.
POST /documents
Headers:
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonAtualizar documento
Atualize um documento criando uma nova versão. As versões anteriores são mantidas para fins de auditoria.
PUT /documents/:documentId
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonAtualizar direitos de acesso ao documento
Atualize as configurações de controlo de acesso ao documento.
PUT /documents/:documentId/rights
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonVerificar documento
Verifique a autenticidade do documento usando blockchain. Retorna o status da verificação com o hash da transação e o ID da cadeia.
POST /documents/verify
{
"versionHash": "0x123abc...",
"certificateHash": "0x456def..."
}Obter o estado da verificação
Obtenha o estado de verificação da blockchain para uma versão do documento.
GET /documents/versions/:versionId/verification
Authorization: Bearer sk_live_xxxxxAPI de assinaturas
Criar pedido de assinatura
Crie um pedido de assinatura para um ou mais destinatários. Habilite o fluxo incorporado para integração com o front-end.
curl -X POST https://api.chaindoc.io/api/v1/signatures/requests \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"versionId": "f0b7721f-0399-4035-9b69-7b95d3a367f0",
"recipients": [{"email": "signer@example.com"}],
"deadline": "2024-12-31T23:59:59Z",
"embeddedFlow": true
}'Obter o estado do pedido de assinatura
Verifique o estado de um pedido de assinatura e veja quais signatários já concluíram a assinatura.
GET /signatures/requests/:requestId/status
Authorization: Bearer sk_live_xxxxxAssinar documento
Assine um documento (se o proprietário da chave API for um signatário).
POST /signatures/sign
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonObter assinaturas de utilizadores
Obtenha todas as assinaturas do utilizador autenticado.
GET /signatures
Authorization: Bearer sk_live_xxxxxObter pedidos de assinatura
Obtenha todas as solicitações de assinatura para o utilizador autenticado com suporte para paginação.
GET /signatures/requests?pageNumber=1&pageSize=10
Authorization: Bearer sk_live_xxxxxAPI de upload de mídia
Carregue ficheiros para usar na criação de documentos. Suporta PDF, imagens e vídeos. Máximo de 10 ficheiros por pedido.
curl -X POST https://api.chaindoc.io/api/v1/media/upload \
-H "Authorization: Bearer sk_live_xxxxx" \
-F "media=@contract.pdf"API KYC
Partilhe dados KYC
Partilhe os dados KYC (Know Your Customer) com os destinatários para verificação de identidade.
POST /kyc/share
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonAPI de sessões incorporadas
Crie sessões incorporadas para assinatura de documentos na sua aplicação front-end. As sessões são válidas por 10 minutos.
POST /embedded/sessions
Authorization: Bearer sk_live_xxxxx
Content-Type: application/json