Skip to content

Documentos

List documents

Permite obtener una lista de objetos del tipo Documento a los cuales se tiene acceso.

http
GET /api/document/get_all

Query Parameters

Este endpoint permite queries utilizando valores de forma, por ejemplo:

/api/document/get_all?docname=documento%20de%20prueba&from_date=30122021&to_date=30122022&tags=EJEMPLO1,EJEMPLO2,EJEMPLO3

Los campos permitidos son:

ParámetroDescripción
from_dateFecha inicial del rango a consultar en formato ddmmaaaa
to_dateFecha final del rango a consultar en formato ddmmaaaa
tagsEtiquetas a consultar (separadas por coma)

Request

bash
curl -X GET -H "X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}" "https://efirma.com/api/document/get_all"
http
GET %7B%7Befirma_url%7D%7D/api/document/get_all HTTP/1.1
Host:
X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}

Response

json
[
    {
        "id": "XXXXXXXXXX",
        "name": "Document 1",
        "createdat": "2020-08-04T02:10:52.607Z",
        "hash": "b9cdafe03253e2d25360547c12e021e90e3e1562cb30baee4e88703bd305b0ee",
        "fully_signed": true,
        "original_file": "https://efirma.com/odocument/XXXXXXXXXX?at=XXXXXXXXXX&ut=XXXXXXXXXX&tt=XXXXXXXXXX",
        "evidence_file": "",
        "merged_file": "",
        "signed_file": ""
    },
    {
        "id": "XXXXXXXXXX",
        "name": "Document 2",
        "createdat": "2020-08-04T02:10:31.188Z",
        "hash": "2f295610279183e5388a206a2a2a67ce24971bf732ea5a58cac58fdd64ddbcc5",
        "fully_signed": false,
        "original_file": "https://efirma.com/odocument/XXXXXXXXXX?at=XXXXXXXXXX&ut=XXXXXXXXXX&tt=XXXXXXXXXX",
        "evidence_file": "",
        "merged_file": "",
        "signed_file": ""
    },
    {
        "id": "5f28be10aa470052878a7fe6",
        "name": "Documento 3",
        "createdat": "2020-08-04T01:46:56.845Z",
        "hash": "cc8f92183d7b20a46188585dfdf6f28b4208ca402c36ccc4a9f3304ac18c928b",
        "fully_signed": false,
        "original_file": "https://efirma.com/odocument/XXXXXXXXXX?at=XXXXXXXXXX&ut=XXXXXXXXXX&tt=XXXXXXXXXX",
        "evidence_file": "",
        "merged_file": "",
        "signed_file": ""
    }
]

List Signable documents

Permite obtener una lista objectos del tipo Documento a los cuales se tiene acceso y no estan completamente firmados.

html
GET /api/document/get_signable

Request

http
curl -X GET -H "X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}" "https://efirma.com/api/document/get_signable"

Response

json
[
    {
        "id": "XXXXXXXXXX",
        "name": "Document 1",
        "createdat": "2020-08-04T02:10:52.607Z",
        "expirydate": "2020-09-04T02:10:52.607Z",
        "hash": "b9cdafe03253e2d25360547c12e021e90e3e1562cb30baee4e88703bd305b0ee",
        "signatures": [
            {
                "email": "test@efirma.com",
                "name": "ALAN",
                "lname": "GUTIERREZ",
                "signature_type": 1,
                "signed": false
            }
        ],
        "fully_signed": false,
        "pages": 1
    },
    {
        "id": "XXXXXXXXXX",
        "name": "Document 2",
        "createdat": "2020-08-05T02:10:52.007Z",
        "expirydate": "2020-08-15T22:11:42.607Z",
        "hash": "b9cdafe03253e2d25360547c12e021e90e3e1562cb30baee4e88703bd305b0ee",
        "signatures": [
            {
                "email": "test@efirma.com",
                "name": "ALAN",
                "lname": "GUTIERREZ",
                "signature_type": 2,
                "signed": false
            }
        ],
        "fully_signed": false,
        "pages": 1
    }
]

Find document by ID

Permite obtener los datos respecto a un documento.

html
GET /api/document/get/:id
NombreTipoDescripción
:idstringEl id único del documento.

Regresará un objeto Documento

Request

bash
curl -X GET -H "X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}" "https://efirma.com/api/document/get/:id"
http
GET %7B%7Befirma_url%7D%7D/api/document/get/:id HTTP/1.1
Host:
X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}

Response

json
{
    "id": "XXXXXX",
    "name": "Documento",
    "createdat": "2020-05-15T18:40:35.554Z",
    "hash": "66c0fc2bb90ce3565c4cb8a8afdf3bd800323c94d7d3003971cdd7c186985159",
    "owner": "test@efirma.com",
    "users": [
        {
            "email": "test@efirma.com",
            "type": "signer",
            "access_token": "XXXXXX",
            "iframe_url": "https://efirma.com/frame/verify/doc?doc=XXXXXX&at=XXXXXX&ae=test@efirma.com"
        },
        {
            "email": "yyyy@efirma.com",
            "type": "signer",
            "access_token": "XXXXXX",
            "iframe_url": "https://efirma.com/frame/verify/doc?doc=XXXXXX&at=XXXXXX&ae=yyyy@efirma.com"
        },
        {
            "email": "test@efirma.com",
            "type": "signer",
            "access_token": "XXXXXX",
            "iframe_url": "https://efirma.com/frame/verify/doc?doc=XXXXXX&at=XXXXXX&ae=test@efirma.com"
        }
    ],
    "signatures": [
        {
            "email": "test@efirma.com",
            "name": "DAVID",
            "lname": "GUTIERREZ",
            "signature_type": 2,
            "signed": true,
            "signature": "<<BASE64 de la imágen de la firma>>",
            "tsq_file": "https://efirma.com/tsq/XXXXXX",
            "tsr_file": "https://efirma.com/tsr/XXXXXX",
            "ip": "127.0.0.1"
        },
        {
            "email": "yyyy@efirma.com",
            "name": "Alberto",
            "lname": "Leyva",
            "signature_type": 2,
            "signed": true,
            "signature": "<<BASE64 de la imágen de la firma>>",
            "tsq_file": "https://efirma.com/tsq/XXXXXX",
            "tsr_file": "https://efirma.com/tsr/XXXXXX",
            "ip": "127.0.0.1"
        },
        {
            "email": "xxxxxx@hotmail.com",
            "name": "Isabel",
            "lname": "Ulloa",
            "signature_type": 2,
            "signed": true,
            "signature": "<<BASE64 de la imágen de la firma>>",
            "tsq_file": "https://efirma.com/tsq/XXXXXX",
            "tsr_file": "https://efirma.com/tsr/XXXXXX",
            "ip": "127.0.0.1"
        }
    ],
    "fully_signed": true,
    "original_file": "https://efirma.com/odocument/XXXXXX?at=XXXXXX&ut=XXXXXX&tt=XXXXXX",
    "evidence_file": "https://efirma.com/sdocument/XXXXXX?at=XXXXXX&ut=XXXXXX&tt=XXXXXX",
    "merged_file": "https://efirma.com/osdocument/XXXXXX?at=XXXXXX&ut=XXXXXX&tt=XXXXXX",
    "signed_file": "https://efirma.com/pkcsdocument/XXXXXX?at=XXXXXX&ut=XXXXXX&tt=XXXXXX"
}

Get Document Signatures

Permite obtener los datos de todas las firmas que aparecen en un documento.

http
POST /api/document/get_signatures
NombreTipoDescripción
:ìdstringEl id único del documento.

Regresará un arreglo de firmantes

Request

bash
curl -X GET -H "X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}" "https://efirma.com/api/document/get_signatures" --form 'docid="60X2103cX291cXX8cX8a706X"'

Response

json
[
    {
        "email": "user@domain.com",
        "name": "User Name",
        "lname": "User Lastname",
        "curp": "CURP",
        "certificado": {
            "CommonName": "",
            "Issuer": "",
            "Country": "",
            "Organization": "",
            "CURP": "",
            "RFC": "",
            "Serial": "",
            "Email": "",
            "NotAfter": "",
            "IsOrg": true/false
        },
        "signature_type": "firma_electronica",
        "ts": "0",
        "tsq": "https://efirma.com/tsq/xxxx",
        "tsr": "https://efirma.com/tsr/xxxx",
        "signature": "b64Signature",
        "algorithm": "sha-x"
    }
]
json
[
    {
        "email": "user@domain.com",
        "name": "User Name",
        "lname": "User Lastname",
        "svg_signature": "data:image/svg+xml;base64,PHN...2Zz4=",
        "curp": "CURP",
        "png_signature": "iVBOR...s65S5EZ"
        "ip": "127.0.0.1",
        "signature_type": "firma_autografa",
        "ts": "xxx",
        "tsq": "https://efirma.com/tsq/xxxx",
        "tsr": "https://efirma.com/tsr/xxxx"
    }
]

Create Document

Permite crear/subir un documento a nuestros sistemas para su firmado, el contenido debe venir en un multipart/form-data y los parametros en formato JSON dentro de un campo con nombre “data”.

html
POST /api/document/
NombreTipo de DatoDescripción
nameStringEl nombre con el cual se creará el documento.
signature_typeIntEspecifica el tipo de firma electrónica a utilizar dentro del documento. 1 = Firma Electrónica Avanzada, 2 = Firma Autógrafa Digital.
hasOrderBool(Opcional) En caso de ser verdadero, solicitará a los firmantes un orden especificado en el arreglo de objetos Users.
users[ ]UsersUna lista de objetos del tipo User de los usuarios que tienen permisos dentro del documento. El usuario que sube el documento se agrega por default como observador, si necesita que el usuario que sube el documento sea firmante, es necesario darlo de alta.
sidreqBool(Opcional) En caso de ser verdadero, solicitará a los firmantes su Identificación Oficial.
send_mailsBoolEn caso de ser falso, no se enviarán los correos de invitación a los usuarios del documento.
idcard_requiredBool(Opcional) En caso de ser verdadero, el documento generado requerirá una identificación anexa para poder ser firmado.
geo_requiredBool(Opcional) En caso de ser verdadero, el documento generado requerirá obtener la geolocalización del dispositivo para ser firmado.
sms_requiredBool(Opcional) En caso de ser verdadero, el documento generado requerirá validar el número de celular del firmante. Esta opción solo es válida para documentos que vayan a ser firmados con Firma Autógrafa Digital.
expiry_inInt(Opcional) Plazo para la celebración del contrato, el parámetro puede ser entre 1 y 90 días. Valor predefinido de 30 días.
descString(Opcional) Descripción del documento que se agregará en la nota de invitación enviada a los usuarios por correo electrónico.
callback_urlString(Opcional) URL para notificar cuando una acción sea ejercida sobre el documento.
return_urlString(Opcional) URL para redirigir al usuario una vez que se firme el documento.
reject_urlString(Opcional) URL para redirigir al usuario en caso de que decida rechazar el documento.

Regresa un JSON con el “id” del documento creado

bash
curl --location --request POST 'https://efirma.com/api/document' \
--header 'Content-Type: multipart/form-data' \
--header 'X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}' \
--form 'Multipart/Form=@"/C:/Documents/exampleDoc.pdf"' \
--form 'data="{
   \"name\":\"Example\",
   \"desc\":\"Este documento esta hecho por medio de la API para pruebas.\",
   \"users\":[
      {
         \"email\":\"xxxxxx@xxxxxxx.com\",
         \"type\":\"signer\",
         \"ignore_invitation\":true,
          \"order\":1\
            \"sidreq":false

      },
      {
         \"email\":\"xxxxxx@xxxxxx.com\",
         \"type\":\"signer\",
          \"order\":2\
          \"sidreq":true
      }
   ],
   \"hasOrder\":true,
   \"send_mails\":true,
   \"signature_type\":2,
   \"idcard_required\":false,
   \"geo_required\":false,
   \"sms_required\":false,
   \"tags\":["TAG1","TAG2"]
   \"callback_url\":\"\",
   \"return_url\":\"xxxxxxx\",
   \"reject_url\":\"xxxxxxx\",
   \"expiry_in\":30
}"'
http
POST https://efirma.com/api/document HTTP/1.1
POST /api/document HTTP/1.1
Host: https://efirma.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
X-eFirma-Auth: {"uid":"UID_EFIRMA"","key":"KEY_EFIRMA"}
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="Multipart/Form"; filename="/C:/Documents/exampleDoc.pdf"
Content-Type: application/pdf
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="data"
{
   "name":"Example",
   "desc":"Este documento esta hecho por medio de la API para pruebas.",
   "users":[
      {
         "email":"xxxx@xxxxx.com",
         "type":"signer",
         "ignore_invitation":true,
          "order":1
            "sidreq":false

      },
      {
         "email":"xxxx@xxxxxxx.com",
         "type":"signer",
          "order":2
            "sidreq":true

      }
   ],
   "hasOrder":true,
   "send_mails":true,
   "signature_type":2,
   "idcard_required":false,
   "geo_required":false,
   "sms_required":false,
   "callback_url":"",
   "return_url":"xxxxxxx",
   "reject_url":"xxxxxxxx",
   "expiry_in":30
}

Response

json
{
    "id": "XXXXXXXXX"
}

Delet Document

Permite eliminar un documento previamente subido por el usuario de la API Key

Solo se pueden eliminar documentos que hayan sido creados por el usuario y que no esten firmados.

http
GET /api/document/delete/:id
NombreTipoDescripción
:idstringEl id único del documento.

Regresa un JSON un mensaje de error o de éxito.

bash
curl -X GET -H "X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}" "https://efirma.com/api/document/delete/:id"
http
GET %7B%7Befirma_url%7D%7D/api/document/delete/:id HTTP/1.1
Host:
X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}

Send Reminder

Permite enviar un recordatorio de firma con acceso al documento, los parametros deben venir en el BODY con un Header del tipo application/json.

bash
POST /api/document/send_reminder/
NombreTipoDescripción
idstringEl id único del documento.
userstringEl correo electrónico del usuario al que se le enviará el recordatorio. El usuario tiene que estar registrado como observador o firmante.

Request

bash
curl -X POST -H "Content-Type: application/json" -H "X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}" -d '{
    "id":"XXXXXXXXX",
    "user":"test@efirma.com"
}' "https://efirma.com/api/document/send_reminder/"
html
POST %7B%7Befirma_url%7D%7D/api/document/send_reminder/ HTTP/1.1
Host:
Content-Type: application/json
X-eFirma-Auth: {"uid":"UID_EFIRMA","key":"KEY_EFIRMA"}
{
    "id":"XXXXXXXXX",
    "user":"test@efirma.com"
}
json
{
    "status": "success"
}
json
{
    "message": "Can't send a reminder to yourself",
    "status": "error"
}
json
{
    "message": "Document does't exist",
    "status": "error"
}

IFrames

La API de eFirma permitirá a sus usuarios mostrar los documentos a firmar dentro de sus propias páginas web a través de iframes.

Nota de seguridad

Por seguridad de los firmantes, antes de mostrar el documento se enviará un correo electrónico para confirmar al usuario.

Mostrar un documento dentro de un iFrame

Para mostrar un documento en un iframe, será necesario obtener el iframe_url de nuestras llamadas de API.

Una vez que se tenga el URL del usuario seleccionado, deberá importar en su página el SDK de Javascript alojado en su HTML e inicializarlo de la siguiente manera:

En el cuerpo de la página, deberá renderizarse un botón que mande a llamar al método openWindow() del SDK EfirmaTools; asimismo, deberá existir un <div> vacío para que el SDK lo tome como su contenedor.

html
<html>
	<head>
		<script src='https://efirma.com/pub/js/efirmaTools.js'/>
		<script>
			let frameId = 'theframe'; // Se define en el HTML más adelante
			let iframeUrl = 'https://efirma.com/frame/verify/doc?doc=<<ID DOCUMENTO>>&at=<<CODIGO DE ACCESO>>&ae=<<EMAIL USUARIO>>'; //Lo obtendras de las llamadas API
			var efirmaTools = new EfirmaTools(frameId, iframeUrl);
		</script>
	</head>
	<body>
		<button onclick="efirmaTools.openWindow()">Text</button> <!--Aqui se asigna la accion al botón-->
		<div id="theframe" style="height: 1000px;"></div>
	</body>
</html>