De un archivo a datos estructurados.
Documentos que Moffin lee
| Documento | Tipo | Formatos |
|---|---|---|
| INE / credencial para votar | PF | PDF, JPG, PNG |
| Pasaporte | PF | PDF, JPG, PNG |
| CURP | PF | PDF, JPG, PNG |
| Acta de nacimiento | PF | PDF, JPG, PNG |
| Acta de matrimonio | PF | PDF, JPG, PNG |
| FM2 / documento migratorio | PF | PDF, JPG, PNG |
| Comprobante de domicilio | PF+PM | PDF, JPG, PNG |
| Constancia de situación fiscal | PF+PM | |
| Acta constitutiva | PM | |
| Acta de asamblea | PM | |
| Estado de cuenta | PF+PM | |
| Estado de cuenta Bankaool | PF+PM | |
| Estado financiero | PM | |
| Recibo de nómina | PF | PDF, JPG, PNG |
| Predial | PF+PM | PDF, JPG, PNG |
INE / credencial para votar
Persona físicaLee 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
| Campo | Tipo | Descripción |
|---|---|---|
| fullName | object | Nombre, apellido paterno y materno |
| curp | string | CURP impresa en la credencial |
| dateOfBirth | string | Fecha de nacimiento |
| gender | string | Sexo |
| electorKey | string | Clave de elector |
| address | object | Domicilio: calle, número, colonia, CP, ciudad y estado |
| section | string | Sección electoral |
| registrationYear | string | Año de registro |
| issuanceYear | string | Año de emisión |
| expirationYear | string | Año de vigencia |
| machineReadableLines | object | Zona 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ísicaExtrae los datos de identidad de un pasaporte, útil para extranjeros.
Formatos: PDF · JPG · PNG
- Solicitantes extranjeros
- Verificación de identidad
CURP
Persona físicaLee 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ísicaCaptura 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ísicaCaptura 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ísicaLee el documento migratorio de residentes extranjeros.
Formatos: PDF · JPG · PNG
- Solicitantes extranjeros
- Verificación de estancia legal
Comprobante de domicilio
Persona física y moralExtrae la dirección de un recibo de servicios para validar el domicilio.
Formatos: PDF · JPG · PNG
- Validación de domicilio
- Integración de expediente
| Campo | Tipo | Descripción |
|---|---|---|
| serviceCompany | string | Empresa que emite el recibo (CFE, agua, etc.) |
| billHolder | string | Titular del servicio |
| serviceNumber | string | Número de servicio |
| accountNumber | string | Número de cuenta |
| customerAddress | object | Domicilio: calle, número, colonia, municipio, ciudad, estado y CP |
| billedPeriod | object | Periodo facturado (inicio y fin) |
| paymentDueDate | string | Fecha límite de pago |
| totalAmountToPay | object | Monto 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 moralLee 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
| Campo | Tipo | Descripción |
|---|---|---|
| satData.taxId | string | RFC del contribuyente |
| satData.curp | string | CURP (para persona física) |
| satData.status | string | Estatus en el padrón (activo, suspendido, etc.) |
| satData.identificationData | object | Razón social o nombre, fecha de constitución y régimen de capital |
| satData.locationData | object | Domicilio fiscal completo y correo |
| satData.fiscalCharacteristics | object | Régimen fiscal y fechas de alta/baja |
| satData.taxObligations | object | Obligaciones fiscales y su periodicidad |
| satData.additionalInformation | object | Actividades 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 moralCaptura 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
| Campo | Tipo | Descripción |
|---|---|---|
| legalEntityName | string | Razón social de la empresa |
| legalEntity_taxId | string | RFC de la empresa |
| share_capital_amount | string | Capital social |
| public_deed_number | string | Número de escritura pública |
| public_deed_date | string | Fecha de la escritura |
| notary_name | string | Notario y número de notaría |
| commercial_registry_date | string | Fecha de inscripción en el RPC |
| electronic_commercial_folio_number | string | Folio mercantil electrónico |
| legal_representative | object | Representante legal: nombre, apellidos y RFC |
| shareholders | array | Accionistas con su porcentaje de participación |
| boardOfDirectors | array | Ó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 moralLee 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
| Campo | Tipo | Descripción |
|---|---|---|
| nombrePersonaMoral | string | Razón social de la empresa |
| rfcPersonaMoral | string | RFC de la empresa |
| tipoAsamblea | string | Ordinaria, extraordinaria o mixta |
| fechaAsamblea | string | Fecha en que se celebró la asamblea |
| instrumento | object | Número y fecha del instrumento notarial |
| fedatario | object | Fedatario público: nombre, número, tipo y plaza |
| inscripcionRPC | object | Inscripción en el Registro Público de Comercio (NCI y fecha) |
| folioMercantilElectronico | string | Folio mercantil electrónico |
| actosRealizados | array | Actos acordados en la asamblea |
| quorum | string | Quórum de la asamblea |
| nombramientos | string | Nombramientos acordados |
| poderesOtorgados | array | Apoderados con su cargo, forma de ejercicio, facultades y limitaciones |
| poderesRevocados | string | Poderes revocados en la asamblea |
| modificacionCapital | object | Cambios 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 moralLee un estado de cuenta bancario y captura movimientos y saldos.
Formatos: PDF
- Reporte financiero
- Estimación de capacidad de pago
| Campo | Tipo | Descripción |
|---|---|---|
| bank_name | string | Banco emisor |
| account_holder_name | string | Titular de la cuenta |
| account_holder_rfc | string | RFC del titular |
| account_number | string | Número de cuenta |
| account_type | string | Tipo de cuenta |
| statement_period_start | string | Inicio del periodo |
| statement_period_end | string | Fin del periodo |
| opening_balance | object | Saldo inicial (monto y moneda) |
| closing_balance | object | Saldo final (monto y moneda) |
| average_balance | object | Saldo promedio |
| transactions | array | Movimientos: fecha, monto, tipo, concepto, canal y contraparte |
| fiscal_folio_uuid | string | Folio 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 moralProcesador especializado para el formato de estado de cuenta de Bankaool.
Formatos: PDF
- Reporte financiero con cuentas Bankaool
Estado financiero
Persona moralCaptura las cifras de un estado financiero de empresa.
Formatos: PDF
- Reporte financiero de empresas
- Comité de crédito
| Campo | Tipo | Descripción |
|---|---|---|
| currency | string | Moneda de las cifras |
| periods | array | Periodos reportados (etiqueta, tipo y fechas) |
| assets | array | Balance de activos por concepto y periodo |
| liabilities | array | Balance de pasivos por concepto y periodo |
| equity | array | Capital contable por concepto y periodo |
| income_statement | array | Estado de resultados (ventas, utilidad, etc.) |
| cash_flow_statement | array | Flujo 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ísicaExtrae 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 moralLee un recibo predial y captura los datos del inmueble y su titular.
Formatos: PDF · JPG · PNG
- Comprobación de propiedad
- Garantías inmobiliarias
| Campo | Tipo | Descripción |
|---|---|---|
| fullname | string | Titular del predio |
| receipt_number | string | Número de recibo |
| tax_year | string | Ejercicio fiscal |
| fiscal_value | string | Valor catastral del inmueble |
| property_address | object | Domicilio del inmueble |
| total_amount | object | Monto total (importe y moneda) |
| due_date | string | Fecha límite de pago |
| payment_date | string | Fecha 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.