Plataforma para desarrolladores

Firma electrónica
en su producto.

Su servidor emite una sesión de corta duración con una clave secreta, su página la enmarca con un SDK de 1,5 KB y sus usuarios firman sin salir de su producto. Construya primero toda la integración con claves de prueba gratuitas.

Claves de prueba en todos los planes, incluido Free Su clave secreta nunca llega a un navegador SDK con licencia MIT en GitHub
Cómo funciona

Tres pasos, y la clave secreta
nunca sale de su servidor

Toda integración empieza con una sesión que emite su servidor. Su página enmarca la URL que recibe, y el marco habla con su código por un canal postMessage fijado.

  1. 1

    Emita una sesión en su servidor

    Llame a POST /embed_sessions con su clave secreta, indicando el documento y el origen de la página que mostrará el marco. Recibe un id y una URL que caduca.

  2. 2

    Móntela en su página

    Entregue la URL a @gingerdocs/embed. El SDK enmarca la experiencia de firma en nuestro origen, fija el origen y el id de sesión en ambos extremos y entrega eventos tipados a su código.

  3. 3

    Actúe con los webhooks

    Los eventos del SDK son señales de interfaz — ocultar un indicador de carga, mostrar una confirmación. Haga el trabajo real con el webhook firmado document.completed; cada evento puede leerse durante 90 días.

Su servidorNode.js
const res = await fetch('https://api.gingerdocs.com/api/v1/embed_sessions', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.GINGERDOCS_SECRET_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    kind: 'signing',
    document_id: documentId,
    host_origin: 'https://app.example.com',
  }),
})
const { id, url } = await res.json()
Su páginaJavaScript
import { mount } from '@gingerdocs/embed'

const embed = mount('#signing', { url, sessionId: id })

embed.on('ready', () => hideLoader())
embed.on('completed', () => showConfirmation())
embed.on('session_expired', async () => {
  const fresh = await refetchSession()
  embed.reload(fresh.url, { sessionId: fresh.id })
})
ReactJSX
import { GingerDocsEmbed } from '@gingerdocs/react'

<GingerDocsEmbed
  url={session.url}
  sessionId={session.id}
  onEvent={event => event.type === 'completed' && showConfirmation()}
/>

Pase la URL tal cual: su fragmento lleva la credencial de la sesión y su consulta lleva el valor con el que nuestro borde decide quién puede enmarcar la página.

Tres formas de integrar

De una sola firma
al editor completo

Toda integración es una sesión que emite su servidor. Su tipo (kind) y su modo (mode) deciden qué puede hacer la persona dentro del marco — y el servidor lo exige en cada petición, no solo en la interfaz.

kind: signing

Sesión de firma

Un firmante, un documento, dentro de su página. Sin idas y vueltas por correo, sin redirecciones fuera de su sitio.

  • Leer el documento, rellenar sus campos y firmar — dibujando, escribiendo o subiendo una imagen
  • Rechazar con un motivo, que su página recibe como evento
  • Descargar el PDF firmado al terminar
  • Cambiar el idioma del marco desde su propio menú
kind: workspace · mode: minimal

Espacio de trabajo · minimal

Creación a partir de plantillas para uno de sus propios usuarios, sin exponer un editor.

  • Explorar sus plantillas disponibles y rellenar variables y sus propios datos
  • Indicar quién envía y quién firma — preestablecido y bloqueado por usted si lo desea
  • Previsualizar las páginas mientras rellena, y después crear y enviar
  • Subir un PDF propio y enviarlo, con el campo de firma colocado automáticamente
kind: workspace · mode: advanced

Espacio de trabajo · advanced

El mismo editor que incluye la aplicación de GingerDocs, funcionando en su dominio.

  • Subir PDF y colocar campos de firma, iniciales, texto, fecha y casilla
  • Guardar borradores y retomarlos más tarde
  • Crear plantillas a partir de un PDF y editar las que ha creado
  • Todo lo de minimal, además

Un cuarto modo, read_only, muestra un documento terminado o una plantilla sin nada que hacer — un visor que puede colocar en su propia interfaz.

API REST

El mismo producto,
como endpoints

Todo bajo https://api.gingerdocs.com/api/v1, autenticado con una clave de API de tipo Bearer. Cree un usuario, suba un documento, envíelo y lea lo que pasó — en cuatro llamadas, desde cualquier lenguaje.

Convenciones en las que apoyarse

  • Claves secretas para sus servidores y claves publicables para una superficie de solo lectura en el navegador — cada una limitada a lo que necesita (scopes)
  • Dos entornos totalmente separados, test y live, en los mismos endpoints
  • Una Idempotency-Key en cada POST hace seguros los reintentos
  • Los errores llevan un code estable legible por máquinas; los mensajes son texto para mostrar y pueden cambiar
  • 120 peticiones por minuto por clave, con Retry-After en un 429
  • Definida por un contrato OpenAPI 3.1 contra el que se valida cada respuesta
Ver la referencia de la API
Pregunte a la API quién es ustedcURL
curl https://api.gingerdocs.com/api/v1/account \
  -H "Authorization: Bearer gd_sk_test_YOUR_KEY"
RespuestaJSON
{
  "environment": "test",
  "scopes": ["documents", "templates", "users", "embed", "webhooks"],
  "plan": { "key": "free", "limit": 30, "used": 12, "remaining": 18 },
  "defaults": { "email_delivery": "platform" }
}

Users

Las personas de su producto a las que pertenecen los documentos, identificadas por su propio external_id.

Documents

Suba un PDF o instancie una plantilla, indique el firmante, siga el estado y descargue la copia firmada.

Fields

Campos de firma, iniciales, texto, fecha y casilla, colocados en coordenadas de página normalizadas.

Templates

Liste, comparta e instancie plantillas creadas en la aplicación o en un espacio de trabajo advanced.

Sending

Nosotros enviamos el correo al firmante, o usted entrega el enlace de firma y nosotros no enviamos nada.

Webhooks & events

Registre endpoints HTTPS, lea el registro de entregas y recupere cualquier evento del registro de 90 días.

La v1 tiene exactamente un firmante por documento — sin listas de destinatarios, sin orden de firma, sin traspasos.

Pensado para producción

Las piezas que de otro modo
tendría que construir

Firmar es la mitad fácil. El resto — entrega, verificación, reintentos, marca, idiomas — viene con la plataforma.

Webhooks firmados, 16 tipos de evento

Entregas firmadas con HMAC-SHA256, con reintentos y registro de entregas. Cada evento puede leerse durante 90 días a través de la API de eventos, así que nada se pierde mientras su endpoint está caído.

Un entorno de pruebas que no envía correos

Las claves de prueba funcionan en todos los planes. La salida lleva marca de agua y no es legalmente vinculante, nada cuenta contra su plan, un endpoint de prueba puede simular la firma para que la CI compruebe COMPLETED, y los datos de prueba se eliminan a los 90 días.

Su color de marca, su ventana

Pase theme.primary_color al emitir la sesión y los botones, enlaces y anillos de foco del marco lo adoptarán. Un control de ampliación permite que una integración en una barra lateral estrecha ocupe toda la ventana y la devuelva.

Entregue usted el enlace de firma

Por cuenta o por envío, elija si GingerDocs envía el correo al firmante con su marca o lo hace su producto — en cuyo caso no enviamos nada y le entregamos la URL de firma.

Un certificado que le nombra

Cuando usted entrega el enlace o admite a un firmante mediante una sesión integrada, el certificado de finalización nombra a su entidad jurídica como parte verificadora — la responsabilidad que acepta en los Términos del integrador.

Seis idiomas en el marco

Los marcos de firma y de espacio de trabajo están disponibles en inglés, japonés, coreano, alemán, español y francés. Fije el idioma en la sesión o al montar; el firmante puede cambiarlo desde el menú del propio marco.

Código abierto

Dos SDK pequeños, con licencia MIT

El SDK hace una sola cosa: enmarca la URL de la sesión, fija el origen y el id de sesión en ambos extremos del canal postMessage y entrega eventos tipados a su código. Puede leerlo de una sentada.

Licencia MITMenos de 1,5 KB comprimidoCero dependencias

@gingerdocs/embed

Sin framework. mount(), on(), reload(), unmount() — y el protocolo de ampliación, si prefiere construir el iframe usted mismo.

Ver en GitHub

@gingerdocs/react

Un componente de React ligero sobre el paquete principal: un solo manejador onEvent para todos los eventos, seguro de pasar en línea.

Ver en GitHub
Precios para desarrolladores

Construya gratis. Pase a producción por 100 $ al año.

Construya con claves de prueba — gratis

El modo desarrollador y las claves de prueba están disponibles en todos los planes, incluido Free. Toda la integración — crear, enviar, firmar, webhook, descargar — funciona en el entorno de pruebas.

Obtener una clave de prueba

Pase a producción con el plan Developer

100 $/ año

Todo lo de Pro con los mismos 1.000 documentos subidos al mes, más claves de API live, firma integrada en sus dominios registrados y webhooks firmados.

Ver el plan Developer

Empiece hoy en modo de pruebas

Regístrese gratis, active el modo desarrollador en Configuración → Desarrollador y haga su primera llamada a la API en minutos. Sin tarjeta de crédito.