SmartCheck es una funcionalidad de Code Contract que te permite generar evidencias digitales únicas, seguras e inalterables en cuestión de segundos y a un costo accesible.
Entre sus aplicaciones, una de las más habituales es la certificación de documentos e información en Odoo. A continuación, detallamos cómo podrás realizar estos registros de manera sencilla.
Paso 1: Obtener el token de autenticación
Para utilizar la API de SmartCheck, primero debes autenticarte mediante una solicitud POST para obtener un Token JWT.
Petición de autenticación (HTTP Request)
POST /login HTTP/1.1
Host: api.codecontract.io
Content-Type: application/json
{
"email": "[email protected]",
"password": "tu_contraseña"
}
Respuesta esperada
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
Importante:
✔️ El token devuelto debe almacenarse y enviarse en cada petición posterior como Bearer Token en la cabecera de autorización.
✔️ Si Odoo usa OAuth para autenticarse, deberás obtener primero un token OAuth y enviarlo a SmartCheck.
Paso 2: Certificar documentos y/o información desde Odoo con SmartCheck
Una vez autenticado, puedes enviar documentos y/o información desde Odoo para certificarlos en la blockchain.
1️⃣ Obtener el contenido del documento en Odoo
Ejemplo en Python (Odoo API):
import xmlrpc.client
URL = "https://tu-servidor-odoo.com"
DB = "nombre_de_base_de_datos"
USERNAME = "[email protected]"
PASSWORD = "tu_contraseña"
common = xmlrpc.client.ServerProxy(f'{URL}/xmlrpc/2/common')
uid = common.authenticate(DB, USERNAME, PASSWORD, {})
models = xmlrpc.client.ServerProxy(f'{URL}/xmlrpc/2/object')
def get_document_content(document_id):
""" Obtiene el contenido de un documento en Odoo """
document = models.execute_kw(DB, uid, PASSWORD, 'ir.attachment', 'read', [document_id], {'fields': ['datas']})
return document[0]['datas'] if document else None2️⃣ Enviar el documento a SmartCheck para certificación
import requests
import base64
def certify_document(document_content):
""" Envía el contenido del documento a SmartCheck """
url = "https://api.codecontract.io/smartcheck/createTreeAndRegisterMerkleRoot"
headers = {
"Authorization": "Bearer TU_TOKEN",
"Content-Type": "application/json"
}
payload = {
"data": [document_content]
}
response = requests.post(url, json=payload, headers=headers)
return response.json()
# Obtener documento desde Odoo y certificarlo
document_content = get_document_content(123) # ID del documento en Odoo
certification_response = certify_document(document_content)
print("Certificación realizada:", certification_response)
Respuesta esperada:
{
"merkleRoot": "abc123...",
"transactionId": "tx123...",
"status": "success"
}
✔️ merkleRoot: Raíz de Merkle generada a partir del contenido del documento y/o información.
✔️ transactionId: ID de la transacción en la blockchain.
✔️ status: Indica si la certificación fue exitosa.
Paso 3: Verificar un documento certificado
Si necesitas verificar que un documento ya ha sido certificado, puedes consultar la prueba en SmartCheck.
Petición para obtener detalles de la certificación
GET /smartcheck/reportsProofDetail?reportId=tu_report_id HTTP/1.1
Host: api.codecontract.io
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Respuesta esperada:
{
"reportId": "tu_report_id",
"merkleRoot": "abc123...",
"data": [
"documento certificado"
],
"status": "verified"
}
Resumen
✔️ Paso 1: Obtén el Token JWT mediante autenticación con Odoo.
✔️ Paso 2: Usa la API de Odoo para recuperar el contenido de un documento y/o información.
✔️ Paso 3: Envía el contenido del documento a SmartCheck para certificarlo en blockchain.
✔️ Paso 4: Verifica la certificación cuando sea necesario.
Si necesitas más información o soporte, contacta con el equipo de Code Contract. 🚀
