Skip to main content

Validación de Tokens

Este endpoint permite validar un token a partir de un documento o dato. El API devolverá si el token aún es válido, si ha sido alterado o modificado posterior a su emisión.


Endpoint

POST /api/public-inmutable/validation

Headers

HeaderTipoRequeridoDescripción
SecretstringClave secreta de la aplicación.
ApplicationIdstringIdentificador único de la aplicación.

Body (multipart/form-data)

ParámetroTipoRequeridoDescripción
valuefile or stringNoDocumento o valor que se desea validar.
transactionHashfileNoID de la Transacción que se desea validar

Respuesta Esperada

{
"_id": "678925a62f2c22dc2a646360",
"transactionHash": "0xb886fa2daab541930128c09f4283b933d7917d71e339d20ca3258df59d34419b",
"result": "success",
"tokenId": {
"_id": "677c35e9646cb9c88ba15b45",
"companyId": {
"companyName": "Inmutable Guatemala",
"companyEmail": "contacto@inmutable.com.gt",
"companyPhone": "+502 2410-9000"
},
"deployedAt": "2025-01-06T19:58:39.065Z"
},
"dateTime": "2025-01-16T15:28:38.779Z"
}

Errores en la API

La API puede devolver diferentes errores dependiendo de la situación. A continuación, se detallan los posibles códigos de error, sus significados, y ejemplos de las respuestas JSON.


Tabla de Resumen de Errores

Código HTTPMensajeDescripción
401UnauthorizedLas credenciales son incorrectas o faltan en la solicitud.
400Validation ErrorLa solicitud contiene datos inválidos o faltantes.
500Internal Server ErrorError inesperado en el servidor.
404No se ha encontradoNo se ha encontrado la transacción

Detalles de Respuesta para Errores

1. Error 401 - Unauthorized

Este error ocurre cuando no se incluyen los headers necesarios o cuando las credenciales son incorrectas.

2. Error 400 - Errores en la validación del Token

{
"transactionHash": "0xb886fa2daab541930128c09f4283b933d7917d71e339d20ca3258df59d34419b",
"result": "failed",
"companyId": "676f108c06b64404dd2d03d8",
"tokenId": "677c35e9646cb9c88ba15b45",
"failureReason": "invalidHash",
"failureDetail": "The document or value being sent does not belong to the associated transaction."
}

Tabla de Resumen de Errores del Token

Código HTTPfailureReasonfailureDetail
400isActiveThe token is no longer active.
400expirationDateThe validity period of the token has expired.
400invalidFormatThe associated token type is a JSON and the value sent for validation does not comply with the format.
400invalidHashThe document or value being sent does not belong to the associated transaction.
400validateTokenThe token is no longer valid or has been used previously.

3. Error 404 - Errores validación de datos

{
"statusCode": 404,
"message": "The transaction being sent to query does not exist."
}

**4. Error 500 - Internal Server Error **

{
"result": "error",
"source": "user",
"companyId": "676f108c06b64404dd2d03d8",
"errorDetails": "Returned error: ",
"_id": "6789273195f012212d0600c5",
"dateTime": "2025-01-16T15:35:13.343Z"
}

Ejemplos de Código

Shell

  curl --request POST \
--url https://api-dev.inmutable.app/api/public-inmutable/validation \
--header 'Secret: <Your-Secret-Key>' \
--header 'ApplicationId: <Your-Application-Id>' \
--form 'value=@"/path/to/file.pdf"' \


Node.js

const FormData = require('form-data');
const axios = require('axios');
const fs = require('fs');

const formData = new FormData();
formData.append('value', fs.createReadStream('/path/to/file.pdf'));

axios.post('https://api-dev.inmutable.app/api/public-inmutable/validation', formData, {
headers: {
...formData.getHeaders(),
Secret: '<Your-Secret-Key>',
ApplicationId: '<Your-Application-Id>',
},
})
.then(response => console.log(response.data))
.catch(error => console.error(error));

Python

import requests

url = 'https://api-dev.inmutable.app/api/public-inmutable/validation'
files = {'value': open('/path/to/file.pdf', 'rb')}

headers = {
'Secret': '<Your-Secret-Key>',
'ApplicationId': '<Your-Application-Id>',
}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())

C#

using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

var client = new HttpClient();
var formData = new MultipartFormDataContent();

formData.Add(new ByteArrayContent(await File.ReadAllBytesAsync("/path/to/file.pdf")), "value", "file.pdf");

client.DefaultRequestHeaders.Add("Secret", "<Your-Secret-Key>");
client.DefaultRequestHeaders.Add("ApplicationId", "<Your-Application-Id>");

var response = await client.PostAsync("https://api-dev.inmutable.app/api/public-inmutable/validation", formData);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);


Notas

  • Asegúrate de que el archivo cargado sea válido.
  • Los metadatos deben estar en formato JSON o string plano.