Saltar al contenido principal
Integración

API REST de
Certifirm

Automatiza envíos certificados, sellos de tiempo y gestión de contactos directamente desde tu aplicación o ERP.

request.sh
curl -X POST \
  https://api-v2.certifirm.eu/envios/crear \
  -H "Authorization: Bearer <tu_token>" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "id_plantilla=12" \
  -d "[email protected],612000111,false,false" \
  -d "tipo_datos=XWWWFORMURLENCODED" \
  -d "descripcion=Contrato+de+servicios+2024" \
  -d "documento=<base64_urlencoded>"

Autenticación

Todos los endpoints requieren autenticación mediante token Bearer. Genera tus tokens desde el Panel de control → Configuración → API.

URL base

https://api-v2.certifirm.eu

Header de autenticación

Authorization: Bearer <token>

Formato de datos

JSON o form-data (POST/PUT/PATCH) · query string (GET/DELETE).

Referencia rápida

Endpoints principales

Los endpoints más habituales para automatizar envíos certificados, gestionar contactos e integrarse con sellos de tiempo.

POST/tokens/crearGenera un token de acceso a la API

Parámetros

CampoTipoReq.
nombrestring
valido_hastanumberNo — UNIX ms

Ejemplo

curl -X POST https://api-v2.certifirm.eu/tokens/crear \
  -H "Authorization: Bearer <sesión>" \
  -H "Content-Type: application/json" \
  -d '{"nombre":"Integración ERP","valido_hasta":1893456000000}'

// Respuesta 200
{
  "id": 7,
  "nombre": "Integración ERP",
  "token": "4Tz8...xK2n",
  "valido_hasta": 1893456000000,
  "createdAt": 1745488800000
}
POST/envios/crearCrea un nuevo envío de Entrega Certificada

Parámetros

CampoTipoReq.
id_plantillanumber
destinosstring
tipo_datosstringNo — BINARIO|XWWW…
tipo_firmastringNo — SIMPLE|MULTIPLE
descripcionstringNo
fecha_programada_enviostringNo — DD-MM-AAAA
documentostringSolo XWWW — base64+URL
Formato de destinos:
Destinatarios separados por punto y coma. Cada uno: email,telefono,firma_manuscrita,doc_identificacion
Ejemplo: [email protected],612000111,false,false;[email protected],,false,true

Ejemplo (binario)

curl -X POST https://api-v2.certifirm.eu/envios/crear \
  -H "Authorization: Bearer <tu_token>" \
  -F "id_plantilla=12" \
  -F "[email protected],612000111,false,false" \
  -F "descripcion=Contrato servicio 2024" \
  -F "documento=@/ruta/al/contrato.pdf"

// Respuesta 200 — array de envíos creados
[
  { "id": 1042, "email_destinatario": "[email protected]" }
]
GET/envios/listarLista los envíos con paginación y filtros

Parámetros (query string)

CampoDescripción
inicioOffset (paginación), defecto 0
filasNúmero de resultados, defecto 10
filtro_idFiltrar por ID de envío
filtro_tipo_firmaSIMPLE o MULTIPLE
filtro_fecha_inicioFecha inicio DD-MM-AAAA

Ejemplo

curl "https://api-v2.certifirm.eu/envios/listar?inicio=0&filas=5" \
  -H "Authorization: Bearer <tu_token>"

// Respuesta 200
{
  "lista": [
    {
      "id": 1042,
      "email_destinatario": "[email protected]",
      "descripcion": "Contrato servicio 2024",
      "estado_actual": "EMAIL_ENVIADO",
      "estado_final": null,
      "createdAt": 1745488800000
    }
  ],
  "total": 1
}
GET/envios/verConsulta el detalle completo de un envío

Parámetros (query string)

CampoTipoReq.
id_envionumber
La respuesta incluye todos los campos del envío: estado, timestamps de OTP, firma manuscrita, verificación de identidad y liveness, puntuaciones, etc.

Ejemplo

curl "https://api-v2.certifirm.eu/envios/ver?id_envio=1042" \
  -H "Authorization: Bearer <tu_token>"

// Respuesta 200 (fragmento)
{
  "id": 1042,
  "email_destinatario": "[email protected]",
  "estado_actual": "FIRMADO",
  "estado_final": "COMPLETADO",
  "timestamp_envio_completado": 1745510400000,
  "liveness_score": 0.98,
  "face_match_score": 0.96,
  "verificacion_decision": "APROBADO"
}
PATCH/envios/cancelarCancela un envío antes de que sea firmado

Parámetros (body JSON)

CampoTipoReq.
id_envionumber

Ejemplo

curl -X PATCH https://api-v2.certifirm.eu/envios/cancelar \
  -H "Authorization: Bearer <tu_token>" \
  -H "Content-Type: application/json" \
  -d '{"id_envio":1042}'

// Respuesta 200 — envío actualizado
{
  "id": 1042,
  "estado_actual": "CANCELADO",
  "estado_final": "CANCELADO"
}
POST/contactos/crearAñade un contacto a la agenda

Parámetros (body JSON)

CampoTipoReq.
emailstring
nombrestringNo
empresastringNo
telefonostringNo

Ejemplo

curl -X POST https://api-v2.certifirm.eu/contactos/crear \
  -H "Authorization: Bearer <tu_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "email":    "[email protected]",
    "nombre":   "Ana García",
    "empresa":  "Empresa S.L.",
    "telefono": "612000111"
  }'

// Respuesta 200
{
  "id": 58,
  "email": "[email protected]",
  "nombre": "Ana García",
  "empresa": "Empresa S.L.",
  "telefono": "612000111"
}
POST/sellos-de-tiempo/inicio-certificado-ficheroSella temporalmente un fichero por su hash

Parámetros (body JSON)

CampoTipoReq.
hashstring
nombrestring
descripcionstringNo
El hash debe ser el SHA-256 hexadecimal del fichero original. Certifirm nunca recibe el fichero en sí, solo su huella digital.

Ejemplo

# Calcular el hash SHA-256 del fichero
HASH=$(sha256sum contrato.pdf | awk '{print $1}')

curl -X POST \
  https://api-v2.certifirm.eu/sellos-de-tiempo/inicio-certificado-fichero \
  -H "Authorization: Bearer <tu_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "hash":       "'$HASH'",
    "nombre":     "contrato_2024.pdf",
    "descripcion":"Versión firmada por cliente"
  }'

// Respuesta 200
{
  "id": 312,
  "nombre": "contrato_2024.pdf",
  "estado_actual": "EN_COLA",
  "createdAt": 1745488800000
}

Referencia

Documentación de la API

La referencia completa de endpoints — parámetros, tipos de datos, respuestas de ejemplo y explorador interactivo — está disponible dentro del panel de control.

Acceso disponible tras registro

El registro es gratuito.

Documentación interactiva

Desde el panel de control tienes acceso a la referencia completa de todos los endpoints, con parámetros, tipos de datos, respuestas de ejemplo y un explorador interactivo.

Abrir documentación completa

¿Necesitas ayuda?

Si tienes dudas sobre la integración o necesitas soporte técnico, nuestro equipo está disponible por email o desde la pestaña de soporte del panel.

Contactar con soporte

Empieza a integrar hoy

Crea tu cuenta, genera un token de acceso y realiza tu primera llamada a la API en minutos.