Copiar página

Receta

Avisa a alguien más y cambia al responsable de un documento

Objetivo: Una persona de fuera se entera de cómo va un documento sin firmarlo, y otra persona de tu equipo queda como su responsable.

Para: admin · nivel inicial · 5 min · Necesitas: API key de sandbox · Un segundo miembro en tu equipo

Grabado en el entorno interno de AllSign con una key de sandbox · backend 24c0469 · · test docs-checks-v3/tests/recetas/observadores-y-transferencia.receta.spec.ts

Los ejemplos usan $ALLSIGN_API_KEY. Defínela una vez con tu key de sandbox: export ALLSIGN_API_KEY="allsign_test_sk_…" (en PowerShell: $env:ALLSIGN_API_KEY="allsign_test_sk_…").

1 Crea el documento

POST /documents ver en la referencia

Qué haces

ownerId es la persona de tu equipo responsable del documento: hoy eres tú, porque es tu key.

Qué mirar

  • id = "doc_f2344cc1b9b24ba2954715812b3d7242"
  • ownerId = "usr_550487c74d4a4061ba2af6b802dcacde"

En producción

Los observadores y el traspaso de dueño se activan por cuenta y en producción pueden venir apagados. Mientras no estén activos en la tuya, esas llamadas responden 403 FEATURE_NOT_AVAILABLE y no cambian nada; pide que los activen.

2 Agrega a alguien que solo observa

POST /documents/{document_id}/observers ver en la referencia

Qué haces

Un observador nunca firma ni recibe campos: solo los avisos que eliges en events. En cuanto lo agregas le llega un correo que se lo dice; con notify_and_view ese correo trae la liga para abrir el documento, y con notify (el predeterminado) solo recibe los avisos.

Qué mirar

  • observer.id = "rol_9f8c7b2441a646b5aacbd925b2d3b6d9"
  • observer.capability = "notify_and_view"
  • created = true

3 Revisa quién observa el documento

GET /documents/{document_id}/observers ver en la referencia

Qué haces

Los observadores no aparecen entre los firmantes ni cuentan en signerCount.

Qué mirar

  • data = [{"object":"document_observer","id":"rol_9f8c7b2441a646b5aacbd925b2d3b6d9","origin":"document","email":"luis@ejemplo.com","name":"Luis Ramírez","capability":"notify_and_view","events":["document.completed","document.voided"],"locked":false,"status":"active","createdAt":"2026-07-11T18:00:01.027000Z"}]

4 Quita al observador

DELETE /documents/{document_id}/observers/{observer_id} ver en la referencia

Qué haces

Desde este momento ya no recibe avisos de este documento.

Qué mirar

  • deleted = true

5 Busca a quién pasarle el documento

GET /users/team ver en la referencia

Qué haces

El nuevo responsable tiene que ser miembro de tu equipo: toma su id de esta lista.

Qué mirar

  • data = [{"id":"usr_550487c74d4a4061ba2af6b802dcacde","name":"Sofía Herrera","email":"sofia@ejemplo.com","role":"owner"},{"id":"usr_b478f972e8574a739be5fb7364382c33","name":"Carlos Méndez","email":"carlos@ejemplo.com","role":"developer"}]

6 Traspasa el documento

POST /documents/{document_id}/transfer-owner ver en la referencia

Qué haces

El documento, sus firmantes y su historial no cambian: solo quién es su responsable. reason queda en la bitácora del documento.

Qué mirar

  • ownerId = "usr_b478f972e8574a739be5fb7364382c33"
  • previousOwnerId = "usr_550487c74d4a4061ba2af6b802dcacde"
  • transferred = true

7 Traspasa varios de una vez

POST /documents/transfer-owner ver en la referencia

Qué haces

Manda documentIds con la lista que quieres mover, o fromUserId para mover todos los documentos de una persona, por ejemplo cuando deja la empresa. keepPreviousOwnerAccess es true por defecto: el dueño anterior conserva el acceso; mándalo en false para quitárselo.

Qué mirar

  • transferredCount = 1
  • items = [{"documentId":"doc_f2344cc1b9b24ba2954715812b3d7242","status":"transferred","error":null}]

Errores comunes de esta receta

Errores reales que el test de esta receta provocó a propósito en sandbox, sobre sus mismos pasos. Cada uno enlaza a su explicación en Errores.

OBSERVER_IS_SIGNER · 409 · en el paso 2 (Agrega a alguien que solo observa)

Agrega como observador a quien ya firma. Qué significa y qué hacer

Respuesta · 409 · OBSERVER_IS_SIGNER
{
  "type": "https://allsign.io/developers/docs/errors#OBSERVER_IS_SIGNER",
  "title": "Conflict",
  "status": 409,
  "detail": "ana@ejemplo.com already signs this document; a signer cannot also be an observer.",
  "instance": "/v3/documents/doc_5dbd1cc097404878a5668c6a00774830/observers",
  "code": "OBSERVER_IS_SIGNER",
  "requestId": "req_68de996d2d6442b981652319043cc610"
}

Grabado en el entorno interno de AllSign con una key de sandbox · backend 24c0469 · · test docs-checks-v3/tests/recetas/observadores-y-transferencia.receta.spec.ts

OBSERVER_NOT_FOUND · 404 · en el paso 4 (Quita al observador)

Quita un observador que no existe. Qué significa y qué hacer

Respuesta · 404 · OBSERVER_NOT_FOUND
{
  "type": "https://allsign.io/developers/docs/errors#OBSERVER_NOT_FOUND",
  "title": "Not Found",
  "status": 404,
  "detail": "Observer not found in this document. Organization observers are removed from Settings → Observers.",
  "instance": "/v3/documents/doc_5dbd1cc097404878a5668c6a00774830/observers/rol_245aa9e7229547b5b3e5cf30afe54094",
  "code": "OBSERVER_NOT_FOUND",
  "requestId": "req_22602288f4704ad2857ebd2b3dfa1468"
}

Grabado en el entorno interno de AllSign con una key de sandbox · backend 24c0469 · · test docs-checks-v3/tests/recetas/observadores-y-transferencia.receta.spec.ts

VALIDATION_ERROR · 422 · en el paso 6 (Traspasa el documento)

Traspasa a alguien fuera de tu equipo. Qué significa y qué hacer

Respuesta · 422 · VALIDATION_ERROR
{
  "type": "https://allsign.io/developers/docs/errors#VALIDATION_ERROR",
  "title": "Validation failed",
  "status": 422,
  "detail": "The new owner must be a member of this workspace.",
  "instance": "/v3/documents/doc_5dbd1cc097404878a5668c6a00774830/transfer-owner",
  "code": "VALIDATION_ERROR",
  "requestId": "req_156c01d6c0fd40f982ae571ecb18cce4"
}

Grabado en el entorno interno de AllSign con una key de sandbox · backend 24c0469 · · test docs-checks-v3/tests/recetas/observadores-y-transferencia.receta.spec.ts

Siguiente