Saltar al contenido principal
Módulo

De un archivo a datos estructurados.

Documentos que Moffin lee

DocumentoTipoFormatos
INE / credencial para votarPFPDF, JPG, PNG
PasaportePFPDF, JPG, PNG
CURPPFPDF, JPG, PNG
Acta de nacimientoPFPDF, JPG, PNG
Acta de matrimonioPFPDF, JPG, PNG
FM2 / documento migratorioPFPDF, JPG, PNG
Comprobante de domicilioPF+PMPDF, JPG, PNG
Constancia de situación fiscalPF+PMPDF
Acta constitutivaPMPDF
Acta de asambleaPMPDF
Estado de cuentaPF+PMPDF
Estado de cuenta BankaoolPF+PMPDF
Estado financieroPMPDF
Recibo de nóminaPFPDF, JPG, PNG
PredialPF+PMPDF, JPG, PNG

INE / credencial para votar

Persona física

Lee la credencial de elector y captura los datos de identidad del solicitante.

Formatos: PDF · JPG · PNG

  • Alta de personas físicas
  • Cotejo de identidad
  • Onboarding KYC
CampoTipoDescripción
fullNameobjectNombre, apellido paterno y materno
curpstringCURP impresa en la credencial
dateOfBirthstringFecha de nacimiento
genderstringSexo
electorKeystringClave de elector
addressobjectDomicilio: calle, número, colonia, CP, ciudad y estado
sectionstringSección electoral
registrationYearstringAño de registro
issuanceYearstringAño de emisión
expirationYearstringAño de vigencia
machineReadableLinesobjectZona MRZ (líneas legibles por máquina, con CIC y OCR)
Ejemplo de datos extraídos

Ejemplo ilustrativo con datos ficticios

{
  "fullName": {
    "firstName": "LAURA",
    "fatherLastName": "GONZALEZ",
    "motherLastName": "MARTINEZ"
  },
  "curp": "GOML920405MJCNRR04",
  "dateOfBirth": "05/04/1992",
  "gender": "M",
  "electorKey": "GNMRLR92040514M900",
  "address": {
    "street": "AV ALTAVISTA",
    "externalNumber": "1240",
    "internalNumber": "",
    "neighborhood": "PROVIDENCIA",
    "postalCode": "44630",
    "city": "GUADALAJARA",
    "state": "JALISCO"
  },
  "registrationYear": "2010",
  "issuanceYear": "2023",
  "expirationYear": "2033",
  "section": "2417",
  "locality": "0001",
  "municipalityCode": "039",
  "stateCode": "14",
  "institution": "INSTITUTO NACIONAL ELECTORAL",
  "machineReadableLines": {
    "line1": {
      "raw": "IDMEX1874529360<<1874529360847",
      "cic": "187452936",
      "ocr": "1874529360847"
    },
    "line2": "9204054M3312319MEX<02<<18745<8",
    "line3": "GONZALEZ<MARTINEZ<<LAURA<<<<<<"
  }
}

Pasaporte

Persona física

Extrae los datos de identidad de un pasaporte, útil para extranjeros.

Formatos: PDF · JPG · PNG

  • Solicitantes extranjeros
  • Verificación de identidad

CURP

Persona física

Lee el documento de CURP y captura la clave y datos asociados.

Formatos: PDF · JPG · PNG

  • Alta de personas
  • Cotejo con validación de RENAPO

Acta de nacimiento

Persona física

Captura los datos de un acta de nacimiento del solicitante.

Formatos: PDF · JPG · PNG

  • Verificación de identidad
  • Integración de expediente

Acta de matrimonio

Persona física

Captura los datos de un acta de matrimonio, relevante para régimen conyugal.

Formatos: PDF · JPG · PNG

  • Reporte de crédito conjunto
  • Integración de expediente

FM2 / documento migratorio

Persona física

Lee el documento migratorio de residentes extranjeros.

Formatos: PDF · JPG · PNG

  • Solicitantes extranjeros
  • Verificación de estancia legal

Comprobante de domicilio

Persona física y moral

Extrae la dirección de un recibo de servicios para validar el domicilio.

Formatos: PDF · JPG · PNG

  • Validación de domicilio
  • Integración de expediente
CampoTipoDescripción
serviceCompanystringEmpresa que emite el recibo (CFE, agua, etc.)
billHolderstringTitular del servicio
serviceNumberstringNúmero de servicio
accountNumberstringNúmero de cuenta
customerAddressobjectDomicilio: calle, número, colonia, municipio, ciudad, estado y CP
billedPeriodobjectPeriodo facturado (inicio y fin)
paymentDueDatestringFecha límite de pago
totalAmountToPayobjectMonto a pagar (numérico, con letra y pronto pago)
Ejemplo de datos extraídos

Ejemplo ilustrativo con datos ficticios

{
  "serviceCompany": "COMISION FEDERAL DE ELECTRICIDAD",
  "companyAddress": "RIO RODANO 14, CUAUHTEMOC, CDMX",
  "billHolder": "LAURA GONZALEZ MARTINEZ",
  "serviceNumber": "184729450128",
  "accountNumber": "98HD47S029183746",
  "customerAddressComplete": "AV ALTAVISTA 1240, PROVIDENCIA, GUADALAJARA, JAL, 44630",
  "customerAddress": {
    "street": "AV ALTAVISTA",
    "externalNumber": "1240",
    "internalNumber": "",
    "neighborhood": "PROVIDENCIA",
    "municipalityOrDelegation": "GUADALAJARA",
    "city": "GUADALAJARA",
    "state": "JALISCO",
    "country": "MEXICO",
    "postalCode": "44630"
  },
  "billedPeriod": {
    "startDate": "2026-04-24",
    "endDate": "2026-06-24"
  },
  "paymentDueDate": "2026-07-11",
  "totalAmountToPay": {
    "numeric": 1247,
    "written": "MIL DOSCIENTOS CUARENTA Y SIETE PESOS 00/100",
    "listPrice": 1247,
    "earlyPayment": 1209
  },
  "costBreakdown": [
    {
      "concept": "ENERGIA CONSUMIDA 412 KWH",
      "unitPrice": 2.35,
      "subtotal": 968.2
    },
    {
      "concept": "IVA 16%",
      "unitPrice": 0,
      "subtotal": 172.11
    }
  ],
  "paymentDetails": {
    "barcode": "184729450128000124700",
    "fiscalCode": "CFE370814QI0"
  }
}

Constancia de situación fiscal

Persona física y moral

Lee la constancia del SAT y captura RFC, régimen y datos fiscales.

Formatos: PDF

  • Alta fiscal
  • Cotejo con validación de RFC ante el SAT
CampoTipoDescripción
satData.taxIdstringRFC del contribuyente
satData.curpstringCURP (para persona física)
satData.statusstringEstatus en el padrón (activo, suspendido, etc.)
satData.identificationDataobjectRazón social o nombre, fecha de constitución y régimen de capital
satData.locationDataobjectDomicilio fiscal completo y correo
satData.fiscalCharacteristicsobjectRégimen fiscal y fechas de alta/baja
satData.taxObligationsobjectObligaciones fiscales y su periodicidad
satData.additionalInformationobjectActividades económicas registradas
Ejemplo de datos extraídos

Ejemplo ilustrativo con datos ficticios

{
  "satData": {
    "taxId": "CAL1506123F9",
    "curp": "",
    "internalTaxId": "20154829174",
    "status": "ACTIVO",
    "identificationData": {
      "companyName": "COMERCIALIZADORA ALTAVISTA",
      "firstName": "",
      "firstLastname": "",
      "secondLastname": "",
      "constitutionDate": "2015-06-12",
      "capitalRegime": "SOCIEDAD ANONIMA DE CAPITAL VARIABLE",
      "lastStatusChange": "2015-07-03"
    },
    "locationData": {
      "streetType": "AVENIDA",
      "streetName": "ALTAVISTA",
      "externalNumber": "1240",
      "internalNumber": "PISO 3",
      "neighborhood": "PROVIDENCIA",
      "municipalityOrDelegation": "GUADALAJARA",
      "federalEntity": "JALISCO",
      "postalCode": "44630",
      "email": "administracion@altavista.com.mx",
      "localAdministration": "GUADALAJARA 1"
    },
    "fiscalCharacteristics": {
      "regime": "REGIMEN GENERAL DE LEY PERSONAS MORALES",
      "startDate": "2015-06-12",
      "endDate": ""
    },
    "taxObligations": {
      "obligation": "DECLARACION ANUAL DE ISR PERSONAS MORALES",
      "declarationType": "ANUAL",
      "frequency": "ANUAL",
      "startDate": "2015-06-12"
    },
    "additionalInformation": {
      "economicActivities": [
        "COMERCIO AL POR MAYOR DE MAQUINARIA Y EQUIPO PARA LA INDUSTRIA"
      ],
      "date": "2026-06-18",
      "place": "GUADALAJARA, JALISCO"
    },
    "validationCode": "26011847293KDQ"
  },
  "validationCode": "26011847293KDQ",
  "messageCode": "0"
}

Acta constitutiva

Persona moral

Captura los datos de constitución de una empresa: razón social, objeto y representantes.

Formatos: PDF

  • Alta de personas morales
  • Expediente KYB
  • Verificación de representante legal
CampoTipoDescripción
legalEntityNamestringRazón social de la empresa
legalEntity_taxIdstringRFC de la empresa
share_capital_amountstringCapital social
public_deed_numberstringNúmero de escritura pública
public_deed_datestringFecha de la escritura
notary_namestringNotario y número de notaría
commercial_registry_datestringFecha de inscripción en el RPC
electronic_commercial_folio_numberstringFolio mercantil electrónico
legal_representativeobjectRepresentante legal: nombre, apellidos y RFC
shareholdersarrayAccionistas con su porcentaje de participación
boardOfDirectorsarrayÓrgano de administración: cargos, facultades y limitaciones
Ejemplo de datos extraídos

Ejemplo ilustrativo con datos ficticios

{
  "legalEntityName": "COMERCIALIZADORA ALTAVISTA SA DE CV",
  "legalEntity_taxId": "CAL1506123F9",
  "share_capital_amount": "500,000.00 MXN",
  "public_deed_number": "28451",
  "public_deed_date": "2015-06-12",
  "notary_name": "LIC. FERNANDO GUTIERREZ AVILA",
  "notary_office_number": "27",
  "notary_city": "GUADALAJARA, JALISCO",
  "commercial_registry_date": "2015-07-03",
  "electronic_commercial_folio_number": "N-2015048291",
  "registration_city": "GUADALAJARA",
  "legal_representative": {
    "Name": "RICARDO",
    "lastName": "SALAS",
    "secondLastName": "VEGA",
    "taxId": "SAVR780921PL4"
  },
  "shareholders": [
    {
      "shareholdersName": "RICARDO SALAS VEGA",
      "shareholdersNameCompany": "",
      "shareholdersTypeCompany": "PF",
      "equityParticipation": "60%",
      "taxAddress": "AV ALTAVISTA 1240, PROVIDENCIA, GUADALAJARA, JAL"
    },
    {
      "shareholdersName": "LAURA GONZALEZ MARTINEZ",
      "shareholdersNameCompany": "",
      "shareholdersTypeCompany": "PF",
      "equityParticipation": "40%",
      "taxAddress": "AV ALTAVISTA 1240, PROVIDENCIA, GUADALAJARA, JAL"
    }
  ],
  "boardOfDirectors": [
    {
      "boardMember": {
        "nameBoardMember": "RICARDO SALAS VEGA",
        "boardMemberRole": "ADMINISTRADOR UNICO",
        "facultiesList": [
          "PLEITOS Y COBRANZAS",
          "ACTOS DE ADMINISTRACION",
          "ACTOS DE DOMINIO"
        ],
        "limitationsList": [
          "TITULOS DE CREDITO HASTA $1,000,000.00 MXN"
        ]
      }
    }
  ]
}

Acta de asamblea

Persona moral

Lee un acta de asamblea y captura los acuerdos: nombramientos, poderes otorgados o revocados y cambios de capital.

Formatos: PDF

  • Verificación de representante legal vigente
  • Expediente KYB
  • Validación de poderes y facultades
CampoTipoDescripción
nombrePersonaMoralstringRazón social de la empresa
rfcPersonaMoralstringRFC de la empresa
tipoAsambleastringOrdinaria, extraordinaria o mixta
fechaAsambleastringFecha en que se celebró la asamblea
instrumentoobjectNúmero y fecha del instrumento notarial
fedatarioobjectFedatario público: nombre, número, tipo y plaza
inscripcionRPCobjectInscripción en el Registro Público de Comercio (NCI y fecha)
folioMercantilElectronicostringFolio mercantil electrónico
actosRealizadosarrayActos acordados en la asamblea
quorumstringQuórum de la asamblea
nombramientosstringNombramientos acordados
poderesOtorgadosarrayApoderados con su cargo, forma de ejercicio, facultades y limitaciones
poderesRevocadosstringPoderes revocados en la asamblea
modificacionCapitalobjectCambios de capital: montos de aumento o reducción
Ejemplo de datos extraídos

Ejemplo ilustrativo con datos ficticios

{
  "nombrePersonaMoral": "COMERCIALIZADORA ALTAVISTA SA DE CV",
  "rfcPersonaMoral": "CAL1506123F9",
  "tipoAsamblea": "ORDINARIA",
  "modalidadAsamblea": "TOTALITARIA",
  "fechaAsamblea": "2025-03-15",
  "quorum": "100%",
  "instrumento": {
    "numeroInstrumento": "31904",
    "fechaInstrumento": "2025-03-24"
  },
  "escritura": {
    "numeroEscritura": "31904",
    "fechaEscritura": "2025-03-24"
  },
  "fedatario": {
    "nombreFedatario": "LIC. FERNANDO GUTIERREZ AVILA",
    "numeroFedatario": "27",
    "tipoFedatario": "NOTARIO",
    "estadoFedatario": "JALISCO",
    "municipioFedatario": "GUADALAJARA"
  },
  "inscripcionRPC": {
    "nci": "202500184427",
    "fechaInscripcion": "2025-04-02",
    "responsableOficina": "LIC. PATRICIA NAVARRO RUIZ"
  },
  "folioMercantilElectronico": "N-2015048291",
  "actosRealizados": [
    {
      "acto": "OTORGAMIENTO DE PODERES"
    }
  ],
  "ordenDelDia": "I. OTORGAMIENTO DE PODERES; II. ASUNTOS GENERALES",
  "organoOtorgante": "ASAMBLEA GENERAL DE ACCIONISTAS",
  "funcionariosAsamblea": [
    {
      "nombre": "RICARDO SALAS VEGA",
      "cargo": "PRESIDENTE"
    },
    {
      "nombre": "LAURA GONZALEZ MARTINEZ",
      "cargo": "SECRETARIA"
    }
  ],
  "nombramientos": "",
  "poderesOtorgados": [
    {
      "nombreApoderado": "LAURA GONZALEZ MARTINEZ",
      "rfcCurpApoderado": "GOML920405K28",
      "cargoApoderado": "APODERADA",
      "formaEjercicio": "INDIVIDUAL",
      "listaFacultades": [
        "PLEITOS Y COBRANZAS",
        "ACTOS DE ADMINISTRACION"
      ],
      "listaLimitaciones": ""
    }
  ],
  "poderesRevocados": "",
  "modificacionCapital": {
    "capitalFijoAnterior": "",
    "capitalFijoTotal": "",
    "montoAumento": "",
    "montoReduccion": ""
  },
  "numeroUnicoDocumento": "",
  "formaPrecodificada": "",
  "solicitanteDelegado": ""
}

Estado de cuenta

Persona física y moral

Lee un estado de cuenta bancario y captura movimientos y saldos.

Formatos: PDF

  • Reporte financiero
  • Estimación de capacidad de pago
CampoTipoDescripción
bank_namestringBanco emisor
account_holder_namestringTitular de la cuenta
account_holder_rfcstringRFC del titular
account_numberstringNúmero de cuenta
account_typestringTipo de cuenta
statement_period_startstringInicio del periodo
statement_period_endstringFin del periodo
opening_balanceobjectSaldo inicial (monto y moneda)
closing_balanceobjectSaldo final (monto y moneda)
average_balanceobjectSaldo promedio
transactionsarrayMovimientos: fecha, monto, tipo, concepto, canal y contraparte
fiscal_folio_uuidstringFolio fiscal (UUID) cuando aplica
Ejemplo de datos extraídos

Ejemplo ilustrativo con datos ficticios

{
  "bank_name": "BANCO REGIONAL DEL CENTRO",
  "bank_rfc": "BRC940630KT2",
  "account_holder_name": "COMERCIALIZADORA ALTAVISTA SA DE CV",
  "account_holder_rfc": "CAL1506123F9",
  "account_holder_address": "AV ALTAVISTA 1240 PISO 3, PROVIDENCIA, 44630, GUADALAJARA, JAL",
  "account_number": "0114827365",
  "account_type": "CUENTA EMPRESARIAL PYME",
  "statement_period_start": "2026-06-01",
  "statement_period_end": "2026-06-30",
  "opening_balance": {
    "amount": 412830.18,
    "iso_4217_currency_code": "MXN"
  },
  "closing_balance": {
    "amount": 487215.63,
    "iso_4217_currency_code": "MXN"
  },
  "average_balance": {
    "amount": 439412.9,
    "iso_4217_currency_code": "MXN"
  },
  "total_commissions": 812,
  "term_investments": 0,
  "zero_interest_installments": 0,
  "transactions": [
    {
      "day": "03",
      "month": "06",
      "amount": 48200,
      "currency": "MXN",
      "transaction_type": "RETIRO",
      "transaction_concept": "TRANSFERENCIA SPEI ENVIADA",
      "description": "PAGO PROVEEDOR ACEROS Y PERFILES DEL BAJIO",
      "channel": "SPEI",
      "counterparty_name": "ACEROS Y PERFILES DEL BAJIO SA DE CV",
      "counterparty_rfc": "APB080215GH3"
    },
    {
      "day": "05",
      "month": "06",
      "amount": 128470,
      "currency": "MXN",
      "transaction_type": "DEPOSITO",
      "transaction_concept": "TRANSFERENCIA SPEI RECIBIDA",
      "description": "PAGO FACTURA A-1184 DISTRIBUIDORA RIO BLANCO",
      "channel": "SPEI",
      "counterparty_name": "DISTRIBUIDORA RIO BLANCO SA DE CV",
      "counterparty_rfc": "DRB120830JX1"
    },
    {
      "day": "16",
      "month": "06",
      "amount": 48611,
      "currency": "MXN",
      "transaction_type": "RETIRO",
      "transaction_concept": "CARGO AUTOMATICO",
      "description": "PAGO CREDITO SIMPLE CS-2023-04412",
      "channel": "DOMICILIACION",
      "counterparty_name": "BANCO REGIONAL DEL CENTRO",
      "counterparty_rfc": "BRC940630KT2"
    },
    {
      "day": "27",
      "month": "06",
      "amount": 91480,
      "currency": "MXN",
      "transaction_type": "DEPOSITO",
      "transaction_concept": "TRANSFERENCIA SPEI RECIBIDA",
      "description": "PAGO FACTURA A-1191 GRUPO INDUSTRIAL TAPATIO",
      "channel": "SPEI",
      "counterparty_name": "GRUPO INDUSTRIAL TAPATIO SA DE CV",
      "counterparty_rfc": "GIT051118RW6"
    }
  ],
  "fiscal_folio_uuid": "7d4f2a91-8e36-4c05-b1d8-92a4e6f70c13",
  "digital_seal": "kQ8mZx2P...",
  "date_and_time_certification": "2026-07-01T06:12:44"
}

Estado de cuenta Bankaool

Persona física y moral

Procesador especializado para el formato de estado de cuenta de Bankaool.

Formatos: PDF

  • Reporte financiero con cuentas Bankaool

Estado financiero

Persona moral

Captura las cifras de un estado financiero de empresa.

Formatos: PDF

  • Reporte financiero de empresas
  • Comité de crédito
CampoTipoDescripción
currencystringMoneda de las cifras
periodsarrayPeriodos reportados (etiqueta, tipo y fechas)
assetsarrayBalance de activos por concepto y periodo
liabilitiesarrayBalance de pasivos por concepto y periodo
equityarrayCapital contable por concepto y periodo
income_statementarrayEstado de resultados (ventas, utilidad, etc.)
cash_flow_statementarrayFlujo de efectivo cuando el documento lo incluye
Ejemplo de datos extraídos

Ejemplo ilustrativo con datos ficticios

{
  "currency": "MXN",
  "periods": [
    {
      "period_id": "P1",
      "label": "2025",
      "type": "ANUAL",
      "start_date": "2025-01-01",
      "end_date": "2025-12-31"
    }
  ],
  "assets": [
    {
      "concept": "ACTIVO CIRCULANTE",
      "value": 3184500,
      "unit": "MXN",
      "depth": 1,
      "order": 1,
      "is_total": false,
      "sign_normalized": 1,
      "raw_text": "Activo circulante",
      "period_id": "P1"
    },
    {
      "concept": "TOTAL ACTIVO",
      "value": 5427800,
      "unit": "MXN",
      "depth": 0,
      "order": 10,
      "is_total": true,
      "sign_normalized": 1,
      "raw_text": "Total activo",
      "period_id": "P1"
    }
  ],
  "liabilities": [
    {
      "concept": "TOTAL PASIVO",
      "value": 2118300,
      "unit": "MXN",
      "depth": 0,
      "order": 1,
      "is_total": true,
      "sign_normalized": 1,
      "raw_text": "Total pasivo",
      "period_id": "P1"
    }
  ],
  "equity": [
    {
      "concept": "CAPITAL CONTABLE",
      "value": 3309500,
      "unit": "MXN",
      "depth": 0,
      "order": 1,
      "is_total": true,
      "sign_normalized": 1,
      "raw_text": "Capital contable",
      "period_id": "P1"
    }
  ],
  "income_statement": [
    {
      "concept": "VENTAS NETAS",
      "value": 9847200,
      "unit": "MXN",
      "depth": 0,
      "order": 1,
      "is_total": false,
      "sign_normalized": 1,
      "raw_text": "Ventas netas",
      "period_id": "P1"
    },
    {
      "concept": "UTILIDAD NETA",
      "value": 763400,
      "unit": "MXN",
      "depth": 0,
      "order": 9,
      "is_total": true,
      "sign_normalized": 1,
      "raw_text": "Utilidad neta",
      "period_id": "P1"
    }
  ],
  "cash_flow_statement": []
}

Recibo de nómina

Persona física

Extrae el ingreso y datos del empleador de un recibo de nómina.

Formatos: PDF · JPG · PNG

  • Comprobación de ingresos
  • Estimación de capacidad de pago

Predial

Persona física y moral

Lee un recibo predial y captura los datos del inmueble y su titular.

Formatos: PDF · JPG · PNG

  • Comprobación de propiedad
  • Garantías inmobiliarias
CampoTipoDescripción
fullnamestringTitular del predio
receipt_numberstringNúmero de recibo
tax_yearstringEjercicio fiscal
fiscal_valuestringValor catastral del inmueble
property_addressobjectDomicilio del inmueble
total_amountobjectMonto total (importe y moneda)
due_datestringFecha límite de pago
payment_datestringFecha de pago cuando aplica
Ejemplo de datos extraídos

Ejemplo ilustrativo con datos ficticios

{
  "fullname": "LAURA GONZALEZ MARTINEZ",
  "receipt_number": "GDL-2026-0482917",
  "tax_year": "2026",
  "fiscal_value": "2140000.00",
  "property_address": {
    "address": "AV ALTAVISTA",
    "address_2": "",
    "exterior_number": "1240",
    "interior_number": "",
    "neighborhood": "PROVIDENCIA",
    "city": "GUADALAJARA",
    "state": "JALISCO",
    "zip_code": "44630"
  },
  "notification_address": "AV ALTAVISTA 1240, PROVIDENCIA, 44630, GUADALAJARA, JAL",
  "total_amount": {
    "amount": 5216,
    "iso_4217_currency_code": "MXN"
  },
  "due_date": "2026-03-31",
  "payment_date": "2026-02-27"
}

Más allá de la extracción

Leer el documento es el primer paso. Moffin también valida el expediente completo y normaliza lo que extrae, para que el dato llegue listo a tus reglas.

Validación automática de expedientes

Cada archivo pasa por sus validadores —vigencia, RFC que coincide con la solicitud, meses consecutivos, ambas caras— y el expediente marca qué documentos requieren acción antes de decidir.

Ejemplo de validación

Ejemplo ilustrativo con datos ficticios

{
  "schemaVersion": "1.2",
  "estado": "REQUIERE_ACCION",
  "context": {
    "name": "Expediente PM - Comercializadora Altavista",
    "flowId": "flw_2f81a4c9",
    "formId": 48217,
    "formConfigSlug": "expediente-credito-pm",
    "profileId": 118472,
    "organizationSlug": "arrendadora-poniente",
    "evaluatedAt": "2026-07-16T14:22:41Z"
  },
  "ejecucion": {
    "status": "COMPLETED",
    "errores": []
  },
  "grupos": [
    {
      "grupo": "EMPRESA",
      "archivos": [
        {
          "moffinFileId": 9184726,
          "nombre_archivo": "acta_constitutiva.pdf",
          "nombre_coleccion": "Acta constitutiva",
          "personRole": "EMPRESA",
          "requiere_accion": false,
          "evaluaciones": [
            {
              "nombre": "documento_legible",
              "estado": "SUCCESS",
              "detalle": "Calidad de imagen suficiente para extraccion"
            },
            {
              "nombre": "rfc_coincide_con_solicitud",
              "estado": "SUCCESS",
              "detalle": "RFC CAL1506123F9 coincide con el declarado en el formulario"
            },
            {
              "nombre": "documento_completo",
              "estado": "SUCCESS",
              "detalle": "42 paginas detectadas, sin cortes"
            }
          ]
        },
        {
          "moffinFileId": 9184731,
          "nombre_archivo": "csf_2026.pdf",
          "nombre_coleccion": "Constancia de situacion fiscal",
          "personRole": "EMPRESA",
          "requiere_accion": false,
          "evaluaciones": [
            {
              "nombre": "vigencia_documento",
              "estado": "SUCCESS",
              "detalle": "Emitida el 18 de junio de 2026, dentro de los 90 dias"
            },
            {
              "nombre": "rfc_coincide_con_solicitud",
              "estado": "SUCCESS",
              "detalle": "RFC CAL1506123F9 coincide"
            },
            {
              "nombre": "codigo_validacion_presente",
              "estado": "SUCCESS",
              "detalle": "Codigo 26011847293KDQ detectado"
            }
          ]
        },
        {
          "moffinFileId": 9184744,
          "nombre_archivo": "edo_cuenta_mayo.pdf",
          "nombre_coleccion": "Estado de cuenta",
          "personRole": "EMPRESA",
          "requiere_accion": true,
          "evaluaciones": [
            {
              "nombre": "documento_legible",
              "estado": "SUCCESS",
              "detalle": "Calidad de imagen suficiente"
            },
            {
              "nombre": "periodo_reciente",
              "estado": "ALERT",
              "detalle": "El periodo mas reciente es mayo 2026. Se requieren los ultimos 3 meses cerrados"
            },
            {
              "nombre": "meses_consecutivos",
              "estado": "ERROR",
              "detalle": "Solo se recibio 1 de 3 estados de cuenta requeridos"
            }
          ]
        }
      ]
    },
    {
      "grupo": "REPRESENTANTE_LEGAL",
      "archivos": [
        {
          "moffinFileId": 9184752,
          "nombre_archivo": "ine_frente_reverso.pdf",
          "nombre_coleccion": "INE",
          "personRole": "REPRESENTANTE_LEGAL",
          "requiere_accion": false,
          "evaluaciones": [
            {
              "nombre": "vigencia_documento",
              "estado": "SUCCESS",
              "detalle": "Vigencia 2033, documento vigente"
            },
            {
              "nombre": "ambas_caras_presentes",
              "estado": "SUCCESS",
              "detalle": "Frente y reverso detectados"
            },
            {
              "nombre": "nombre_coincide_con_acta",
              "estado": "SUCCESS",
              "detalle": "Coincide con el representante legal del acta constitutiva"
            }
          ]
        }
      ]
    }
  ],
  "resumen": {
    "total_documentos": 4,
    "total_success": 3,
    "total_alert": 1,
    "total_error": 1,
    "validadores_ejecutados": [
      "documento_legible",
      "vigencia_documento",
      "rfc_coincide_con_solicitud",
      "documento_completo",
      "codigo_validacion_presente",
      "periodo_reciente",
      "meses_consecutivos",
      "ambas_caras_presentes",
      "nombre_coincide_con_acta"
    ],
    "validadores_omitidos": [
      "comprobante_domicilio_reciente"
    ]
  },
  "resultados_globales": {
    "requiere_accion": true,
    "alertas_globales": [
      {
        "nombre": "expediente_incompleto",
        "estado": "ALERT",
        "detalle": "Faltan 2 estados de cuenta para completar el requisito de 3 meses",
        "requiere_accion_archivos": [
          "edo_cuenta_mayo.pdf"
        ]
      }
    ],
    "archivos_requieren_accion": [
      {
        "moffinFileId": 9184744,
        "nombre_archivo": "edo_cuenta_mayo.pdf",
        "nombre_coleccion": "Estado de cuenta",
        "errores": [
          {
            "nombre": "meses_consecutivos",
            "detalle": "Solo se recibio 1 de 3 estados de cuenta requeridos"
          },
          {
            "nombre": "periodo_reciente",
            "detalle": "El periodo mas reciente es mayo 2026. Se requieren los ultimos 3 meses cerrados"
          }
        ]
      }
    ]
  }
}

Normalización contable con evidencia

El OCR crudo de un estado financiero se convierte en estructura contable estándar por periodo, y cada cifra viene con la evidencia (las líneas originales del documento de las que se derivó) y distingue el total declarado del inferido.

Ejemplo de normalización

Ejemplo ilustrativo con datos ficticios

{
  "currency": "MXN",
  "periods": [
    {
      "period": {
        "period_id": "P1",
        "label": "2025",
        "start_date": "2025-01-01",
        "end_date": "2025-12-31"
      },
      "balance_sheet": {
        "assets": {
          "total": 5427800,
          "inference_total": 5427800,
          "evidence": [
            {
              "label": "Total activo",
              "value": 5427800
            }
          ],
          "concepts": {
            "current": {
              "total": 3184500,
              "inference_total": 3184500,
              "evidence": [
                {
                  "label": "Activo circulante",
                  "value": 3184500
                }
              ]
            },
            "cash_and_cash_equivalents": {
              "total": 487215,
              "inference_total": null,
              "evidence": [
                {
                  "label": "Efectivo y equivalentes",
                  "value": 487215
                }
              ]
            },
            "trade_receivables": {
              "total": 1842300,
              "inference_total": null,
              "evidence": [
                {
                  "label": "Clientes",
                  "value": 1842300
                }
              ]
            },
            "other_receivables": {
              "total": 154985,
              "inference_total": null,
              "evidence": [
                {
                  "label": "Deudores diversos",
                  "value": 96400
                },
                {
                  "label": "IVA acreditable",
                  "value": 58585
                }
              ]
            },
            "inventory": {
              "total": 700000,
              "inference_total": null,
              "evidence": [
                {
                  "label": "Inventarios",
                  "value": 700000
                }
              ]
            }
          }
        },
        "liabilities": {
          "total": 2118300,
          "inference_total": 2118300,
          "evidence": [
            {
              "label": "Total pasivo",
              "value": 2118300
            }
          ],
          "concepts": {
            "current": {
              "total": 1430800,
              "inference_total": 1430800,
              "evidence": [
                {
                  "label": "Pasivo a corto plazo",
                  "value": 1430800
                }
              ]
            },
            "trade_payables": {
              "total": 894150,
              "inference_total": null,
              "evidence": [
                {
                  "label": "Proveedores",
                  "value": 894150
                }
              ]
            }
          }
        }
      },
      "income_statement": {
        "operating_income": {
          "total": 1184600,
          "inference_total": null,
          "evidence": [
            {
              "label": "Utilidad de operacion",
              "value": 1184600
            }
          ]
        },
        "net_income": {
          "total": 763400,
          "inference_total": 763400,
          "evidence": [
            {
              "label": "Utilidad neta del ejercicio",
              "value": 763400
            }
          ]
        },
        "depreciation": {
          "total": 212400,
          "inference_total": 212400,
          "evidence": [
            {
              "label": "Depreciacion y amortizacion",
              "value": 212400
            }
          ]
        }
      }
    }
  ]
}

Preguntas sobre Documentos

¿Listo para dejar de capturar a mano?

Agenda una demo de 20 minutos y te mostramos cómo aplica a tu proceso.

Documentos · Módulo Moffin