Skip to main content
The Comprobaciones (Expense Verification) module is the core component of SMAF for managing and validating travel expense reports in the Mexican Federal Public Administration. This module ensures compliance with fiscal regulations and internal policies for expense reimbursement.

What are Comprobaciones?

Comprobaciones are the formal expense verification reports that employees must submit after completing official travel assignments (comisiones). These reports prove that granted funds were used appropriately and in accordance with government regulations.
All travel expenses must be verified within established deadlines to ensure proper financial accounting and compliance with SAT (Servicio de Administración Tributaria) regulations.

Types of Expense Verification

SMAF supports multiple expense verification workflows depending on the nature of the travel:

Fiscal Verification

Expenses supported by CFDI invoices (Comprobante Fiscal Digital por Internet) with full tax compliance

Non-Fiscal Verification

Expenses that don’t require fiscal documentation, limited to 10% of daily allowances

International Travel

Special requirements for expenses incurred abroad with currency conversion

Rural/Field Expenses

Simplified verification for rural areas with certificate-based validation

Verification Categories

Expenses are classified into specific categories tracked by the system:
Category CodeDescriptionDocumentation Required
5Food expensesCFDI Invoice
6Fuel (cash)CFDI Invoice + Gas receipts
7Toll fees (facturable)CFDI Invoice
8Transportation/PassageCFDI Invoice
9LodgingCFDI Invoice
11Taxi/Local transportCFDI Invoice
12Non-fiscal expenses (10%)Simple receipt
13ReimbursementDeposit receipt
14BreakfastCFDI Invoice
15Hotel (devengados)CFDI Invoice
16Toll fees (non-facturable)Courtesy note
17LunchCFDI Invoice
18Rural allowancesCertificate
19Field work (less than 50km)Certificate
20DinnerCFDI Invoice

Required Documentation

  • PDF invoice (Factura)
  • XML file with fiscal digital stamp (Timbre Fiscal Digital)
  • UUID (Folio Fiscal) validation
  • Supporting receipts for fuel purchases (ticket de carga)
  • Concept description
  • Amount
  • Detailed observations
  • Limited to 10% of total daily allowances
  • Foreign currency receipts
  • Exchange rate documentation
  • CFDI invoices when available
  • Daily allowance calculations in MXN
  • Deposit receipt (baucher)
  • Bank transfer confirmation
  • Scan in JPG, PNG, or PDF format

Verification Deadlines

Expense verification must be completed according to these rules:
Verification cannot be initiated before the travel start date. The system validates that Fecha_Inicio (start date) has passed before allowing expense submission.
ComprobacionSInXml.aspx.cs:40-44
if (Convert.ToDateTime(DetalleComision.Fecha_Inicio) > Convert.ToDateTime(lsHoy))
{
    DetalleComision = null;
    Response.Redirect("Menu_Comprobaciones.aspx", true);
}

Allowance Calculation Rules

The system automatically calculates allowances based on:
  • Commercial Zone (Zona Comercial): Different rates for investigators, middle management, and high-level positions
  • Days (Días Reales): Actual days of travel
  • Daily Rate (Cuota Diaria): Based on position and zone

Zone-Based Rates

Comision_Comprobacion.aspx.cs:96-105
// Zone classifications with daily rates:
// Zone 2: Investigators - $980
// Zone 4: Middle Management - $1,700
// Zone 6: High Responsibility - $3,240
// Zone 10: Half-day Investigators - $490
// Zone 12: Half-day Middle Management - $1,000
// Zone 14: Rural - $550
// Zone 15: Maritime (singladuras)
// Zone 19: Field meals - $250

10% Non-Fiscal Rule

For commercial zones (1-13, 16-18, 20-23), employees can claim up to 10% of total daily allowances without fiscal documentation:
Comision_Comprobacion.aspx.cs:461
Label15.Text = "Comprobacion del 10% del total de viaticos: $ " + 
    Convert_Decimales(Convert_Double(Total_Viaticos) * 0.10);
Rural zones (14), maritime work (15), and field work (19) do not allow the 10% non-fiscal exception.

Reimbursement Calculation

The system automatically calculates reimbursements when verified expenses are less than granted funds:
Comision_Comprobacion.aspx.cs:277
double reintegro = (totalOtorgado - 
    (viaticos + combustible + peaje + pasaje + reintegroEfectuado));
1

System calculates total granted

Sums viaticos + combustible + peaje + pasaje
2

System totals verified expenses

Aggregates all fiscal and non-fiscal expenses by category
3

Calculates difference

Reintegro = Granted - Verified
4

Employee submits reimbursement

Upload deposit receipt if reintegro > 0

Payment Methods

The system supports two payment models:
  1. Anticipado (Advanced Payment): Funds granted before travel
  2. Devengado (Accrued): Funds calculated after travel based on actual expenses
ComprobacionAdmin.aspx.cs:132-147
if ((Forma_Pago_Viaticos == "1") || (Forma_Pago_Viaticos == "0"))
{
    // Devengados - No advance payment
    tc61.Text = "$0.00";
    tc62.Text = "DEVENGADOS";
}
else
{
    // Anticipado - Show granted amount
    tc61.Text = GranTotal.ToString("C");
    tc62.Text = ConvertirNumeroALetras(GranTotal);
}

Verification Status Workflow

Expenses progress through these statuses:
StatusDescription
9In Progress - Uploading expenses
7Completed - Verification closed
2Active fiscal expense
3Active non-fiscal expense

Next Steps

Expense Verification Guide

Step-by-step process for submitting expense reports

XML Invoice Validation

Understanding CFDI XML requirements and SAT validation

International Travel

Special procedures for foreign expenses

Build docs developers (and LLMs) love