Esta guía describe los pasos necesarios para extraer datos de las escrituras utilizando el API de Trébol. Siguiendo estas instrucciones, podrás subir documentos, recibir notificaciones y procesar los datos extraídos en formato JSON.

1. Subir los documentos

Para comenzar el proceso de extracción, debes subir los documentos necesarios mediante el endpoint de creación de verificaciones. Nota: Asegúrate de leer la documentación del endpoint específico para crear una verificación.

Envíanos el siguiente JSON a nuestro endpoint de creación de verificaciones:

{
  "tag": "tu uuid de este cliente o verificación",
  "country": "mx",
  "items": [
    {
      "type": "generic",
      "options": {
        "file_url": "https://www.ejemplo.com/acta-constitutiva.pdf",
        "item_type_guide": "es_cv" 
      }
    }
  ]
}
item_type_guide es opcional y puede usarse para especificar el tipo de documento.

2. Esperar la notificación

Después de subir los documentos, el sistema procesará los datos. Una vez que la extracción esté completa, recibirás una notificación en el webhook configurado previamente en tu cuenta.

Ejemplo de payload del webhook recibido:

{
  "tag": "tu uuid de este cliente o verificación",
  "status": "completed"
}

Configura tus notificaciones de webhook desde el panel de control de Trébol o mediante el endpoint correspondiente.

3. Leer el JSON de respuesta

Tras recibir la notificación, puedes consultar los datos extraídos en el endpoint de resultados de la verificación. Este es un ejemplo de los datos que recibirás:

{
  "notary": {
    "name": "Juan Pérez López",
    "notary_number": 25,
    "state": "Ciudad de México",
    "date": "2025-01-06"
  },
  "property": {
    "location": {
      "address": "Calle Reforma 123, Colonia Centro, Ciudad de México, CDMX",
      "postal_code": "06000",
      "state": "Ciudad de México"
    },
    "area": {
      "value": 150,
      "unit": "square_meters"
    },
    "value": {
      "amount": 3500000,
      "currency": "MXN"
    }
  },
  "buyer": {
    "name": "Ana María González",
    "rfc": "GONA800101HDF",
    "address": "Calle Juárez 456, Colonia Roma, Ciudad de México, CDMX"
  },
  "seller": {
    "name": "Carlos Alberto Torres",
    "rfc": "TORC750202MDF",
    "address": "Av. Insurgentes 789, Colonia Condesa, Ciudad de México, CDMX"
  }
}

4. Procesar el JSON de la escritura en tu proceso

Con los datos extraídos disponibles en el JSON de respuesta, puedes integrarlos en tus sistemas o exportarlos a un archivo Excel. Aquí hay un ejemplo en Python para lograrlo:

Ejemplo para pasar de PDF a Excel

import pandas as pd

# Datos JSON (sustituir por la respuesta real del API)
data = {
    "notary": {
        "name": "Juan Pérez López",
        "notary_number": 25,
        "state": "Ciudad de México",
        "date": "2025-01-06"
    },
    "property": {
        "location": {
            "address": "Calle Reforma 123, Colonia Centro, Ciudad de México, CDMX",
            "postal_code": "06000",
            "state": "Ciudad de México"
        },
        "area": {
            "value": 150,
            "unit": "square_meters"
        },
        "value": {
            "amount": 3500000,
            "currency": "MXN"
        }
    },
    "buyer": {
        "name": "Ana María González",
        "rfc": "GONA800101HDF",
        "address": "Calle Juárez 456, Colonia Roma, Ciudad de México, CDMX"
    },
    "seller": {
        "name": "Carlos Alberto Torres",
        "rfc": "TORC750202MDF",
        "address": "Av. Insurgentes 789, Colonia Condesa, Ciudad de México, CDMX"
    }
}

# Convertir el JSON a DataFrames
dataframes = {
    "Notary": pd.DataFrame([data["notary"]]),
    "Property": pd.DataFrame([{
        "address": data["property"]["location"]["address"],
        "postal_code": data["property"]["location"]["postal_code"],
        "state": data["property"]["location"]["state"],
        "area": f'{data["property"]["area"]["value"]} {data["property"]["area"]["unit"]}',
        "value": f'{data["property"]["value"]["amount"]} {data["property"]["value"]["currency"]}'
    }]),
    "Buyer": pd.DataFrame([data["buyer"]]),
    "Seller": pd.DataFrame([data["seller"]])
}

# Exportar a un archivo Excel
excel_path = "property_sale.xlsx"
with pd.ExcelWriter(excel_path, engine="openpyxl") as writer:
    for sheet_name, df in dataframes.items():
        df.to_excel(writer, index=False, sheet_name=sheet_name)

print(f"Datos exportados a {excel_path}")