Documentación de API para certificación de documentos

Úiltima actualización el 25 de marzo, 2020.


¡Bienvenido a LifeChain! aquí encontraras la documentación necesaria para certificar y validar tus documentos vía API, así como consultar tus créditos disponibles para certificar nuevos documentos.

Nota:

  • Cada certificación de documento por individual consume un crédito. El número de créditos disponibles depende del tipo de plan que tengas contratado para LifeChain Documentos. No nos hacemos responsables por el mal uso o uso irresponsable de los créditos una vez asignados a su usuario u organización.
  • Para comenzar a trabajar con la API de LifeChain Documentos, es necesario que cuentes con tu apikey. Da click aquí para saber como obtenerla.

Consultar créditos disponibles

Con ayuda de esta petición podrás consultar tus créditos disponibles. Cada crédito sirve para certificar un documento dentro de LifeChain.

  • Endpoint: https://api.lifechain.mx/documentos/creditos/
  • Verbo HTTP: GET
  • Ejemplo de petición:

curl 'https://api.lifechain.mx/documentos/creditos/' \
-H 'apikey: G8Jx0p0iYS.KpZYXHqChmEG58Lg9KpCD1O9CN0SY7oUrnmHQB5CYmXhbjO0GtirV'
				
  • Ejemplo de respuesta exitosa:

{"creditos": 5}
				

Certificar un documento

Para certificar un documento es necesario mandar en el cuerpo de la petición el contenido del documento a certificar codificado en base64, asignándole el nombre “contenido”; además del nombre con el que se desea guardar el archivo (incluyendo el formato del mismo). Como opción adicional, puede mandar sus llaves privadas ECDSA para firmar electrónicamente el documento, además de asignarle privacidad a tu documento (si tu documento es privado, podrá ser validado por terceros, pero ningún usuario sin permisos podrá acceder al contenido de tu documento).

En el siguiente ejemplo se realiza una petición utilizando una llave ECDSA.

  • Endpoint: https://api.lifechain.mx/documentos/
  • Endpoint de prueba (no consume créditos): https://api.lifechain.mx/documentos/test/
  • Verbo HTTP: POST
  • Ejemplo de petición:

curl 'https://api.lifechain.mx/documentos/test/' \
-H 'apikey: G8Jx0p0iYS.KpZYXHqChmEG58Lg9KpCD1O9CN0SY7oUrnmHQB5CYmXhbjO0GtirV' \
-H 'Content-Type: application/json' \
-d '{"nombre":"prueba.txt","privado":"false","contenido":"SG9sYSBtdW5kbyEgc29tb3MgTGlmZUNoYWluIQo=","extraData":"datos extra","vigencia":"2021-10-06T00:00:00.000Z","firmasECDSA":["c36c3f3e689837b8e2dae79fb774cc830c31d26f6549d4b48a8716411498da4a"]}'
				
  • Ejemplo de respuesta exitosa:

{
   "documento":{
      "txHashConfirmed":false,
      "privado":false,
      "_id":"5e7bf16dc713c40010cc8f34",
      "fecha_certificacion":"2020-03-26T00:03:57.257Z",
      "firmasECDSA":[
         {
            "_id":"5e7bf16dc713c40010cc8f35",
            "firma":"3044022046dee86dbfb1b8b60095672ea8c40f118848f50cf325b7ee84d19fa4b542b58302203ee23aa1e96342ffc5338af4e1f2622595ca4f6e3c8e94d125740bf2617049d3",
            "llave_publica":"039fb32f306a6bd7a97e5edc870ca7a53b49abde71ed4f0e74a6f6ad1842352111"
         }
      ],
      "nombre":"prueba.txt",
      "fileHash":"028b2ea3ff771ea61bcbead7f71241999a78c92438734a331517b0ad020ce3e2",
      "originalHash":"028b2ea3ff771ea61bcbead7f71241999a78c92438734a331517b0ad020ce3e2",
      "extraData":"datos extra",
      "emisor":"5ceb04712f762724b6d528d6",
	  "onModelEmisor":"Usuario",
	  "vigencia":"2021-10-06T00:00:00.000Z"
   },
   "contenido":"SG9sYSBtdW5kbyEgc29tb3MgTGlmZUNoYWluIQo="
}
				

Consultar lista de documentos certificados

Para consultar la lista de los documentos certificados por medio de LifeChain.

NOTA: Si quieres consultar la lista de documentos de una organización de la cuál eres administrador, es necesario que uses el apikey de la organización, y no el de tu usuario.

  • Endpoint: https://api.lifechain.mx/documentos/list/
  • Verbo HTTP: GET
  • Ejemplo de petición:

curl 'https://api.lifechain.mx/documentos/list/' \
-H 'apikey: G8Jx0p0iYS.KpZYXHqChmEG58Lg9KpCD1O9CN0SY7oUrnmHQB5CYmXhbjO0GtirV'
				
  • Ejemplo de respuesta exitosa:

[
    {
        "txHashConfirmed": true,
        "privado": false,
        "_id": "5e7bfa47591bc1001af7e8e9",
        "fecha_certificacion": "2020-03-26T00:41:43.069Z",
        "nombre": "prueba.pdf",
        "fileHash": "6e7610e40a578cbe3fdf8f1774b5d54e18afb50cf3cda431bacd3157b123ceb5",
        "originalHash": "ff33b356674b61ca0d8780f264d3146f7bcbed35616e512c33a31f2da728a7c5",
        "emisor": "5ceb04712f762724b6d528d6",
        "onModelEmisor": "Usuario",
        "txHash": "0x81a4aa8a0d13b76a6793d32a35e912570bf73485ebb37cdd6e349bb5eaa30ee5",
        "firmasECDSA": []
    },
    {
        "txHashConfirmed": true,
        "privado": false,
        "_id": "5e7bf16dc713c40010cc8f34",
        "fecha_certificacion": "2020-03-26T00:03:57.257Z",
        "firmasECDSA": [
            {
                "_id": "5e7bf16dc713c40010cc8f35",
                "firma": "3044022046dee86dbfb1b8b60095672ea8c40f118848f50cf325b7ee84d19fa4b542b58302203ee23aa1e96342ffc5338af4e1f2622595ca4f6e3c8e94d125740bf2617049d3",
                "llave_publica": "039fb32f306a6bd7a97e5edc870ca7a53b49abde71ed4f0e74a6f6ad1842352111"
            }
        ],
        "nombre": "prueba.txt",
        "fileHash": "028b2ea3ff771ea61bcbead7f71241999a78c92438734a331517b0ad020ce3e2",
        "originalHash": "028b2ea3ff771ea61bcbead7f71241999a78c92438734a331517b0ad020ce3e2",
        "extraData": "datos extra",
        "emisor": "5ceb04712f762724b6d528d6",
        "onModelEmisor": "Usuario",
        "txHash": "0x68108e2876b53238c4920e271f5fc050355ae875c98df7206c1f1b6c802ca9d1"
    },
    ...
]
				

Consultar contenido de un documento

Por seguridad, los documentos almacenados en LifeChain son encriptados mientras están en reposo en nuestros servidores. Además, estos se encuentran en repositorios propios y privados.

Para consultar el contenido de un documento certificado en LifeChain, es necesario realizar esta peticion para obtener una URL, la cuál te dará acceso al documento por sólo 15 minutos.

NOTA: Es necesario tomar en cuenta la privacidad y los permisos que tienes sobre el documento, ya que si el documento es privado y es de un usuario u organización ageno a ti, tu acceso será denegado.

  • Endpoint: https://api.lifechain.mx/documentos/url/*id de archivo o folio de certificación*/
  • Verbo HTTP: GET
  • Ejemplo de petición:

curl 'https://api.lifechain.mx/documentos/url/*id de archivo o folio de certificación*/' \
-H 'apikey: G8Jx0p0iYS.KpZYXHqChmEG58Lg9KpCD1O9CN0SY7oUrnmHQB5CYmXhbjO0GtirV'
				
  • Ejemplo de respuesta exitosa:

{
    "url": "https://lifechainprivate..."
}
				

Validar documento

Para validar un documento vía API, existen 3 alternativas:

1 - Validar vía folio de certificación (Sólo disponible para archivos PDF)

El folio de certificación es una cadena alfanumérica de 24 dígitos que se anexa en los documentos certificados por LifeChain, lo puedes encontrar en el pie de cada página del documento a validar.

  • Endpoint: https://api.lifechain.mx/documentos/*folio de certificación*/
  • Verbo HTTP: GET
  • Ejemplo de petición:

curl 'https://api.lifechain.mx/documentos/5d6871762767ac003320966d' \
-H 'apikey: G8Jx0p0iYS.KpZYXHqChmEG58Lg9KpCD1O9CN0SY7oUrnmHQB5CYmXhbjO0GtirV'
				

2 - Validar vía hash 256

Esta función ayuda a validar el hash sha256 de un archivo. Para utilizar esta función, es necesario primero calcular el hash sha256 del documento (puede usar cualquier procesador online).

  • Endpoint: https://api.lifechain.mx/documentos/file-hash/*hash*
  • Verbo HTTP: GET
  • Ejemplo de petición:

curl 'https://api.lifechain.mx/documentos/file-hash/de7784a10b6ee32fdba72ee5a5a60b671a2b8afd6d6c416ebf387f12a5e686a8' \
-H 'apikey: G8Jx0p0iYS.KpZYXHqChmEG58Lg9KpCD1O9CN0SY7oUrnmHQB5CYmXhbjO0GtirV'
				

3 - Validar vía documento (base64)

Esta función ayuda a validar un documento por medio de su contenido codificado en base 64. La cadena con el contenido codificado debe de agregarse en el cuerpo de la petición con el nombre “contenido”.

  • Endpoint: https://api.lifechain.mx/documentos/base64/
  • Verbo HTTP: POST
  • Ejemplo de petición:

curl 'https://api.lifechain.mx/documentos/base64/' \
-H 'apikey: G8Jx0p0iYS.KpZYXHqChmEG58Lg9KpCD1O9CN0SY7oUrnmHQB5CYmXhbjO0GtirV' \
-H 'Content-Type: application/json' \
-d '{"contenido":"SG9sYSBtdW5kbyEgc29tb3MgTGlmZUNoYWluIQo="}'
				
  • Ejemplo de respuesta exitosa:

{
    "txHashConfirmed": true,
    "_id": "5d6f2667e3e98401c24baa59",
    "fecha_certificacion": "2019-09-04T02:50:15.579Z",
    "nombre": "prueba.pdf",
    "fileHash": "b97df9574e60f159064c9b0fcf40565110f0225d4004aedb2b007d5d79d2d5d8",
    "url": "https://s3.amazonaws.com/pesoxpesobucket/documentos/certificados/5ceb04712f762724b6d528d6/prueba.pdf",
    "emisor": {
        "_id": "5ceb04712f762724b6d528d6",
        "nombre": "Alejandro"
    },
    "onModelEmisor": "Usuario",
    "createdAt": "2019-09-04T02:50:15.908Z",
    "updatedAt": "2019-09-04T02:50:49.881Z",
    "__v": 0,
    "txHash": "0x3696296895bb660d4fc32ad44876ad158c0d1823fe977b8a17a5f91e0eabac17"
}
				

Validar hash de transacción de blockchain

Esta función no válida el contenido de un documento, si no una firma regresada por Blockchain al momento de certificar un archivo. Si la certificación fue emitida por medio de LifeChain, regresará el JSON del documento, en caso contrario, el documento no será encontrado.

  • Endpoint: https://api.lifechain.mx/documentos/tx-hash/*hash de transaccion*
  • Verbo HTTP: GET
  • Ejemplo de petición:

curl 'https://api.lifechain.mx/documentos/tx-hash/0x56af9e0049477ac5e0d6f348edb877164f34b765f5225ac539791a85eb9cd04d' \
-H 'apikey: G8Jx0p0iYS.KpZYXHqChmEG58Lg9KpCD1O9CN0SY7oUrnmHQB5CYmXhbjO0GtirV'
				

Otros productos

Es posible que quieras conocer la documentación de APIs de nuestos otros productos, te los dejamos por aquí: