API v3 · Firma electrónica con validez legal

La API de firma que se integra sola

Firma electrónica con biometría, anti-deepfake y NOM-151 desde una API — camelCase, errores RFC 9457, paginación cursor, idempotencia y webhooks estándar.

curl "https://api.allsign.io/v3/documents" \
  -H "Authorization: Bearer allsign_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "source": "template",
    "templateId": "tmpl_7h6g5f4e3d2c1b0a",
    "templateValues": {
      "nombre_completo": "Juan Pérez",
      "monto": "$150,000.00 MXN"
    },
    "signers": [
      { "email": "juan@ejemplo.com", "name": "Juan Pérez" }
    ]
  }'
const res = await fetch('https://api.allsign.io/v3/documents', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.ALLSIGN_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    source: 'template',
    templateId: 'tmpl_7h6g5f4e3d2c1b0a',
    templateValues: {
      nombre_completo: 'Juan Pérez',
      monto: '$150,000.00 MXN',
    },
    signers: [{ email: 'juan@ejemplo.com', name: 'Juan Pérez' }],
  }),
})
const document = await res.json()
import requests

res = requests.post(
    'https://api.allsign.io/v3/documents',
    headers={'Authorization': 'Bearer allsign_live_sk_...'},
    json={
        'source': 'template',
        'templateId': 'tmpl_7h6g5f4e3d2c1b0a',
        'templateValues': {
            'nombre_completo': 'Juan Pérez',
            'monto': '$150,000.00 MXN',
        },
        'signers': [{'email': 'juan@ejemplo.com', 'name': 'Juan Pérez'}],
    },
)
document = res.json()
NOM-151 Constancia de conservación con validez legal en México.
FEA · e.firma SAT Firma Electrónica Avanzada con tu e.firma del SAT.
Biometría anti-deepfake Selfie contra identificación oficial, al momento de firmar.
Video de firma Graba al firmante durante todo el proceso.
Firma embebida El firmante nunca sale de tu producto — firma en un iframe.
Webhooks firmados HMAC + reintentos automáticos, formato Standard Webhooks.

Dime qué quieres construir

El asistente te hace una pregunta a la vez y te arma la receta de integración a tu medida. beta

Qué hay aquí

Conceptos: Quickstart · Autenticación · Errores (29 códigos) · Paginación · Idempotencia · Versionado · Webhooks · Entornos · Rate limits · Migración v2→v3.

Preguntas frecuentes

¿Qué formato usan las respuestas?
camelCase en el wire, errores RFC 9457 (application/problem+json) con un code estable y append-only, paginación por cursor e ids con prefijo (doc_, tmpl_, fld_…).
¿Cómo me entero cuando se firma un documento?
Webhooks firmados (header AllSign-Signature, HMAC-SHA256) o polling de GET /v3/documents/{id}/events. Tú eliges.
¿Qué es NOM-151 y por qué importa?
Es la norma mexicana de conservación de mensajes de datos. AllSign emite la constancia NOM-151 vía un PSC acreditado — es lo que le da validez legal a la firma en México.
¿Cómo evito cobros o invitaciones dobles al reintentar?
Manda un Idempotency-Key en los POST que cobran o firman; reintentar con la misma key devuelve la primera respuesta, nunca ejecuta dos veces.
¿Vengo de la v2?
La guía de migración v2→v3 mapea casing, errores, ids y paginación campo por campo.

Contrato: AllSign API v3 v2026-07-11 · 44 operaciones · sitio vanilla (MPA, HTML server-rendered, ~0 KB JS salvo el asistente).