Documentación

Inicio rápido de la API

La API crea contratos desde su propia aplicación y le informa del avance. Este es el camino más corto; la referencia completa está en inglés.

Crear una clave

Cree una clave de API en sus ajustes. Empieza por canu_ y va en la cabecera de cada petición. El límite es de 60 peticiones por minuto.

Authorization: Bearer canu_su_clave

Crear un contrato

Envíe su PDF en base64 (hasta 3 MB) y coloque los campos en porcentaje de la página, medido desde arriba a la izquierda. Una persona con dirección de e-mail en signers recibe su enlace personal.

PDF_B64=$(base64 < pedido.pdf | tr -d '\n')
curl -X POST https://canusign.com/api/v1/contracts \
  -H "Authorization: Bearer canu_su_clave" \
  -H "Content-Type: application/json" \
  -d "{
    \"title\": \"Pedido 4711\",
    \"language\": \"es\",
    \"document\": { \"name\": \"pedido.pdf\", \"pdf\": \"$PDF_B64\" },
    \"signatureFields\": [
      { \"label\": \"Cliente\", \"page\": 1, \"x\": 10, \"y\": 80 },
      { \"label\": \"Proveedor\", \"page\": 1, \"x\": 60, \"y\": 80 }
    ],
    \"signers\": [{ \"label\": \"Cliente\", \"email\": \"cliente@example.com\" }],
    \"finalize\": true
  }"

Leer la respuesta

La respuesta contiene id, signUrl para el enlace compartido, publicId y verifyUrl para la página de verificación. Sin crédito y sin Pro, el contrato espera el pago: requiresPayment es entonces true y signUrl queda vacío.

Esperar las firmas

Suscriba un webhook a contract.completed o consulte GET /api/v1/contracts/{id}.

curl -X POST https://canusign.com/api/v1/webhooks \
  -H "Authorization: Bearer canu_su_clave" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://su-aplicacion.example/hooks/canusign", "events": ["contract.completed"] }'

Descargar el PDF

Mientras no hayan firmado todos, el endpoint responde con 409.

curl -o firmado.pdf https://canusign.com/api/v1/contracts/{id}/pdf \
  -H "Authorization: Bearer canu_su_clave"