API Envío de Contratos para Firma (3.0)

INTRODUCCION

API de integración de servicios de contratación, envío de documentos para firma desde aplicaciones mediante peticiones API REST.

COMPATIBILIDAD Y VERSIONES


Versión 1.0 – 1.7: Última actualización 2017. Se recomienda la actualización a versión 3.0 o superior. Versiones no soportadas actualmente. Contactar con soporte para ayuda a la migración.
Versión 2.0 – 2.3: última actualización: 2019. Se añaden parámetros a las peticiones para utilizar más posibilidades de firma, sello de tiempo y contratación. Se añade el servicio de verificación/certificación de identidad online mediante vídeo.

Versión 2.5: última actualización: 2020. Se añade la posibilidad de envío de verificación de identidad en los contratos y parámetros identificativos del contrato.
Versión 2.55: Última actualización: 2021. Se añade una utilidad para certificar y sellar en tiempo o sólo sellar un documento PDF de forma sencilla. Utilidad integrable en aplicaciones.
Versión 3.0: Última actualización 2021. Se cambia el formato de API REST para adecuar los sistemas a la certificación de seguridad ENS (esquema nacional de seguridad). Se añade la posibilidad de uso de flujos de trabajo y se amplían las posibilidades de personalización. Se incluye la posibilidad de añadir recuadros de firma en plantillas y ficheros y otras funcionalidades. Se recomienda la migración a esta versión. La migración es muy sencilla desde 2.0 o superior.
Versión 3.1: Última actualización 2023. Se añade la posibilidad de solicitar documentos a los firmantes.

AUTENTICACIÓN

En su cuenta de usuario encontrará el Usuario API y el API Token, ambos son necesarios para realizar las peticiones API REST a las funciones de la API. Las Peticiones, por seguridad deben ralizarse en POST y con protocolo HTTPS Seguro.

Para utilizar la Autenticación Básica debe incluir una cabecera en las peticiones del tipo: Authorization: Basic Base64StringAPI donde Base64StringAPI es la codificación en Base64 de la cadena UsuarioAPI:APIToken, puede encontrar su Usuario API y API Token en su cuenta de usuario en Tus Datos -> Configurar Cuenta.

Para generar el string codificado en Base64, simplemente genere el string UsuarioApi:APIToken y codifíquelo en base64 mediante cualquier función base64encode.

A TENER EN CUENTA

Conexiones en vacío: Es importante tener en cuenta que una conexión errónea de forma repetida será tratada por el sistema como spam y podrá llegar a bloquear temporalmente la conexión. Es conveniente evitar realizar repetidas conexiones con datos erróneos o conexiones rápidas ‘en vacío’ (sin realizar envíos) con los mismos datos para obtener el número de créditos o el mismo report.

Para obtener reports de forma óptima en tiempo real se recomienda configurar la API en el panel para recibirlos en un script de su web.
Respuesta de las peticiones: La mayoría de las funciones disponen de un parámetro denominado ‘Resp’. Este parámetro define el formato de la respuesta que se devolverá. Puede ser TXT, JSON, XML o no definido. Se recomienda siempre definir este parámetro ya que todas las funciones, por compatibilidad con versiones anteriores de la API, responden por defecto (si no se define este parámetro) tal y como lo hacían en versiones antiguas. En estos resultados de versiones de API anteriores se obvian algunas de las variables que se incluyen en esta versión de la API y que consideramos importantes para facilitar la integración e información de la cuenta. En los ejemplos incluidos siempre se tiene en cuenta que ha definido el parámetro. Si está trabajando directamente con la API versión >= 5, asumiremos que ha definido el parámetro en todas las peticiones.
Funcionamiento recomendado: El funcionamiento recomendado, por ser el más sencillo y, a la vez, el más profesional es el siguiente:
- PROCESO 1: Envío de Petición de firma: Descrito en la función /EnviarContrato de este documento.
- PROCESO 2: Recepción automática de estados de firma en su web (proceso descrito en el la sección 'Recepción automática de eventos'.

Enviar Petición de Firma

/EnviarContrato

Función de envío de contratos y configuración del mismo para su firma por uno o varios firmantes. Definición de parámetros necesarios.

ATENCIÓN: Chequee la sección de recepción de eventos en tiempo real si desea recibir el estado de los contratos y las interacciones del/ de los firmantes en tiempo real en un script de su web.

query Parameters
Firmantes
required
Array of arrays
Example: Firmantes=[{"Nombre":"Pedro Pérez","NIF":"00000000T","Email":"destinatario@eldominio.com"}]

Array JSON con los datos de los firmantes. Dn el que se deben incluir lss siguientes variables:

Nombre : (Obligatorio) Nombre y apellidos del firmante
NIF : (Obligatorio) NIF/DNI del firmante
Email : (Opcional Email o Teléfono) Email del firmante. Debe definir Email o Teléfono oara cada firmante o puede definir ambos si desea enviar los recordatorios de firma de forma alternada entre SMS y Email.
Telefono : (Opcional Email o Teléfono) Teléfono del firmante. Debe definir Email o Teléfono oara cada firmante o puede definir ambos si desea enviar los recordatorios de firma de forma alternada entre SMS y Email.
Orden : (Opcional) Orden de firma para varios firmantes. Sólo necesario si se incluyen varios firmantes para el mismo documento/contrato.

Por ejemplo para dos firmantes:


   [
    {
      "Nombre": "Pedro Aicart",
      "NIF": "00000000T",
      "Email": "pedro@dominio.com",
      "Telefono": "34600000002",
      "Orden": "1"
    },
    {
      "Nombre": "Ana Aguado",
      "NIF": "00000001E",
      "Telefono": "34600000001",
      "Orden": "2"
    }
   ]
  

Flujotrabajo
string
Example: Flujotrabajo=238754787

Flujo de trabajo ya guardado en su cuenta y que desea reutilizar. Un flujo de trabajo se crea desde su panel de usuario al enviar contratos para firma, tiene predefinidos los documentos, plantillas, tipo de firma, etc... y basta con definir los destinatarios/firmantes para completar el proceso. Es muy útil en envíos de tipos de contrato de tipo repetitivo (plantillas de contrato como condiciones particulares, PDF en condiciones generales y una plantilla SEPA por ejemplo). La utilización de Flujos de trabajo sólo añade los valores definidos si no se envían en la petición, es decir, las variables normales , por ejemplo TipoFirma, prevalecen en la petición frente a la definida en el flujo de trabajo. Así, si en el flujo de trabajo ha definido ACEPTACION como modo de firma y en la petición API no se define, se utilizará ese tipo de firma pero, si , por ejemplo, en la petición define TipoFirma=BIOMETRICA, ésta prevalecerá(se utilizará) sobre la definida en el flujo de trabajo. Hay dos variables cuyo funcionamiento es distinto. DOCUMENTOS y FIRMASEMISOR añaden los documentos y firmas definidos tanto en el flujo de trabajo como en la petición. Estos parámetros, por tanto, son acumulativos.

Firmasemisor
Array of arrays
Example: Firmasemisor=[{"ID":1865998}]

Array JSON con las firmas de emisor guardadas en su cuenta que desea 'imprimir' sobre las plantillas y documentos enviados tras la firma de los firmantes. El sistema, antes de la certificación añadirá su firma y certificados al documento completando el documento legal. Los recuadros de estampación de las firmas se definen en la variable documentos para PDFs y en la creación de plantillas en el panel de usuario para las Plantillas
Los parámetros a incluir en el array JSON son:

ID: Identificador de la firma manuscrita o certificada guardada en su cuenta que desea imprimir sobre los documentos y plantillas una vez el/los destinatarios hayan finalizado la firma. Puede añadir firmas de emisor y ver los identificadores en su panel de usuario.

Documentos
Array of arrays
Example: Documentos=[{"Tipo":"PLANTILLA","PLANTILLA":"120958967","ACEPTACION":"NO"}]

Array JSON con el listado de documentos, plantillas y casillas de verificación que componen el contrato o acuerdo. Los parámetros a incluit en el array son:

Tipo:Tipo de documento a configurar. Puede ser PLANTILLA, PDF o CHECKBOX, en función del tipo, debe configurar los siguientes parámetros:
       - PLANTILLA: Son plantillas creadas dentro del panel de usuario. Deben especificarse los parámetros Plantilla, Nombre y Aceptación (explicados a continuación)
       - PDF: Son Ficheros PDF. Deben especificarse los parámetros Contenido, Nombre y Aceptación (explicados a continuación). Puede especificarse de forma opcional STAMPFIRMAEMISOR y STAMPFIRMAFIRMANTE que serían los recuadros donde quedarían incorporadas las firmas de emisor y/o firmante.
       - CHECKBOX: Son preguntas que se realizan al firmante antes de la firma, por ejemplo para cumplimentar el reglamento GDPR, consultar sobre envío de ofertas, etc... Deben especificarse los parámetros Texto, Inicial y Final (explicados a continuación)
Nombre: Parámetro necesario para los TIPOS 'PLANTILLA' y 'PDF', es el Nombre del documento que verá el firmante.
Plantilla:Parámetro necesario en caso de TIPO PLANTILLA. Es el identificador de la Plantilla a incluir que puede encontrar en el listado de plantillas de contrato en su panel de usuario.
Aceptacion: Parámetro necesario para los TIPOS 'PLANTILLA' y 'PDF'. Especifica si el firmante debe ‘ver’ hasta el final del documento antes de firmar. Si es 1 el sistema pedirá al firmante que haga ‘scroll’ hasta el final del documento previamente a la firma.
Valores posibles:
       - SI : El firmante debe ver hasta el final del documento antes de firmar.
       - NO : El firmante puede firmar sin llegar al final de este documento o plantilla
Contenido: Parámetro necesario para el TIPO 'PDF'. Es el contenido en base64 del fichero PDF a firmar.
Texto: Parámetro necesario para el TIPO 'CHECKBOX'. Pregunta o texto que se le mostrará al firmante. Por ejemplo '¿Nos da su consentimiento expreso para la utilización de sus datos personales con el exclusivo propósito del perfeccionamiento del presente contrato?..
Inicial: Parámetro necesario para el TIPO 'CHECKBOX'. Estado inicial del checkbox/casilla de verificación. Valores posibles:
       - OFF : desactivada
       - ON : activada"
Final: Parámetro necesario para el TIPO 'CHECKBOX'. Estado final que debe tener la casilla. Valores posibles:
       - OFF : debe estar desactivada,
       - ON : debe quedar activada
       - LIBRE : para elección libre.
StampFirmaEmisor: Parámetro opcional para el TIPO 'PDF'. Se define el recuadro del documento donde estampar la firma del emisor (Ud). El formato para definir el recuadro es Pag,x,y,tamx,tamy,orientacion, por ejemplo: 3,80,650,150,70,V que definirá el recuadro de firma para el emisor en la página 3 del PDF corrodenadas x 80 e y 650 y tamaños 150 de ancho y 70 de alto. la V final indica al sistema que el PDF tiene orientación vertical. Se asume que se trata de formato A4 y que el origen de coordenadas (0,0) empieza arriba a la izquierda y el tamaño máximo sería de 595 en x y 841 en y para horientación vertical y 841 en x y 595 en y si el documento tiene orientación horizontal.
       - Pag : página donde se estampará la firma de emisor antes de la certificación,
       - x : comienzo en x (0 en el borde izquierdo de la página) con un máximo de 595 en orientación vertical (la más habitual) y 841 para orientación horizontal
       - y : comienzo en y (0 en el borde superior de la página) con un máximo de 841 en orientación vertical (la más habitual) y 595 para orientación horizontal
       - tamx : ancho del recuadro de firma
       - tamy : alto del recuadro de firma
       - orient: orientación de las páginas, H para orientación horizontal y V para orientación vertical (la más habitual).

Ejemplo : 3,80,650,150,70,V que definirá el recuadro de firma para el emisor en la página 3 del PDF corrodenadas x 80 e y 650 y tamaños 150 de ancho y 70 de alto con el documento PDF en páginas A4 con orientación vertical.

StampFirmaFirmante: Parámetro opcional para el TIPO 'PDF'. Se define el recuadro del documento donde estampar la firma del firmante. El formato para definir el recuadro es Pag,x,y,tamx,tamy,orientacion, por ejemplo: 3,350,650,150,70,V que definirá el recuadro de firma para el firmante en la página 3 del PDF corrodenadas x 350 e y 650 y tamaños 150 de ancho y 70 de alto. la V final indica al sistema que el PDF tiene orientación vertical. Se asume que se trata de formato A4 y que el origen de coordenadas (0,0) empieza arriba a la izquierda y el tamaño máximo sería de 595 en x y 841 en y para horientación vertical y 841 en x y 595 en y si el documento tiene orientación horizontal.
       - Pag : página donde se estampará la firma de emisor antes de la certificación,
       - x : comienzo en x (0 en el borde izquierdo de la página) con un máximo de 595 en orientación vertical (la más habitual) y 841 para orientación horizontal
       - y : comienzo en y (0 en el borde superior de la página) con un máximo de 841 en orientación vertical (la más habitual) y 595 para orientación horizontal
       - tamx : ancho del recuadro de firma
       - tamy : alto del recuadro de firma
       - orient: orientación de las páginas, H para orientación horizontal y V para orientación vertical (la más habitual).

Ejemplo : 3,350,650,150,70,V que definirá el recuadro de firma para el firmante en la página 3 del PDF corrodenadas x 350 e y 650 y tamaños 150 de ancho y 70 de alto con el documento PDF en páginas A4 con orientación vertical.

Documentossolicitados
Array of arrays
Example: Documentossolicitados=[{"Texto":"Por favor, cargue o haga una foto del anverso de su DNI","Firmante":"0"}]

Array JSON con el listado de documentos que se solicitan a uno o todos los firmantes, se puede elegir que cada firmante suba un documento distinto , que todos suban el mismo (por ejemplo el DNI de cada firmante) o cualquier combinación. Los parámetros a incluir por cada documento solicitado son:

Texto:Texgto que le aparecerá al/a los firmante/s cuando se les solcite el documento.
Firmante: Es el número de firmante al que se le va a solicitar el documento 0 para todos o 1,2,3... en función del número de firmante (identificado por el orden en el que se indican en el parámetro firmantes).

Personalizacion
string
Example: Personalizacion={ "Nombre_de_Empresa":”La empresa”, "CIF":”B800000000”, "Nombre_Apoderado":”Pedro Fernández”, "Variable …":”Valor”, }

Array JSON con los datos de personalización de las plantillas si se han añadido una o varias plantillas y se desea que se rellenen de forma automática, debe indicar aquí los valores de cada variable que quiera rellenar. Las variables de la/las plantilla/s que no indique/especifique en este parámetro deberán ser rellenadas por el primer firmante. Por ejemplo:


    {
      "Nombre_de_Empresa": "La empresa",
      "CIF": "B800000000",
      "Nombre_Apoderado": "Pedro Fernández",
      "Variable_1": "Valor"
    }
  

Tipofirma
string
Enum: 1 2 3 4
Example: Tipofirma=3

Es el tipo de firma que deberán utilizar los firmantes. Las opciones son:
ACEPTACION : Aceptación explícita
OTP : PIN OTP o PIN de un único uso (debe indicarse el móvil de los firmantes donde recibirán el PIN de firma)
BIOMETRICA : Firma manuscrita/biométrica: Cada firmante deberá realizar la firma dibujándola con el dedo sobre su propio teléfono móvil.
CERTIFICADO : Firma certificada: Se utilizará para la firma el certificado o DNI de cada firmante. Atención: Debe asegurarse de que los firmantes disponen de certificado de firma en sus dispositivos o lector de DNI.

Remitente
string
Example: Remitente=MiEmpresa

Remitente de los SMS o SMS Certificados enviados para el perfeccionamiento del contrato. Es lo que recibirá en el móvil cada firmante como 'mensaje de...'. Por lo general se utiliza el nombre de la empresa emisora. Máximo 11 caracteres.

Mensaje
string
Example: Mensaje=MiEmpresa

Es el mensaje que se le enviará a cada firmante con el link de firma. Se pueden utilizar variables (las que ha enviado con cada firmante) y debe incluir el tag [LINK] dentro del mensaje que se sustituirá por el link de firma. El valor por defecto de esta parámetro (si no se especifica) es: ‘A la Atención de [NOMBRE] con NIF [NIF], según lo acordado, le enviamos el contrato para su firma. Pulse en el siguiente link: [LINK] para comenzar el proceso.’

Mediocomunicacion
string
Enum: 1 2 3
Example: Mediocomunicacion=EMAIL

Es el medio de comunicación que se utilizará en el mensaje de firma.
EMAIL : Por Email
SMS : Por SMS.
SMSCERTIFICADO : Por SMS Certificado (los recordatorios no se harán por este medio, sólo el primero de los mensajes)

Tipodocumento
string
Example: Tipodocumento=Contrato

(Por defecto ‘Contrato’). String con el tipo de contrato que estamos enviando. Es lo que se le indica al/a los firmante/s que van a firmar. Por ejemplo puede ser ‘Acuerdo de conciliación’, ‘Contrato’, ‘Mandato Sepa’, ‘Declaración parte seguro’, ‘Cesión de poderes’, etc….No influye en la operativa, simplemente es lo que se le indica a los firmantes.

Verificacionidentidad
string
Enum: "NO" "SI"
Example: Verificacionidentidad=NO

(Por defecto NO) si se establece a 'SI', el sistema identificará mediante vídeo a cada firmante y certificará la identificación incluyendo validez del DNI, si la persona identificada es real (prueba de vida) y si la persona identificada es la del DNI. Para ello, el sistema hará un vídeo de la persona a identificar y le solicitará que muestre a la cámara el DNI. Los datos del DNI del primer firmante pueden utilizarse también para rellenar, de forma automática las plantillas incorporadas en el contrato. ATENCIÓN debe solicitar activación de este servicio ya que, por temas de privacidad, debemos validar la empresa que va a utilizar este servicio. Posibles valores:
NO : No se realizará la verificación de identidad de los firmantes
SI : Se realizará una verificacióm de identidad de cada firmante incorporando los resultados, imágenes de interés y validez al certificado final.

Minparecidoverificacion
integer
Example: Minparecidoverificacion=80

Es el mínimo parecido entre la persona identificada y su DNI para continuar el proceso de contrato automáticamente. En caso de que no se supere este umbral o que el proceso haya detectado algún problema (por ejemplo DNI Caducado) el sistema esperará a la validación en paneles para continuar con el proceso de firma. También recibirá automáticamente una petición a su script receptor de report con todos los datos del DNI y el resultado y validaciones.

Referenciausuario
string
Example: Referenciausuario=NombreFirmante-NombreEmpresa-DNI

Referencia del usuario para el contrato. Sirve como referencia de usuario (lo recibirá dentro de los parámetros de las peticiones a su script de recepción de reports) y para buscar de foma cómoda cada contrato en los paneles.

Accesible
string
Enum: "NO" "SI"
Example: Accesible=SI

Indica si cada firmante tendrá acceso al documento firmado. Realmente tendrá acceso al certificado final con el documento firmado.
NO : Los firmantes no tendrán acceso a la descarga del contrato
SI : Los firmantes tendrán acceso a la descarga del contrato mediante el mismo link de firma.

Alternamedios
string
Enum: "NO" "SI"
Example: Alternamedios=SI

Si se establece en SI, le indica al sistema que alterne la comunicación entre SMS y Email en cada recordatorio de firma hasta que los firmantes hayan finalizado el proceso. De este modo, siempre que haya definido el Email y el Teléfono Móvil de cada firmante, el sistema enviará recordatorios de firma alternativamente por SMS y por Email consiguiendo así un incremento en las posibilidades de contacto si el destinatario/firmante tiene estropeado el móvil, apagado o no abre correo.
NO : El sistema sólo utilizará el medio de comunicación que se le indique
SI : El sistema alternará los medios de comunicación en los recordatorios hasta la firma o expiración del contrato.

Recordatorios
integer
Example: Recordatorios=3

Es el número de días entre recordatorios de firma. Si cada firmante no ha finalizado el proceso, lo ha dejado a medias o no ha accedido aún, el sistema le envía cada X días un recordatorio para que finalice el proceso. El máximo número de recordatorios es de 10 tras lo cual el contrato expirará a no ser que la fecha indicada en el parámetro FechaLimite sea anterior a que se puedan enviar ese número de recordatorios.

Fechalimite
string
Example: Fechalimite=2021-10-10

Es la fecha en la que el sistema dejará de enviar recordatorios si no se ha finalizado el proceso y cerrará el contrato como no firmado. ATENCIÓN: El contrato realmente expirará en cualquiera de estos eventos, el que suceda antes: - Se han alcanzado el número de 10 recordatorios sin que el firmante haya finalizado el proceso
- Se alcanza la fehca límite sin que se haya finalizado el proceso.
- El Usuario ha cancelado el contrato desde la API o desde los paneles.

Idioma
string
Enum: "es" "pt"
Example: Idioma=es

Es el idioma en el que se muestra el proceso de firma. Si necesita uno que no aparezca, contacte con nosotros. En estos momentos las posibilidades son: - es : Español - pt : Portugués

Minimocheck
integer
Example: Minimocheck=1

Si ha incluido CheckBoxes en los documentos es el número mínimo de ellos que debe activar cada firmante (ON) antes de continuar el proceso. La utilizdad de Mínimo y Máximo para checkboxes podría ser:
Ejemplo 1.- Caso en el que se trata de una votación firmada. Cada firmante debe elegir a uno y solo uno de las opciones (por ejemplo) mínimo y máximo se establecerían en 1 para que cada firmante eligiese a uno y solo un candidato.
Ejemplo 2.- Caso de solicitar preferencias por ejemplo, necesitaríamos supongamos entre 2 y 3 preferencias de cada firmante. definiríamos MINIMOCHECK a 2 y MAXIMOCHECK a 3.
Etc…

Maximocheck
integer
Example: Maximocheck=1

Si ha incluido CheckBoxes en los documentos es el número máximo de ellos que debe activar cada firmante (ON) antes de continuar el proceso.

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
ANT - (Obsoleto). Se mantiene por compatibilidad con versiones anteriores
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Responses

Response Schema:
Array
Res
required
integer <int32>

Respuesta de la función solicitada
1 Correcto.
-1 Error de autenticación.
-2 No hay firmantes.
-3 Error en los datos de la llamada. Faltan Parámetros obligatorios. En este caso, obtendrá un parámetro adicional denominado Error con la descripción del error.
-4 a -6 Error general en la petición del contrato (contacte con soporte indicando los parámetros utilizados).
-7 a -9 Error general en firmantes (contacte con soporte indicando los parámetros utilizados).
-10 a -14 Error general en documentos enviados. (contacte con soporte indicando los parámetros utilizados)

ContratoId
string

Identificador de contrato. Se utiliza para identificaciones posteriores en llamadas a la API junto con ReportID. También recibirá este dato en los eventos recibidos en tiempo real sobre el estado del contrato. (Ver recepción de Eventos en este documento)

ReportId
integer

Identificador de referencia/reports contrato. Se utiliza para identificaciones posteriores en llamadas a la API junto con el ContratoID (por ejemplo para descarga del Contrato Certificado). También recibirá este dato en los eventos recibidos en tiempo real sobre el estado del contrato. (Ver recepción de Eventos en este documento)

Cred
integer

Créditos que restan en la cuenta de usuario tras el envío.

Firmantes
integer

Número de firmantes del contrato.

Documentos
integer

Número de documentos enviados (plantillas, PDFs y checkboxes).

Request samples


curl --location --request POST 'https://www.lofirmo.com/api/v3/EnviarContrato' \ 
--header 'Authorization: Basic BASE64ENCODEdelStringUsuarioAPI:APIToken' \ 
--form 'Firmantes="[{\"Nombre\":\"Pedro Pérez\",\"NIF\":\"00000000T\",\"Email\":\"destinatario@eldominio.com\"}]"' \ 

Response samples

Content type
[
  • {
    }
]

Recepción de reports de entrega y cambios de estado de contratos enviados

https://{SuDominio}/path/de/su/script/de/recepción/de/reports

RECEPCIÓN EN TIEMPO REAL DE LOS ESTADOS DE CADA CONTRATO EN UN SCRIPT DE SU SERVIDOR. Activando la opción de recibir los reports en tiempo real en un script en su servidor desde su panel de usuario, recibirá una petición POST con el formato indicado cada vez que cada contrato enviado cambie de estado. Puede configurar recibir las peticiones con autenticación básica y en formato JSON o FORM-DATA

Request Body schema:

Parámetros recibidos en su script en petición POST con la configuración especificada en su panel de usuario/configuración API.

Servicio
required
string

Tipo de report que está recibiendo (el objetivo es distinguir entre los reports de los diferentes servicios). Los servicios a los que se refiere esta especificación puede recibir CONTRATACION Si el servicio se refiere a un cambio de estado de un contrato enviado.

ContratoID
string

Identificador del contrato. También se conoce como CSV (Código Seguro de Verificación). Una vez certificado, el contrato estará siempre disponible en https://www.lofirmo.com/csv/{ContratID} (por ejemplo: https://www.lofirmo.com/csv/ASYYFRE5492-HN776TFD)

ReportID
integer

Identificador único de todos los reports del contrato.

Resultado
required
integer

Estado del contrato. Los estados posibles son:

ESTADO DESCRIPCION SIGNIFICADO
`0` En proceso El contrato está aceptado y el proceso comenzará con el acceso del primer firmante.
`100` Certificando Significado:Proceso terminado, el sistema está generando el contrato.
`101` Firmado y Certificado Significado: Proceso terminado y el certificado está disponible para descarga.
`150` El contrato expiró sin firma Significado: El contrato ha expirado sin haber sido firmado.
`151` Contrato Cancelado Significado: El contrato ha sido cancelado por el usuario antes de su firma.
`1014` Firmado y Certificado Significado: Proceso terminado y el certificado está disponible para descarga.
`1050` Expiró sin firma Significado: En contrato ha expirado sin haber sido firmado.
FechaEnvio
string

Fecha en la que se envió el contrato.

FechaFirma
string

Fecha en la que se firmó el contrato.

NumFirmantes
required
string

Número de firmantes del contrato.

NumFimados
string

Número de firmantes que ya han firmado.

Referencia
required
string

Referencia del usuario que se envió durante la petición de envío.

TipoFirma
integer

Tipo de firma que se va a realizar/se ha realizado. Los valores posibles son:
1: firma por aceptación explícita
2: firma por OTP
3: firma por firma biométrica
4: firma por certificado electrónico o DNI

Request samples

Content type
{
  • "Servicio": "CONTRATACION",
  • "ContratoID": "ASYYFRE5492-HN776TFD",
  • "ReportID": 299846332,
  • "Resultado": 11,
  • "FechaEnvio": "2021-10-10 10:10",
  • "FechaFirma": "2021-10-10 10:10",
  • "NumFirmantes": 2,
  • "NumFimados": 1,
  • "Referencia": "Su referencia si la indicó",
  • "TipoFirma": 3
}

Cancelar Contrato aún no finalizado.

/CancelarCONTRATO

Función para cancelar el contrato si éste no está finalizado. Se dejan de enviar recordatorios y el contrato queda cerrado/cancelado.

query Parameters
Contratoid
required
string
Example: Contratoid=1283876988

Identificador ContratoID devuelto en la función de envío.

Reportid
required
integer
Example: Reportid=1283876988

Identificador ReportID devuelto en la función de envío.

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
ANT - (Obsoleto). Se mantiene por compatibilidad con versiones anteriores
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Responses

Response Schema:
Array
Res
required
integer <int32>

Respuesta de la función solicitada
1 Operación correcta.
-1 Error de autenticación.
-2 Datos incorrectos (Sólo puede cancelar identificadores suyos, si intenta cancelar identificadores de contrato de otro usuario, se podría considerar ataque y limitar el acceso de su conexión).
-3 Error en los datos de la llamada. Faltan Parámetros obligatorios. En este caso, obtendrá un parámetro adicional denominado Error con la descripción del error.
-4 El contrato no se puede cancelar.

Cred
double

Créditos que restan en la cuenta de usuario tras el envío.

Request samples


curl --location --request POST 'https://www.lofirmo.com/api/v3/CancelarCONTRATO' \ 
--header 'Authorization: Basic BASE64ENCODEdelStringUsuarioAPI:APIToken' \ 
--form 'Contratoid="1283876988"' \ 
--form 'Reportid="1283876988"' \ 

Response samples

Content type
[
  • {
    }
]

Obtener report simple de un contrato enviado.

/ReportSimpleCONTRATO

Función para obtener el estado actual de un contrato. Se recomienda utilizar el webhook definido anteriormente donde recibirá las actualizaciones en tiempo real de los cambios de estado de los contratos.

query Parameters
Contratoid
required
string
Example: Contratoid=1283876988

Identificador ContratoID devuelto en la función de envío.

Reportid
required
integer
Example: Reportid=1283876988

Identificador ReportID devuelto en la función de envío.

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
ANT - (Obsoleto). Se mantiene por compatibilidad con versiones anteriores
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Responses

Response Schema:
Array
Res
required
integer <int32>

Respuesta de la función solicitada
1 Operación correcta.
-1 Error de autenticación.
-2 Datos incorrectos (Sólo puede obtener reports de identificadores suyos, si intenta utilizar identificadores de contrato de otro usuario, se podría considerar ataque y limitar el acceso de su conexión).
-3 Error en los datos de la llamada. Faltan Parámetros obligatorios. En este caso, obtendrá un parámetro adicional denominado Error con la descripción del error.

Estado
integer

Estado del contrato indicado. Para ver una descripción del estado, verificar en la operación webhook de recepción de reports en un script de su web.

FechaEnvio
string

Fecha de envío incial del contrato.

FechaFirma
string

Fecha en nloa que se firmó el contrato.

Firmantes
integer

Número de firmantes que deben firmar el/los documentos.

Firmados
integer

Número de firmantes que ya han firmado el/los documentos.

Cred
integer

Créditos que restan en la cuenta de usuario tras el envío.

Request samples


curl --location --request POST 'https://www.lofirmo.com/api/v3/ReportSimpleCONTRATO' \ 
--header 'Authorization: Basic BASE64ENCODEdelStringUsuarioAPI:APIToken' \ 
--form 'Contratoid="1283876988"' \ 
--form 'Reportid="1283876988"' \ 

Response samples

Content type
[
  • {
    }
]

Consulta y descarga PDF Certificado con el Contrato

/GetCertificadoCONTRATO

Obtención del fichero PDF con el certificado del contrato enviado mediante la API. Esta función se ejecuta, habitualmente, como respuesta a una recepción de report con estado de certificado (ejemplo resultado 1014 -firmado y certificado- . Se descarga directamente el fichero PDF si la función se ejecuta con éxito.

query Parameters
Contratoid
required
string
Example: Contratoid=1283876988

Identificador ContratoID devuelto en la función de envío.

Reportid
required
integer
Example: Reportid=1283876988

Identificador ReportID devuelto en la función de envío.

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
ANT - (Obsoleto). Se mantiene por compatibilidad con versiones anteriores
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Responses

Response Schema:
string

Request samples


curl --location --request POST 'https://www.lofirmo.com/api/v3/GetCertificadoCONTRATO' \ 
--header 'Authorization: Basic BASE64ENCODEdelStringUsuarioAPI:APIToken' \ 
--form 'Contratoid="1283876988"' \ 
--form 'Reportid="1283876988"' \ 

Response samples

Content type
En caso de éxito se descarga un fichero PDF con el certificado del contrato.

Consulta de Créditos

/GetCreditos

Función que devuelve el número de créditos en la cuenta. Es una función de uso muy esporádico ya que la mayoría de las funciones devuelven en sus respuestas el número de Créditos restante en el usuario. Por tanto, se suele utilizar simplemente como prueba de funcionamiento o para obtener el número de créditos de forma ocasional

query Parameters
Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
ANT - (Obsoleto). Se mantiene por compatibilidad con versiones anteriores
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Responses

Response Schema:
Array
Res
required
integer <int32>

Respuesta de la función solicitada
1 La función concluyó con éxito.
-1 Error de autenticación.

Cred
required
double

Créditos que restan en la cuenta de usuario tras el envío.

Request samples


curl --location --request POST 'https://www.lofirmo.com/api/v3/GetCreditos' \ 
--header 'Authorization: Basic BASE64ENCODEdelStringUsuarioAPI:APIToken' \ 

Response samples

Content type
[
  • {
    }
]