Entornos: live y sandbox
Hay dos entornos completamente aislados. La API key que uses decide en cuál caes — no hay un toggle aparte. Lo que creas con una key de prueba nace de prueba y así se queda para siempre.
Los dos entornos
| Live (producción) | Test (sandbox) | |
|---|---|---|
| Prefijo de la key | allsign_live_sk_ | allsign_test_sk_ |
| Cobros | Reales (consumen tu saldo) | Ninguno |
| Emails / notificaciones | Se envían de verdad | Simulados (no salen al firmante) |
| Firma y NOM-151 | Validez legal plena | Simulada, con watermark, sin validez legal |
livemode | true | false |
Sandbox (test)
El sandbox reproduce el flujo completo —crear, enviar, firmar, webhooks— pero todo es simulado: no se cobra, los correos no salen al firmante real, y los PDFs firmados llevan un watermark que deja claro que no tienen validez legal. Es el lugar para armar y probar tu integración de punta a punta antes de tocar producción.
Todo recurso creado en sandbox trae livemode: false:
{
"id": "doc_3f2a...",
"status": "awaiting_signatures",
"livemode": false,
"createdAt": "2026-07-18T15:04:00Z"
}
El entorno de la key marca el documento
Al crear un recurso, el entorno de la key se estampa permanente en él. Un documento creado con una key de prueba queda en sandbox para siempre — no se "promueve" ni se convierte.
Los listados nunca se cruzan: GET /v3/documents con una key
live solo devuelve documentos live, y viceversa. Para saber de qué entorno es
un recurso concreto, lee su campo livemode — viaja en cada respuesta.
Para pasar a producción no conviertes tus documentos de prueba. Simplemente
empiezas a crear con la key live; los de prueba se quedan en sandbox y ya.
Trátalos como datos desechables.
Cómo saber en qué entorno estás
Tres señales, redundantes a propósito, te dicen el entorno sin adivinar:
livemodeen cada recurso —true= live,false= sandbox. La señal más directa.GET /v3/users/me— devuelveenvironment("live"/"test") ylivemodede la key con la que preguntas.- El header
AllSign-Environment— viene en cada respuesta autenticada.
GET /v3/users/me
{
"id": "usr_9a1c...",
"email": "tu@empresa.mx",
"environment": "test",
"livemode": false
}
HTTP/1.1 200 OK
AllSign-Environment: test
AllSign-Request-Id: req_...
Y en webhooks, el envelope del evento trae livemode, para que tu
handler distinga sin depender de qué endpoint lo disparó:
{
"eventId": "evt_7f3a...",
"eventType": "document.completed",
"apiVersion": "2026-07-11",
"occurredAt": "2026-07-18T15:04:00.000Z",
"tenantId": "…",
"livemode": true,
"data": { "documentId": "doc_2b9c...", "status": "completed" }
}