Referencia de la API REST de Chaindoc
Referencia completa para integrar la API REST de Chaindoc en tus aplicaciones. Gestiona documentos, firmas, verificación de cadenas de bloques y flujos de trabajo de firma integrados.
Resumen
La API REST de Chaindoc proporciona acceso programático a la gestión de documentos, la verificación de cadenas de bloques y la funcionalidad de firma digital. La API está diseñada para la integración entre servidores y admite claves API públicas y secretas.
Características principales
- Gestión de documentos: crea, actualiza y gestiona documentos con verificación mediante cadena de bloques.
- Firmas digitales: solicita y recopila firmas digitales de varias partes.
- Verificación de cadena de bloques: verifica la autenticidad de los documentos en redes de cadena de bloques.
- Sesiones incrustadas: crea sesiones seguras para los flujos de trabajo de firma frontend.
- Carga de archivos multimedia: carga archivos (PDF, imágenes, vídeos) para la creación de documentos.
- Integración KYC: comparte y verifica datos de identidad con Sumsub.
Autenticación
La API de Chaindoc utiliza claves API para la autenticación. Hay dos tipos de claves con diferentes niveles de acceso.
Tipos de claves API
- Clave pública (pk_): acceso de solo lectura para aplicaciones frontend y verificación.
- Clave secreta (sk_): acceso completo de lectura y escritura para servidores backend.
Obtención de claves API
1Suscríbete al plan Business.Solo los usuarios del plan Business pueden crear claves API.
2Navega a Acceso a la API.Ve a Configuración → Acceso a la API en tu panel de control.
3Crear clave APIHaz clic en el botón Crear clave API.
4Almacenar de forma seguraGuarda la clave secreta de forma segura (solo se muestra una vez).
Uso de claves API
Incluye tu clave API en el encabezado de autorización con autenticación Bearer:
curl -X GET https://api.chaindoc.io/api/v1/me \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxx"Limitación de velocidad
Los puntos finales de la API tienen límites de velocidad para evitar abusos. Los límites de velocidad varían según el tipo de punto final.
- Puntos finales generales: 3 solicitudes cada 10 segundos.
- Carga de archivos multimedia: 3 solicitudes cada 10 segundos.
- Verificación OTP: 5 solicitudes cada 60 segundos.
- Operaciones de lectura: 10 solicitudes por cada 60 segundos.
- Creación de firmas: 20 solicitudes cada 3 segundos.
Cuando se supere el límite de velocidad, recibirás una respuesta 429 Demasiadas solicitudes. Los encabezados de límite de velocidad se incluyen en las respuestas:
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 2
X-RateLimit-Reset: 1640000000Gestión de errores
Códigos de estado HTTP
- 200 - Éxito
- 201 - Recurso creado correctamente.
- 400 - Solicitud incorrecta (error de validación)
- 401 - No autorizado (clave API no válida o faltante)
- 403 - Prohibido (permisos insuficientes)
- 404 - Recurso no encontrado
- 429 - Demasiadas solicitudes (límite de velocidad excedido)
- 500 - Error interno del servidor
Formato de respuesta de error
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"details": [
{
"field": "name",
"message": "name must be a string"
}
]
}API general
Obtener información sobre la clave API
Obtener información sobre la clave API actual.
GET /me
Authorization: Bearer sk_live_xxxxxRevisión de salud
Verifica la conectividad de la API y la validez de las claves.
GET /health
Authorization: Bearer sk_live_xxxxxAPI de documentos
Crear documento
Crea un nuevo documento con verificación blockchain. Cuando el estado se establece en «publicado», el documento se verifica automáticamente en blockchain.
POST /documents
Headers:
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonActualizar documento
Actualiza un documento creando una nueva versión. Las versiones anteriores se conservan para el registro de auditoría.
PUT /documents/:documentId
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonActualiza los derechos de acceso a los documentos.
Actualiza la configuración de control de acceso a los documentos.
PUT /documents/:documentId/rights
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonVerificar documento
Verifica la autenticidad del documento mediante blockchain. Devuelve el estado de verificación con el hash de la transacción y el ID de la cadena.
POST /documents/verify
{
"versionHash": "0x123abc...",
"certificateHash": "0x456def..."
}Obtener estado de verificación
Obtener el estado de verificación de la cadena de bloques para una versión del documento.
GET /documents/versions/:versionId/verification
Authorization: Bearer sk_live_xxxxxAPI de firmas
Crear solicitud de firma
Crea una solicitud de firma para uno o varios destinatarios. Habilita el flujo integrado para la integración del frontend.
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
}'Obtener el estado de la solicitud de firma
Comprueba el estado de una solicitud de firma y ve qué firmantes han completado la firma.
GET /signatures/requests/:requestId/status
Authorization: Bearer sk_live_xxxxxFirmar documento
Firma un documento (si el propietario de la clave API es un signatario).
POST /signatures/sign
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonObtener firmas de usuarios
Obtener todas las firmas del usuario autenticado.
GET /signatures
Authorization: Bearer sk_live_xxxxxObtener solicitudes de firma
Obtén todas las solicitudes de firma para el usuario autenticado con soporte de paginación.
GET /signatures/requests?pageNumber=1&pageSize=10
Authorization: Bearer sk_live_xxxxxAPI de carga de medios
Sube archivos para utilizarlos en la creación de documentos. Admite PDF, imágenes y vídeos. Máximo 10 archivos por solicitud.
curl -X POST https://api.chaindoc.io/api/v1/media/upload \
-H "Authorization: Bearer sk_live_xxxxx" \
-F "media=@contract.pdf"API KYC
Compartir datos KYC
Comparte los datos KYC (Know Your Customer) con los destinatarios para verificar su identidad.
POST /kyc/share
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonAPI de sesiones incrustadas
Crea sesiones incrustadas para la firma de documentos en tu aplicación frontend. Las sesiones tienen una validez de 10 minutos.
POST /embedded/sessions
Authorization: Bearer sk_live_xxxxx
Content-Type: application/json