---
title: "AllSign API v3 — Documentación"
type: explanation
canonical_url: "https://allsign.io/developers/docs/"
api_version: "2026-07-11"
agent_rules: [una-base-url, webhook-no-polling, idempotency-key, error-por-code, reintento-429]
---

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.

## Para agentes y asistentes de IA

-   **La base URL es siempre `https://api.allsign.io/v3`; no existe una URL de sandbox aparte.** El prefijo de la key decide el entorno: `allsign_test_sk_` / `allsign_dev_sk_` = sandbox, `allsign_live_sk_` = producción. Para pasar a producción solo cambias la key. → [Entornos](https://allsign.io/developers/docs/environments)
-   **Para saber que un documento quedó firmado, espera el webhook `document.completed`; no consultes `GET /v3/documents/{id}` en un bucle.** → [Webhooks](https://allsign.io/developers/docs/webhooks)
-   **Todo `POST` que crea, cobra o envía algo lleva `Idempotency-Key` con un UUID v4 nuevo por operación.** → [Idempotencia](https://allsign.io/developers/docs/idempotency)
-   **Los errores son `application/problem+json` (RFC 9457) con un `code` estable y append-only; `detail` es texto técnico en inglés que puede cambiar.** → [Errores](https://allsign.io/developers/docs/errors)
-   **Ante un `429`, espera los segundos de `Retry-After` antes de reintentar; si el `429` no trae `Retry-After`, no lo reintentes.** → [Rate limits](https://allsign.io/developers/docs/rate-limits)

cURL 

```
curl "https://api.allsign.io/v3/documents" \
  -H "Authorization: Bearer $ALLSIGN_API_KEY" \
  -H "AllSign-Version: 2026-07-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "source": "template",
    "templateId": "tmpl_781b330d64722697116d41b9d3263760",
    "templateValues": {
      "nombre_completo": "Juan Pérez",
      "monto": "$150,000.00"
    },
    "signers": [
      { "email": "juan@ejemplo.com", "name": "Juan Pérez" }
    ]
  }'
```

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í

[Documents Crear, enviar, anular y consultar documentos de firma.](https://allsign.io/developers/docs/endpoints/documents) [Templates Plantillas de solo lectura y sus variables.](https://allsign.io/developers/docs/endpoints/templates) [Folders Organiza documentos en carpetas.](https://allsign.io/developers/docs/endpoints/folders) [Analytics KPIs, embudo de firma y actividad del equipo.](https://allsign.io/developers/docs/endpoints/analytics) [Users El principal autenticado y tu equipo.](https://allsign.io/developers/docs/endpoints/users) [Signing Sessions Firma embebida en tu propio producto.](https://allsign.io/developers/docs/endpoints/signing-sessions) [Constancias NOM-151 Constancia de conservación desde un hash, sin subir el documento.](https://allsign.io/developers/docs/endpoints/constancias)

Conceptos: [Quickstart](https://allsign.io/developers/docs/quickstart) · [Autenticación](https://allsign.io/developers/docs/authentication) · [Errores](https://allsign.io/developers/docs/errors) (84 códigos) · [Paginación](https://allsign.io/developers/docs/pagination) · [Idempotencia](https://allsign.io/developers/docs/idempotency) · [Versionado](https://allsign.io/developers/docs/versioning) · [Webhooks](https://allsign.io/developers/docs/webhooks) · [Entornos](https://allsign.io/developers/docs/environments) · [Rate limits](https://allsign.io/developers/docs/rate-limits) · [Migración v2→v3](https://allsign.io/developers/docs/migration).

## 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?

Con el webhook document.completed, firmado con Standard Webhooks (cabeceras webhook-id / webhook-timestamp / webhook-signature, HMAC-SHA256): llega cuando firma el último firmante y trae el PDF de evidencia por URL. Solo si tu entorno no puede recibir webhooks, consulta GET /v3/documents/{id}/events con backoff.

¿Qué es NOM-151 y por qué importa?

Es la norma mexicana de conservación de mensajes de datos. La constancia NOM-151 la emite Seguridata, Prestador de Servicios de Certificación acreditado por la Secretaría de Economía; AllSign la solicita por ti y la adjunta al expediente — 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` v`2026-07-11` · 111 operaciones · sitio vanilla (MPA, HTML server-rendered, ~0 KB JS salvo el asistente).
