Skip to main content

Respuestas por tipo de ítem

Este documento describe la estructura de respuesta del API para cada item_type. Úsalo para validar contratos y mapear las respuestas.

Estructura base de un ítem en las respuestas

A nivel superior, todos los ítems comparten la misma estructura.
{
  "id": 123,
  "item_order": 1,
  "item_status": "pending|needs-review|complete|error",
  "item_type": "<item_code>",
  "item_internal_status": "...",
  "item_error": "password_protected_pdf|get_input_file_info_failed",
  "item_value": {
    /* según el item_type */
  },
  "item_options": {
    "upload_url": "https://...",
    "item_type_guide": "...",
    "item_label": "...",
    "is_optional": false
  },
  "original_file_url": "https://..."
}
Nota: item_type es el código del ítem (por ejemplo, ac_mx, csf_mx, siger, ubos). El campo item_value usa snake_case y su estructura depende del item_type.
item_error: Campo opcional que indica errores públicos relacionados con el procesamiento del ítem. Valores permitidos:
  • password_protected_pdf: El PDF subido está protegido con contraseña y no puede ser procesado.
  • get_input_file_info_failed: Falló la obtención de información del archivo de entrada.

Índice rápido

  • Documentos México: ac_mx, aa_mx, fme_mx, pw_mx, csf_mx, person_id, proof_address, bank_statement, curp_item
  • Consultas México: siger, public_sat_signatures
  • Documentos Colombia: sc_co, rut_co
  • Consultas Colombia: rues, public_rut_co, public_address_cc_co, cc_co_ops
  • Widgets: ubos, forms
  • Integraciones: aml_validation, signatory_validation
  • Otros: document, doc_classification, public_sat_signatures, unknown, generic, error

México

ac_mx — Acta constitutiva

{
  "item_type": "ac_mx",
  "item_value": {
    "acta_number": "...",
    "acta_date": "2024-01-01",
    "acta_city": "...",
    "acta_state": "...",
    "acta_type": "constitutiva|asamblea|fme|power|...",
    "notary_name": "...",
    "notary_number": "...",
    "business_name": "...",
    "business_name_event": "...",
    "business_type": "...",
    "business_type_event": "...",
    "business_tax_id": "...",
    "business_tax_id_event": "...",
    "business_duration": "-1(si es indefinido)|99(años)",
    "folio_date": "2024-01-01",
    "folio_number": "...",
    "folio_acta_number": "...",
    "folio_name": "...",
    "folio_inscription_date": "2024-01-01",
    "capital_fixed_value": 0,
    "capital_fixed_shares": 0,
    "capital_fixed_value_per_share": 0,
    "capital_fixed_value_currency": "MXN",
    "capital_variable_value": 0,
    "capital_variable_shares": 0,
    "capital_variable_value_per_share": 0,
    "capital_variable_value_currency": "MXN",
    "capital_total_value": 0,
    "capital_total_shares": 0,
    "capital_total_value_currency": "MXN",
    "shaholders_information_source": "...",
    "shareholders": [
      {
        "name": "...",
        "type": "business|person",
        "id_number": "...",
        "id_type": "rfc",
        "nationality": "...",
        "fixed_value": 0,
        "fixed_shares": 0,
        "variable_value": 0,
        "variable_shares": 0,
        "total_value": 0,
        "total_shares": 0,
        "currency": "MXN"
      }
    ],
    "signatories": [
      {
        "name": "...",
        "type": "business|person",
        "id_number": "...",
        "id_type": "rfc|passport|curp",
        "roles": [
          {
            "id": "uuid",
            "role_name": "administrador unico|comisario|presidente|secretario|tesorero|vocal",
            "group_name": "executives|auditors|board_members|proxies",
            "event": "addition|removal|renewal|mentioned",
            "duration": 99,
            "necessary_match": false,
            "powers": [
              {
                "power_name": "administration|lawsuits_and_collections|assets_management|loans|bank_accounts|delegate",
                "duration": 99,
                "has_power": true,
                "signature_type": "individual|joint",
                "has_limits": false,
                "limits_description": "..."
              }
            ]
          }
        ]
      }
    ],
    "business_city_address": "...",
    "assembly_minute": {
      "eventos_empresa": {
        "duracion": 0,
        "domicilio": 0,
        "estatutos": {
          "duracion": 0,
          "domicilio": 0,
          "explicacion": "...",
          "objeto_social": 0,
          "tipo_sociedad": 0
          "denominacion_social": 0
        },
        "explicacion": "...",
        "objeto_social": 0,
        "tipo_sociedad": 0,
        "parrafos_duracion": [],
        "parrafos_domicilio": [],
        "denominacion_social": 0
      },
      "eventos_firmantes": {
        "firmantes": [],
        "explicacion": "..."
      },
      "eventos_vigilancia": {
        "explicacion": "...",
        "modificacion": 0
      },
      "eventos_accionistas": {
        "explicacion": "...",
        "lista_asistencia": 0,
        "modificacion_capital": 0,
        "compra_venta_acciones": 0
      },
      "eventos_administracion": {
        "adicion": 0,
        "remocion": 0,
        "explicacion": "...",
        "cambio_tipo_organo": 0,
        "renovacion_reeleccion": 0
      },
      "eventos_apoderados": {
        "explicacion": "...",
        "nombramiento_apoderados": 0,
        "remocion_apoderados": 0,
        "renovacion_apoderados": 0,
        "modificacion_apoderados": 0
      }
    }
  }
}
Información detallada sobre roles y firmantes:Para obtener información más detallada sobre la estructura de roles, poderes y firmantes, consulta la guía completa: Extraer Apoderados de Actas y Poderes

aa_mx — Asamblea

Misma estructura pública que ac_mx.

fme_mx — Folio mercantil electrónico

Misma estructura pública que ac_mx.

pw_mx — Poder notarial

Misma estructura pública que ac_mx.

csf_mx — Constancia de situación fiscal

{
  "item_type": "csf_mx",
  "item_value": {
    "document_date": "2024-01-01",
    "constancia_type": "business|individual",
    "tax_id_number": "...",
    "company_legal_name": "...",
    "society_type": "...",
    "registration_date": "2020-01-01",
    "registration_status": "...",
    "economic_activities_description_1": "...",
    "business_activities": [
      {
        "order": 1,
        "economic_activity": "...",
        "percentage": "...",
        "date": "2024-01-01"
      }
    ],
    "fiscal_obligations": [
      {
        "obligation_description": "...",
        "terms_description": "...",
        "start_date": "2024-01-01",
        "end_date": "2024-12-31"
      }
    ],
    "post_code_fiscal_address": "...",
    "street_type_fiscal_address": "...",
    "street_name_fiscal_address": "...",
    "external_number_fiscal_address": "...",
    "internal_number_fiscal_address": "...",
    "neighborhood_fiscal_address": "...",
    "district_fiscal_address": "...",
    "city_fiscal_address": "...",
    "state_fiscal_address": "...",
    "email_fiscal": "...",
    "land_line_code_fiscal": "...",
    "land_line_fiscal": "...",
    "person_rfc": "...",
    "person_curp": "...",
    "person_name": "...",
    "person_last_name_1": "...",
    "person_last_name_2": "...",
    "regime": "...",
    "qr_validated_at": "2024-01-01T00:00:00Z",
    "qr_validation_data": {
      "data": {
        "rfc": "ABC123456789",
        "curp": "PERE800101HDFXXX01",
        "al": "Miguel Hidalgo",
        "cp": "11560",
        "colonia": "Polanco",
        "regimen": "General de Ley Personas Morales",
        "fecha_de_alta": "2020-01-15",
        "numero_exterior": "123",
        "numero_interior": "A",
        "tipo_de_vialidad": "Avenida",
        "correo_electronico": "[email protected]",
        "entidad_federativa": "Ciudad de México",
        "regimen_de_capital": "Sociedad Anónima",
        "fecha_de_constitucion": "2015-03-20",
        "nombre_de_la_vialidad": "Reforma",
        "municipio_o_delegacion": "Miguel Hidalgo",
        "denominacion_o_razon_social": "EMPRESA EJEMPLO, S.A. DE C.V.",
        "situacion_del_contribuyente": "Activo",
        "fecha_de_inicio_de_operaciones": "2015-04-01",
        "fecha_del_ultimo_cambio_de_situacion": "2023-06-15",
        "nombre": "Juan Carlos",
        "apellido_paterno": "Pérez",
        "apellido_materno": "García"
      }
    },
    "qr_validation_result": "ACTIVO|INACTIVO|SUSPENDIDO|FAILED|INVALID_QR|INVALID_URL_FORMAT|null",
    "qr_validation_status": "processing|completed|null",
    "qr_validation_message": "Validation Succesfull.|Page returned invalid.|Page returned invalid format.|null",
    "qr_url": "..."
  }
}

person_id — Identificación oficial (persona)

{
  "item_type": "person_id",
  "item_value": {
    "names": "María Guadalupe",
    "id_number": "1234567890123456",
    "id_type": "ine_mx|passport|residence_mx",
    "issued_date": "2020-01-01",
    "due_date": "2030-01-01",
    "home_address": "Av. Insurgentes Sur 1234, Col. Del Valle, CDMX",
    "ine_validation_data": {
      "data": {
        "cic": "1234567890123456789",
        "numero_ocr": "123456789012345678",
        "ano_de_emision": "2020",
        "distrito_local": "Distrito 15",
        "ano_de_registro": "2020",
        "expiration_date": "2030-01-01",
        "clave_de_elector": "MARG80010115HDFXXX01",
        "distrito_federal": "Distrito Federal 15",
        "numero_de_emision": "123456",
        "fecha_de_actualizacion_de_la_informacion": "2020-01-01"
      }
    },
    "ine_validation_result": "valid_id|invalid_id|failed|error|missing_parameters|maximum_retries_reached|missing_validation_parameters",
    "ine_validation_message": "ID succesfully validated.|A problem occured trying to validate the INE information"
  }
}
Validación del INE
Para un item de tipo person_id, si su tipo es ine_mx, se realiza una validación del INE. Los datos de esta validación se encuentran dentro de item_value bajo la clave ine_validation_data. El estado de este proceso se puede identificar mediante dos claves: ine_validation_result y ine_validation_message. Estructura de ine_validation_data: El objeto ine_validation_data.data contiene la siguiente información extraída del INE:
  • cic (string): Clave de Identificación Ciudadana (CIC).
  • numero_ocr (string): Número OCR del documento.
  • ano_de_emision (string): Año de emisión del documento.
  • distrito_local (string): Distrito local electoral.
  • ano_de_registro (string): Año de registro del documento.
  • expiration_date (string): Fecha de expiración del documento.
  • clave_de_elector (string): Clave de elector.
  • distrito_federal (string): Distrito federal electoral.
  • numero_de_emision (string): Número de emisión del documento.
  • fecha_de_actualizacion_de_la_informacion (string): Fecha de actualización de la información.
Valores de ine_validation_result:
  • valid_id: Indica que la validación del INE fue exitosa.
  • invalid_id: Indica que el INE es inválido.
  • failed: Indica que la validación falló, lo cual puede ser temporal o debido a datos incorrectos.
  • error: Indica que ocurrió una excepción durante el proceso de validación.
  • missing_parameters: Indica que faltan parámetros específicos requeridos para la validación.
  • maximum_retries_reached: Indica que se alcanzó el número máximo de reintentos para la validación.
  • missing_validation_parameters: Indica que el item no puede ser validado debido a la configuración (por ejemplo, no es un INE).
Valores de ine_validation_message:
  • ID succesfully validated: Indica que la identificación fue validada exitosamente.
  • A problem occured trying to validate the INE information: Indica que ocurrió un problema durante el intento de validar la información del INE.
La validación del INE solo se realiza cuando el id_type del item person_id es ine_mx. Para otros tipos de identificación (como passport o residence_mx), estos campos no estarán presentes.

proof_address — Comprobante de domicilio

{
  "item_type": "proof_address",
  "item_value": {
    "provider": "CFE",
    "address": "Av. Reforma 456, Col. Juárez, CDMX",
    "entity_name": "EMPRESA EJEMPLO, S.A. DE C.V.",
    "document_date": "2024-01-01",
    "service_type": "energia_electrica|impuesto_predial|agua|telefono|gas_natural|contrato_de_arrendamiento|internet|cable|otros",
    "type": "business|person",
    "mx_address": {
      "tipo_vialidad": "Avenida",
      "nombre_vialidad": "Reforma",
      "numero_exterior": "456",
      "numero_interior": "Piso 3",
      "tipo_asentamiento": "Colonia",
      "nombre_asentamiento": "Juárez",
      "codigo_postal": "06600",
      "localidad": "Cuauhtémoc",
      "municipio_o_ente_territorial": "Cuauhtémoc",
      "entidad_federativa": "Ciudad de México",
      "pais": "MX"
    }
  }
}

bank_statement — Estado de cuenta bancario

{
  "item_type": "bank_statement",
  "item_value": {
    "address": "Av. Insurgentes Sur 789, Col. Del Valle, CDMX",
    "entity_name": "EMPRESA EJEMPLO, S.A. DE C.V.",
    "document_date": "2024-01-01",
    "type": "business|person",
    "banking_information": {
      "bank_name": "Banco de México",
      "bank_country": "MX",
      "clabe_number": "012180001234567890",
      "bank_account_number": "1234567890",
      "currency": "MXN",
      "rfc": "ABC123456789"
    }
  }
}

curp_item — Consulta/validación CURP

{
  "item_type": "curp_item",
  "item_value": {
    "curp": "XXXX######XXXXXX##",
    "curp_validated_at": "2024-01-01T00:00:00Z",
    "curp_validation_data": {
      "curp": "PERE800101HDFXXX01",
      "curp_status": "alta_normal"|"baja_por_defuncion"|"otro"|"no_encontrado",
      "names": "Juan Carlos",
      "gender": "H",
      "act_number": "123456",
      "birth_date": "1980-01-01",
      "birth_entity": "Hidalgo",
      "nationality": "Mexicana",
      "first_surname": "Pérez",
      "second_surname": "García",
      "register_entity": "Hidalgo",
      "evidentiary_document": "Acta de nacimiento",
      "register_municipality": "Pachuca",
      "curp_file": "https://curp.gob.mx/curp/consultaCurp.jsp"
    },
    "curp_validation_result": "curp_found"|"curp_not_found",
    "curp_validation_status": "valid"|"invalid",
    "curp_validation_message": "curp_found"|"curp_not_found"
  }
}
Información detallada sobre el tipo curp_item:curp_validation_data - Datos extraídos de la consulta CURP:
  • curp_status: Estado del CURP en el registro:
    • alta_normal: Persona activa en el registro
    • baja_por_defuncion: Persona fallecida
    • otro: Otros estados
    • no_encontrado: CURP no encontrado
curp_validation_result - Resultado de la validación:
  • curp_found: CURP encontrado y válido
  • curp_not_found: CURP no encontrado
curp_validation_status - Estado de la validación:
  • valid: Validación exitosa
  • invalid: Validación fallida

siger — SIGER (México)

{
  "item_type": "siger",
  "item_value": {
    "legal_name": "EMPRESA EJEMPLO, S.A. DE C.V.",
    "documents": [
      {
        "legal_name": "EMPRESA EJEMPLO, S.A. DE C.V.",
        "fme_number": "FME-2024-001234",
        "fme_status": "Activo",
        "acts": [
          {
            "pre_coded_form": "Constitución de Sociedad Anónima",
            "act": "Acta constitutiva",
            "nci": "NCI-2024-001234",
            "admission_date": "2024-01-01",
            "registration_date": "2024-01-02",
            "document_number": "DOC-2024-001234",
            "mode": "Electrónico",
            "document_url": "https://siger.gob.mx/documentos/acta-constitutiva.pdf",
            "act_details": {
              "acta_city": "Ciudad de México",
              "acta_date": "2024-01-01",
              "acta_state": "Ciudad de México",
              "acta_number": "ACTA-2024-001",
              "notary_number": "123",
              "notary_name": "Lic. María González",
              "business_name": "EMPRESA EJEMPLO, S.A. DE C.V.",
              "business_type": "Sociedad Anónima",
              "business_address": "Av. Reforma 123, Col. Juárez, CDMX",
              "business_address_state": "Ciudad de México",
              "business_address_city": "Cuauhtémoc",
              "business_duration": "99 años",
              "assembly_details": {
                "type": "Asamblea Constitutiva",
                "date": "2024-01-01",
                "general_type": "Ordinaria"
              },
              "assembly_agreement": "Constitución de sociedad anónima",
              "modifications": {}
            },
            "fme_assembly_minute_extractor": [
              {
                "event_group_name": "company_events",
                "explanation": "Se protocolizó la constitución de la sociedad.",
                "events": [
                  "incorporation_modification_corporate_name",
                  "incorporation_modification_company_type",
                  "incorporation_modification_duration",
                  "incorporation_modification_registered_address",
                  "incorporation_modification_corporate_purpose"
                ]
              },
              {
                "event_group_name": "shareholders_events",
                "explanation": "Se estableció la estructura accionaria inicial.",
                "events": [
                  "shareholders_addition",
                  "capital_modification"
                ]
              },
              {
                "event_group_name": "administration_events",
                "explanation": "Se designó el órgano de administración.",
                "events": [
                  "administration_addition",
                  "establishment_change_management_body_type"
                ]
              }
            ]
          }
        ],
        "business_purpose": "Comercio y servicios",
        "business_type": "Sociedad Anónima",
        "business_duration": "99 años",
        "federal_entity": "Ciudad de México",
        "office": "Oficina Central",
        "tax_id_number": "ABC123456789",
        "registration_date": "2024-01-01",
        "city": "Cuauhtémoc",
        "nationality": "Mexicana",
        "address": "Av. Reforma 123, Col. Juárez, CDMX",
        "shareholders": [
          {
            "name": "Juan Pérez García",
            "shares": 1000,
            "total": 1000,
            "value": 1000000
          }
        ],
        "scrapedAt": "2024-01-01T00:00:00Z"
      }
    ]
  }
}
Análisis automático de minutas (FME)
El campo fme_assembly_minute_extractor contiene el análisis automático mediante IA de los eventos relevantes identificados en cada acto. Este análisis intenta procesar todos los actos independientemente de la configuración de flags, pero tiene un límite de tiempo de 13 minutos por razones de seguridad y confiabilidad. Los actos se procesan en orden cronológico inverso (más recientes primero), asegurando que los documentos más relevantes se analicen primero. Estructura del campo: Cada acto incluye un array de grupos de eventos con la siguiente información:
  • event_group_name: Nombre del grupo de eventos (company_events, shareholders_events, administration_events, supervision_events, signatories_holders_events)
  • explanation: Descripción generada por IA sobre los eventos encontrados en el acto
  • events: Array de eventos identificados en el acto
Grupos de eventos analizados:
  1. company_events: Eventos relacionados con la empresa (nombre, tipo societario, duración, domicilio, objeto social)
  2. shareholders_events: Eventos de accionistas (adiciones, transferencias, modificaciones de capital)
  3. administration_events: Eventos de administración (cambios en órganos de administración)
  4. supervision_events: Eventos de vigilancia (cambios en órganos de vigilancia)
  5. signatories_holders_events: Eventos de firmantes (adiciones, remociones, modificaciones de poderes)
El análisis FME se almacena en el ítem SIGER para los actos procesados y está disponible para consulta incluso si no se crearon items de tipo acta automáticamente.
Límite de tiempo: El proceso de análisis FME tiene un límite de 13 minutos. Si hay muchos actos, algunos pueden no ser procesados. El sistema prioriza los actos más recientes para asegurar que los documentos más relevantes se analicen primero. Si se alcanza el límite, los datos procesados hasta ese momento se persisten.
Creación automática de items de tipo acta
Cuando el flag siger_data_extraction está activado, el sistema analiza los eventos extraídos y crea automáticamente items de tipo acta para aquellos actos que contienen eventos relevantes. Estos items aparecerán como items adicionales en la verificación con:
  • item_type: Puede ser ac_mx (acta constitutiva), aa_mx (acta de asamblea), o fme_mx (folio mercantil)
  • file_source_info: Contiene información sobre el acto de SIGER del que proviene el item
    • item_type: “siger”
    • item_id: ID del item SIGER fuente
Los items de tipo acta creados automáticamente desde SIGER pasan por el mismo flujo de extracción que los items subidos manualmente, por lo que incluirán toda la información extraída del documento (firmantes, accionistas, poderes, etc.).
Error en la consulta SIGER
Cuando el ítem siger tiene "item_internal_status": "siger_error", es porque se presentó algún error relacionado al mal funcionamiento de la página o comportamientos inesperados.
Si el item_internal_status es "siger_error", la consulta no pudo completarse debido a problemas técnicos con el portal SIGER. En estos casos, el item_value puede estar vacío o incompleto.

siger_shareholders — Empresas relacionadas por accionistas (México)

Este ítem permite identificar empresas en las que participan los accionistas de la empresa consultada.
{
  "item_type": "siger_shareholders",
  "item_value": {
    "shareholders": [
      {
        "name": "Juan",
        "paternal_surname": "Pérez",
        "maternal_surname": "García",
        "type": "individual"
      },
      {
        "name": "EMPRESA ACCIONISTA",
        "paternal_surname": "S.A. DE C.V.",
        "maternal_surname": "",
        "type": "company"
      }
    ],
    "data": [
      {
        "shareholder": {
          "name": "Juan",
          "paternal_surname": "Pérez",
          "maternal_surname": "García",
          "type": "individual"
        },
        "related_companies": [
          {
            "name": "EMPRESA RELACIONADA UNO, S.A. DE C.V.",
            "fme": "123456",
            "type": "company"
          },
          {
            "name": "EMPRESA RELACIONADA DOS, S.A. DE C.V.",
            "fme": "789012",
            "type": "company"
          }
        ]
      },
      {
        "shareholder": {
          "name": "EMPRESA ACCIONISTA",
          "paternal_surname": "S.A. DE C.V.",
          "maternal_surname": "",
          "type": "company"
        },
        "related_companies": [
          {
            "name": "SUBSIDIARIA EJEMPLO, S.A. DE C.V.",
            "fme": "345678",
            "type": "company"
          }
        ]
      }
    ],
    "scraped_at": "2024-01-15T10:30:00.000Z"
  }
}
Campos principales:
  • shareholders: Lista de accionistas de la empresa consultada
    • name: Nombre del accionista
    • paternal_surname: Apellido paterno (para personas físicas) o continuación del nombre (para empresas)
    • maternal_surname: Apellido materno (solo para personas físicas)
    • type: Tipo de accionista (“individual” o “company”)
  • data: Detalle de empresas relacionadas por cada accionista
    • shareholder: Información del accionista
    • related_companies: Array de empresas donde participa el accionista
      • name: Nombre de la empresa relacionada
      • fme: Folio mercantil electrónico de la empresa
      • type: Tipo de entidad
  • scraped_at: Fecha y hora en que se realizó la consulta
Este ítem es útil para análisis de beneficiarios finales (UBOs) y para identificar estructuras corporativas relacionadas en procesos de due diligence.

public_sat_signatures — SAT firmas/certificados (México)

{
  "item_type": "public_sat_signatures",
  "item_value": {
    "tax_ids": ["RFC1", "RFC2"],
    "data": {
      "RFC1": {
        /* certificado SAT serializado */
      },
      "RFC2": {
        /* certificado SAT serializado */
      }
    }
  }
}

Colombia

sc_co — Composición accionaria

{
  "item_type": "sc_co",
  "item_value": {
    "business_name": "EMPRESA EJEMPLO COLOMBIA S.A.S.",
    "document_date": "2024-01-01",
    "business_tax_id": "900123456-7",
    "shareholder_people_check": "Completado",
    "shareholders": [
      {
        "name": "Carlos Andrés Rodríguez López",
        "id_type": "CC|CEDULA",
        "id_number": "12345678",
        "percent_ownership": 50
      }
    ],
    "signatories": [
      {
        "name": "Carlos Andrés Rodríguez López",
        "id_type": "CC|CEDULA",
        "id_number": "12345678",
        "role": "Representante Legal"
      }
    ],
    "documents": [
      {
        "label": "Certificado de Cámara de Comercio",
        "url": "https://www.rues.org.co/certificado.pdf"
      }
    ]
  }
}

rut_co — Registro Único Tributario

{
  "item_type": "rut_co",
  "item_value": {
    "nit": "900123456",
    "verification_digit": "7",
    "business_name": "EMPRESA EJEMPLO COLOMBIA S.A.S.",
    "country": "Colombia",
    "department": "Cundinamarca",
    "city": "Bogotá",
    "main_address": "Calle 123 # 45-67, Oficina 901",
    "email_address": "[email protected]",
    "phone_1": "+57 1 2345678",
    "phone_2": "+57 300 1234567",
    "constitution_date": "2020-01-01",
    "registration_date": "2020-01-02",
    "merchant_number": "123456789",
    "activities": [
      { "code": "6201", "description": "Programación de computadoras" }
    ],
    "representatives": [
      {
        "type": "Representante Legal",
        "start_date": "2020-01-01",
        "id_type": "CC",
        "id_number": "12345678",
        "names": "Carlos Andrés Rodríguez López"
      }
    ],
    "responsibilities": [{ "code": 12, "name": "Responsable de IVA" }]
  }
}

rues — Consulta RUES

{
  "item_type": "rues",
  "item_value": {
    "tax_id_number": "900123456-7",
    "tax_id_verification_code": "7",
    "legal_name": "EMPRESA EJEMPLO COLOMBIA S.A.S.",
    "address": "Calle 123 # 45-67, Oficina 901, Bogotá, Cundinamarca",
    "country_registration": "Colombia",
    "state_registration": "Cundinamarca",
    "city_registration": "Bogotá",
    "registration_category": "Sociedad por Acciones Simplificada",
    "registration_status": "Activo",
    "registration_city_chamber": "Cámara de Comercio de Bogotá",
    "registration_id": "CCB-2020-001234",
    "renewal_date": "2024-01-01",
    "registration_date": "2020-01-01",
    "registry_end_date": "2025-01-01",
    "last_update_date": "2024-06-01",
    "cancellation_date": null,
    "cancellation_motive": null,
    "society_type": "Sociedad por Acciones Simplificada",
    "organization_type": "Empresa",
    "business_activities": {},
    "signatory_powers": "Representante Legal",
    "signatories": {},
    "request_id": "RUES-2024-001234",
    "status": "Activo"
  }
}

public_rut_co — RUT fuente pública

{
  "item_type": "public_rut_co",
  "item_value": {
    "nit": "900123456",
    "verification_digit": "7",
    "business_name": "EMPRESA EJEMPLO COLOMBIA S.A.S.",
    "date": "2024-01-01",
    "status": "Activo",
    "message": "RUT válido y activo",
    "rut_validation_result": "valid"
  }
}

public_address_cc_co — Dirección pública Cámara de Comercio

{
  "item_type": "public_address_cc_co",
  "item_value": {
    "legal_name": "EMPRESA EJEMPLO COLOMBIA S.A.S.",
    "organization_type": "Sociedad por Acciones Simplificada",
    "legal_email": "[email protected]",
    "phone": "+57 1 2345678",
    "business_address": {
      "address": "Calle 123 # 45-67, Oficina 901",
      "city": "Bogotá",
      "state": "Cundinamarca",
      "country": "Colombia"
    },
    "request_id": "CC-2024-001234",
    "tax_id_number": "900123456-7"
  }
}

cc_co_ops — Certificado CC (ops)

{
  "item_type": "cc_co_ops",
  "item_value": {
    "tax_id_number": "900123456-7",
    "expedition_date": "2024-01-01",
    "legal_name": "EMPRESA EJEMPLO COLOMBIA S.A.S.",
    "organization_type": "Sociedad por Acciones Simplificada",
    "department": "Cundinamarca",
    "municipality": "Bogotá",
    "legal_email": "[email protected]",
    "phone": "+57 1 2345678",
    "corporate_purpose": "Desarrollo de software y servicios tecnológicos",
    "legal_address": {},
    "business_address": {},
    "equity": {},
    "board_members": {},
    "tax_auditors": {},
    "document_metadata": {},
    "extracted_data": {}
  }
}

Widgets

ubos — Beneficiarios finales

{
  "item_type": "ubos",
  "item_value": {
    "ubos": {
      "data": [
        {
          "currency": "MXN",
          "id_number": "12345678",
          "id_type": "INE",
          "name": "Ana María López Rodríguez",
          "email": "[email protected]",
          "type": "Accionista",
          "share_percentage": 25,
          "documents": [
            { "key": "documento-identidad.pdf", "bucket": "trebol-documents" }
          ],
          "upload_urls": [
            {
              "index": 0,
              "url": "https://s3.amazonaws.com/trebol-documents/documento-identidad.pdf"
            }
          ],
          "external_identities": {
            "curp": {
              "success": true,
              "message": "CURP validado exitosamente",
              "applicant_data": {
                "curp": "LORA800101MDFXXX01",
                "names": "Ana María",
                "gender": "M",
                "birth_date": "1980-01-01",
                "birth_entity": "Distrito Federal",
                "nationality": "Mexicana",
                "first_surname": "López",
                "second_surname": "Rodríguez",
                "evidentiary_document": "Acta de nacimiento"
              },
              "evidentiary_document_data": {
                "act_number": "123456",
                "registry_date": "1980-01-15",
                "register_entity": "Distrito Federal",
                "register_municipality": "Cuauhtémoc"
              },
              "curp_file": "https://curp.gob.mx/curp/consultaCurp.jsp"
            }
          },
          "shareholders": [
            /* estructura anidada de UBO */
          ],
          "aux": {}
        }
      ]
    }
  }
}

forms — Formularios de onboarding

{
  "item_type": "forms",
  "item_value": {
    "account_id": "acc_123456789",
    "form_schema": {},
    "ui_schema": {},
    "form_values": {},
    "aux": {}
  }
}

Integraciones

aml_validation

{
  "item_type": "aml_validation",
  "item_value": {
    "validation_provider": "compliance_check",
    "validation_data": [
      /* AMLItemValidationData[] */
    ]
  }
}

signatory_validation

{
  "item_type": "signatory_validation",
  "item_value": {
    "id_number": "1234567890123456",
    "id_type": "INE",
    "email": "[email protected]",
    "name": "Roberto Carlos Méndez Silva",
    "nationality": "Mexicana",
    "confirmation_date": "2024-01-01T00:00:00Z",
    "confirmation_ip_address": "192.168.1.100",
    "confirmation_check_boxes": {
      "data": [{ "text": "Acepto los términos y condiciones", "checked": true }]
    },
    "validation_date": "2024-01-01T00:00:00Z",
    "validation_result": "valid",
    "validation_name": "Roberto Carlos Méndez Silva",
    "validation_data": {
      "ocr": {
        "name": {
          "full_name": "Roberto Carlos Méndez Silva",
          "paternal_last_name": "Méndez",
          "maternal_last_name": "Silva"
        },
        "document_number": "1234567890123456"
      },
      "scores": { "overall": { "status": "passed", "value": 95 } }
    },
    "name_comparison_result": true
  }
}

Otros

document — Extractor de documentos (genérico)

Este ítem agrupa distintos extractores de documentos bajo un mismo item_type. La forma de la respuesta es:
{
  "item_type": "document",
  "item_value": {
    "type": "<document_type>",
    "payload": {
      /* estructura depende de <document_type> */
    }
  }
}
  • “type”: uno de los tipos soportados.
  • “payload”: objeto JSON con los datos extraídos. La estructura varía por tipo y corresponde a los esquemas JSON del AI Prompter.
Tipos soportados (type):
  • property_deed
  • lien_certificate
  • property_tax_receipt
  • payroll_receipt
  • camara_comercio_co_extractor
  • trust_contract_fideicomiso_extractor
  • union_documents_extractor
  • designacion_responsable_cumplimiento_extractor
  • registro_actividades_vulnerables_extractor
  • irs_ein_assignment_letter_extractor
  • certificate_of_incumbency_extractor
  • certificate_of_incorporation_extractor
  • fincen_msb_registration_extractor
Notas:
  • La estructura exacta de payload depende del type y se define en los esquemas del AI Prompter (archivo ai-prompter/src/utils/json_schemas.py).
  • La respuesta pública expone payload ya “normalizado” como JSON plano según el esquema correspondiente.
Estructuras por type
A continuación se documenta el payload esperado por cada type. Los ejemplos son esqueletos de referencia y pueden contener campos opcionales.
  • property_deed
{
  "type": "property_deed",
  "payload": {
    "deed_type": "...",
    "deed_description": {
      "deed_number": 0,
      "deed_date": "YYYY-MM-DD",
      "notary_number": 0,
      "notary_city": "...",
      "notary_state": "...",
      "notary_name": "..."
    },
    "property_description": {
      "description": "...",
      "address": {
        "street": "...",
        "exterior_number": "...",
        "interior_number": "...",
        "neighborhood": "...",
        "city": "...",
        "state": "...",
        "country": "...",
        "surface_value": 0,
        "surface_unit": "..."
      },
      "linders": [{ "orientation": "...", "meters": 0, "colindancy": "..." } ]
    },
    "owners_description": {
      "explanation": "...",
      "owners": [
        {
          "name": "...",
          "curp": null,
          "rfc": "...",
          "birth_date": "YYYY-MM-DD",
          "nationality": "...",
          "birth_place": "...",
          "civil_status": "...",
          "occupation": "...",
          "domicile": "..."
        }
      ]
    },
    "parts_description": [
      {
        "role": "...",
        "name": "...",
        "curp": "...",
        "rfc": "...",
        "birth_date": "YYYY-MM-DD",
        "nationality": "...",
        "birth_place": "...",
        "civil_status": "...",
        "occupation": "...",
        "domicile": "..."
      }
    ],
    "estado_juridico": {
      "resumen": "...",
      "derechos_reales": [
        { "tipo_derecho": "posesion|uso_y_disfrute|administracion|exclusion|disposicion|usufructo|servidumbre|derecho_superficie|hipoteca", 
        "descripcion": "..." }
      ]
    }
  }
}
  • lien_certificate
{
  "type": "lien_certificate",
  "payload": {
    "property_description": {
      "address": {
        "street": "...",
        "exterior_number": "...",
        "interior_number": "...",
        "neighborhood": "...",
        "city": "...",
        "state": "...",
        "country": "...",
        "surface": 0,
        "surface_unit": "..."
      },
      "linders": [{ "orientation": "...", "meters": 0, "colindancy": "..." }]
    },
    "owners_description": [
      { "name": "...",
        "curp": "...", 
        "rfc": "..." }
      ],
    "lien_description": {
      "certificate_date": "YYYY-MM-DD",
      "certificate_issuer": "...",
      "has_lien": true|false,
      "lien_explanation": "..."
    }
  }
}
  • property_tax_receipt
{
  "type": "property_tax_receipt",
  "payload": {
    "property_description": {
      "street": "...",
      "exterior_number": "...",
      "interior_number": "...",
      "neighborhood": "...",
      "city": "...",
      "state": "...",
      "country": "...",
      "terrain_surface": 0,
      "construction_surface": 0,
      "cadastral_value": 0
    },
    "receipt_description": {
      "issue_date": "YYYY-MM-DD",
      "expiration_date": "YYYY-MM-DD",
      "payment_period": "YYYY-MM",
      "folio": "...",
      "subtotal": 0,
      "discount": 0,
      "total": 0,
      "payment_date": "YYYY-MM-DD"
    },
    "payer_description": {
      "name": "...",
      "curp": "...",
      "rfc": "...",
      "domicile": "..."
    }
  }
}
  • camara_comercio_co_extractor
{
  "type": "camara_comercio_co_extractor",
  "payload": {
    "analisis_detallado": [],
    "representantes_legales": [
      {
        "name": "...",
        "role": "...",
        "identificacion": {
          "tipo": "cc_co|ce_co|nit_co|ti_co|pasaporte|otro",
          "numero": "..."
        },
        "limitaciones": []
      }
    ],
    "limitaciones_empresa": [],
    "facultades_empresa": {
      "obtener_creditos": { "tiene_poder": true, "limitaciones": [] },
      "dar_activos_en_garantia": { "tiene_poder": null, "limitaciones": [] },
      "obligarse_solidariamente": { "tiene_poder": false, "limitaciones": [] }
    }
  }
}
  • trust_contract_fideicomiso_extractor
{
  "type": "trust_contract_fideicomiso_extractor",
  "payload": {
    "contract_number": "...",
    "trust_name": "...",
    "trust_type": "administracion|garantia|inversion|fuente_pago|administracion_fuente_pago|otro",
    "constitution_date": "YYYY-MM-DD",
    "signature_date": "YYYY-MM-DD",
    "duration": "...",
    "trust_purpose": "...",
    "jurisdiction": "...",
    "signature_place": "...",
    "involved_parties": [
      {
        "roles": ["fiduciario|fideicomitente|fideicomisario|fideicomisario_primer_lugar|fideicomisario_segundo_lugar|administrador_primario|administrador_maestro|garante|otro"],
        "legal_name": "...",
        "alias": "...",
        "rfc": "...",
        "entity_type": "persona_fisica|persona_moral|entidad_extranjera|institucion_financiera|gobierno|otro",
        "nationality": "...",
        "legal_representative": "...",
        "address": {
          "street_number": "...",
          "neighborhood": "...",
          "municipality": "...",
          "state": "...",
          "postal_code": "...",
          "country": "...",
          "full_address": "..."
        },
        "contact_data": {
          "phone": "...",
          "email": ["..."],
          "contact_name": "..."
        },
        "constitution_data": {
          "constitution_date": "...",
          "notary_city": "...",
          "notary_number": "...",
          "public_deed": "...",
          "commercial_folio": "..."
        }
      }
    ],
    "financial_structure": {
      "main_currency": "MXN|USD|EUR|CAD|GBP|JPY|otra",
      "initial_contribution": {
        "amount": 0,
        "currency": "MXN|USD|EUR|CAD|GBP|JPY|otra",
        "descripcion": "..."
      },
      "trust_assets": "...",
      "credit_structure": [
        { "class": "A", "amount": 0, "currency": "MXN|USD|EUR|CAD|GBP|JPY|otra", "descripcion": "..." }
      ],
      "total_potential_amount": { "amount": 0, "currency": "MXN|USD|EUR|CAD|GBP|JPY|otra" },
      "trustee_fees": [{ "amount": 0, "currency": "MXN|USD|EUR|CAD|GBP|JPY|otra" }]
    },
    "related_contracts": [
      { "nombre": "...", "annex": "...", "descripcion": "..." }
    ],
    "guarantees": ["..."],
    "risk_indicators": {
      "foreign_entities": [],
      "tax_havens": [],
      "risk_terms": [],
      "complex_structures": [],
      "conflicts_of_interest": []
    },
    "financial_flows": {
      "bank_accounts": [],
      "fund_flow": "...",
      "payment_waterfall": "..."
    },
    "validations": {
      "inconsistent_dates": [],
      "inconsistent_amounts": [],
      "missing_information": [],
      "red_flags": []
    }
  }
}
  • union_documents_extractor
{
  "type": "union_documents_extractor",
  "payload": {
    "general_summary": "...",
    "executive_summary": {
      "total_documents": 0,
      "complete_documents": 0,
      "incomplete_documents": 0
    },
    "general_information": {
      "denominacion_social": "...",
      "entity_type": "Organizacion sindical|Sindicato nacional|Sindicato empresarial|Sindicato gremial|Federacion sindical|Confederacion sindical|Otro",
      "constitution_date": "YYYY-MM-DD",
      "registration_date": "YYYY-MM-DD",
      "registration_number": "...",
      "duration": 0,
      "address": "...",
      "main_activity": "...",
      "sources": [
        {
          "source_description": "...",
          "document_id": 1,
          "page": 1,
          "paragraph": 1,
          "clause": "..."
        }
      ]
    },
    "documents": [
      {
        "document_id": 1,
        "document_name": "...",
        "document_type": "Resolución de registro|Solicitud de registro|Acta de constitución|Acta de asamblea|Estatutos sociales|Modificación de directiva|Certificación de copias|Padrón de socios|Otro",
        "summary": "...",
        "completeness_analysis": {
          "justification": "...",
          "total_pages": 0,
          "found_pages": 0,
          "status": "Completo|Incompleto"
        },
        "extracted_data": {
          "general_information": [
            {
              "field": "...",
              "value": "...",
              "source": {
                "source_description": "...",
                "document_id": 1,
                "page": 1,
                "paragraph": 1,
                "clause": "..."
              }
            }
          ],
          "relevant_appointments": [
            {
              "name": "...",
              "position": "Secretario General|Secretario de Organización|Secretario de Actas|Secretario del Interior|Secretario de Conflictos y Trabajo|Secretario Tesorero|Secretario de Prensa|Presidente|Vicepresidente|Tesorero|Vocal|Representante Legal|Apoderado|Otro",
              "identification_type": "RFC|CURP|NSS|Pasaporte|Cédula profesional|Otro",
              "identification_number": "...",
              "nationality": "...",
              "address": "...",
              "powers": "...",
              "position_validity": "...",
              "source": {}
            }
          ],
          "social_statutes": {
            "mentioned": true|false,
            "included": true|false,
            "summary": "...",
            "source": {}
          }
        }
      }
    ]
  }
}
  • designacion_responsable_cumplimiento_extractor
{
  "type": "designacion_responsable_cumplimiento_extractor",
  "payload": {
    "document_type": "DESIGNACIÓN DE RESPONSABLE DE CUMPLIMIENTO",
    "folio_number": null,
    "document_issue_date": "2021-07-27",
    "designated_individual": {
      "rfc": null,
      "curp": null,
      "first_name": "MARIA",
      "paternal_surname": "GARCIA",
      "maternal_surname": "LOPEZ",
      "full_name": "LIC. MARIA GARCIA LOPEZ",
      "date_of_birth_from_rfc_inference": null,
      "date_of_birth_on_document": null,
      "country_of_birth": null,
      "nationality": null,
      "contact_information": {
        "lada_code": null,
        "phone_number": null,
        "mobile_number": null,
        "email": null
      },
      "address": {
        "postal_code": null,
        "federal_entity": null,
        "municipality_delegation": null,
        "neighborhood": null,
        "locality": null,
        "street_type": null,
        "street_name": null,
        "other_references": null
      }
    },
    "designating_entity": {
      "rfc": null,
      "name": "TREBOL Servicios Petroleros S. A. de C. V.",
      "designation_status": "ACEPTADO",
      "status_date": "2021-07-27"
    },
    "red_flags": [
      "Información personal sensible faltante para los responsables designados: RFC, CURP, fecha de nacimiento, país de nacimiento, nacionalidad, información de contacto y domicilio.",
      "RFC de la entidad designante no presente en el documento."
    ],
    "others": {
      "designated_individual": [
        {
          "rfc": null,
          "curp": null,
          "first_name": "JUAN CARLOS",
          "paternal_surname": "RODRIGUEZ",
          "maternal_surname": "MORALES",
          "full_name": "LIC. JUAN CARLOS RODRIGUEZ MORALES",
          "date_of_birth_from_rfc_inference": null,
          "date_of_birth_on_document": null,
          "country_of_birth": null,
          "nationality": null,
          "contact_information": {
            "lada_code": null,
            "phone_number": null,
            "mobile_number": null,
            "email": null
          },
          "address": {
            "postal_code": null,
            "federal_entity": null,
            "municipality_delegation": null,
            "neighborhood": null,
            "locality": null,
            "street_type": null,
            "street_name": null,
            "other_references": null
          }
        }
      ]
    }
  }
}
  • registro_actividades_vulnerables_extractor
{
  "type": "registro_actividades_vulnerables_extractor",
  "payload": {
    "document_type": "...",
    "folio_number": "...",
    "document_date": "YYYY-MM-DD",
    "extracted_information": {
      "entity_details": {
        "legal_name": "...",
        "rfc": "...",
        "incorporation_date": "YYYY-MM-DD",
        "country_of_incorporation": "...",
        "nationality_of_entity": "..."
      },
      "contact_information": [
        {
          "area_code": "...",
          "phone_number": "...",
          "mobile_number": "...",
          "email": "..."
        }
      ],
      "vulnerable_activity_details": [
        {
          "activity_code": "...",
          "activity_description": "...",
          "first_operation_date": "YYYY-MM-DD"
        }
      ],
      "reporting_details": [
        {
          "reporting_type": "...",
          "reporting_deadline": "...",
          "legal_basis_for_reporting": "...",
          "registration_date_for_activity": "YYYY-MM-DD"
        }
      ]
    }
  }
}
  • irs_ein_assignment_letter_extractor
{
  "type": "irs_ein_assignment_letter_extractor",
  "payload": {
    "document_type": "...",
    "issuing_authority": {
      "name": "...",
      "department": "...",
      "country": "..."
    },
    "notice_date": "YYYY-MM-DD",
    "entity_details": {
      "legal_name": "...",
      "employer_identification_number_ein": "...",
      "irs_address": {
        "address": "...",
        "street": "...",
        "city": "...",
        "state_province": "...",
        "zip_code": "...",
        "country": "..."
      },
      "name_control": "...",
      "associated_form": "..."
    }
  }
}
  • certificate_of_incumbency_extractor
{
  "type": "certificate_of_incumbency_extractor",
  "payload": {
    "document_type": "...",
    "issuing_entity": "...",
    "certificate_date": "YYYY-MM-DD",
    "corporation_details": {
      "legal_name": "...",
      "registered_office_address": {
        "street": "...",
        "city": "...",
        "state": "...",
        "zip_code": "...",
        "country": "..."
      },
      "incorporation_state": "...",
      "incorporation_date": "YYYY-MM-DD",
      "file_number": "...",
      "legal_standing": "...",
      "authorized_shares": { "maximum": 0, "par_value": 0, "currency": "..." }
    },
    "current_directors": [
      { "name": "...", "appointment_date": "YYYY-MM-DD", "title": "..." }
    ],
    "current_shareholders": [
      {
        "name": "...",
        "shares_held": 0,
        "percentage_ownership": 0,
        "entity_type": "..."
      }
    ],
    "authorized_signatory": {
      "signature_present": true,
      "signatory_name": "...",
      "signatory_title": "...",
      "printed_name_below_signature": "..."
    },
    "language_versions": ["en", "es"]
  }
}
  • certificate_of_incorporation_extractor
{
  "type": "certificate_of_incorporation_extractor",
  "payload": {
    "document_type": "...",
    "issuing_authority": {
      "name": "...",
      "state": "...",
      "country": "...",
      "certifying_officer": "..."
    },
    "entity_details": {
      "legal_name": "...",
      "incorporation_date": "YYYY-MM-DD",
      "file_number": "...",
      "internal_reference_sr": "...",
      "business_purpose": "...",
      "authorized_stock": {
        "total_shares": 0,
        "share_class": "...",
        "par_value_per_share": 0,
        "currency": "..."
      }
    },
    "registered_agent": {
      "name": "...",
      "address": {
        "street": "...",
        "city": "...",
        "county": "...",
        "state": "...",
        "zip_code": "...",
        "country": "..."
      }
    },
    "incorporator": {
      "name": "...",
      "organization": "...",
      "address": {
        "street": "...",
        "city": "...",
        "county": "...",
        "state": "...",
        "zip_code": "...",
        "country": "..."
      },
      "signature_date": "YYYY-MM-DD"
    },
    "certification_details": {
      "authentication_number": "...",
      "certification_date": "YYYY-MM-DD"
    },
    "language_versions": ["en", "es"]
  }
}
  • fincen_msb_registration_extractor
{
  "type": "fincen_msb_registration_extractor",
  "payload": {
    "document_type": "...",
    "issuing_authority": {
      "name": "...",
      "department": "...",
      "country": "..."
    },
    "transcript_date": "YYYY-MM-DD",
    "registration_details": {
      "msb_registration_number": "...",
      "registration_type": "...",
      "legal_name": "...",
      "dba_name": "...",
      "address": {
        "street": "...",
        "city": "...",
        "state": "...",
        "zip_code": "...",
        "country": "..."
      },
      "msb_activities": ["..."],
      "states_of_msb_activities": ["..."],
      "number_of_branches": 0,
      "authorized_signature_date": "YYYY-MM-DD",
      "received_date": "YYYY-MM-DD"
    }
  }
}
  • payroll_receipt
{
  "type": "payroll_receipt",
  "payload": {
    "tipo_comprobante": "desprendible_pago|resolucion_pension|ninguno",
    "tipo_pension": "invalidez|vejez|sustitucion|otro",
    "informacion_emisor": { "nombre_emisor": "...", "id_emisor": "..." },
    "informacion_empleado": {
      "nombre_empleado": "...",
      "id_empleado": "...",
      "tipo_id": "cc_co|ce_co|nit_co|ti_co|pasaporte|rfc_mx|curp_mx|nss_mx|otro",
      "numero_afiliacion": "..."
    },
    "informacion_pago": {
      "fecha_emision": "YYYY-MM-DD",
      "periodo": "YYYY-MM",
      "periodo_inicio": "YYYY-MM-DD",
      "periodo_fin": "YYYY-MM-DD",
      "periodicidad": "quincenal|mensual|semanal|otro",
      "moneda": "COP|MXN|USD|EUR|otro"
    },
    "ingresos": {
      "detalle_recurrentes": [{ "concepto": "...", "valor": 0 }],
      "detalle_no_recurrentes": [{ "concepto": "...", "valor": 0 }],
      "total_ingresos": 0
    },
    "creditos": {
      "detalle_creditos": [
        { "entidad": "...", "valor": 0, "cuotas_totales": 0 }
      ]
    },
    "embargos": {
      "detalle_embargos": [
        { "tipo_embargo": "alimentos|civil|fiscal|financiero|otro", "valor": 0 }
      ]
    },
    "descuentos": {
      "salud": 0,
      "pension": 0,
      "retencion_fuente": 0,
      "otros_descuentos": [{ "concepto": "...", "valor": 0 }]
    },
    "ingreso_neto_reportado": 0
  }
}