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
Header | Tipo | Requerido | Descripción |
---|---|---|---|
Secret | string | Sí | Clave secreta de la aplicación. |
ApplicationId | string | Sí | Identificador único de la aplicación. |
Body (multipart/form-data)
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
value | file or string | No | Documento o valor que se desea validar. |
transactionHash | file | No | ID 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 HTTP | Mensaje | Descripción |
---|---|---|
401 | Unauthorized | Las credenciales son incorrectas o faltan en la solicitud. |
400 | Validation Error | La solicitud contiene datos inválidos o faltantes. |
500 | Internal Server Error | Error inesperado en el servidor. |
404 | No se ha encontrado | No 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 HTTP | failureReason | failureDetail |
---|---|---|
400 | isActive | The token is no longer active. |
400 | expirationDate | The validity period of the token has expired. |
400 | invalidFormat | The associated token type is a JSON and the value sent for validation does not comply with the format. |
400 | invalidHash | The document or value being sent does not belong to the associated transaction. |
400 | validateToken | The 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.