Skip to main content

Fund Allocations (Ministraciones) Overview

Ministraciones are fund allocations that manage and track budgeted resources for travel expenses in SMAF. They serve as the financial control mechanism linking approved travel assignments with actual payments disbursed to employees.

What is a Ministracion?

A ministracion is a budget allocation record that:
  • Groups payments for one or more travel assignments
  • Tracks budget consumption against allocated funds
  • Links to accounting systems through budget partition codes (partidas presupuestales)
  • Maintains payment history with dates, amounts, and bank references
  • Requires approval from financial administrators before disbursement

Purpose and Benefits

Budget Control

Ministraciones provide centralized budget tracking:
bool insert = MngNegocioMinistracion.Inserta_MInistracionDetalle(
    dplTipoMinistracion.SelectedValue.ToString(), 
    lsMinistracion, 
    lsHoy, 
    Year, 
    Session["Crip_Usuario"].ToString(), 
    Session["Crip_Ubicacion"].ToString(), 
    Dictionary.FECHA_NULA, 
    MngNegocioDependencia.Obtiene_DIrector_Financieros(
        Dictionary.PUESTO_FINANCIERO, Dictionary.SUBDIRECTOR_ADJUNTO), 
    Dictionary.FECHA_NULA, 
    MngNegocioDependencia.Obtiene_DIrector_Financieros(
        Dictionary.PUESTO_FINANCIERO, Dictionary.SUBDIRECTOR_ADJUNTO), 
    "VIATICOS NACIONALES PARA LABORES EN CAMPO Y DE SUPERVISION",
    clsFuncionesGral.ConvertString(
        clsFuncionesGral.Convert_Double(DetalleComision.Total_Viaticos) + 
        clsFuncionesGral.Convert_Double(DetalleComision.Combustible_Efectivo) + 
        clsFuncionesGral.Convert_Double(DetalleComision.Peaje) + 
        clsFuncionesGral.Convert_Double(DetalleComision.Pasaje)
    ), 
    "0", 
    "1", 
    "1", 
    lsHoy, 
    MngNegocioMinistracion.Obtiene_ClvPeriodo(lsHoy, Year)
);

Financial Transparency

Each ministracion maintains:
  • Period key (Clave_Periodo) for fiscal tracking
  • Generation date and user
  • Authorization dates and approvers
  • Detailed concept descriptions
  • Complete bank transaction details

Audit Trail

The system creates comprehensive audit records:
Ministracion oMinistracion = MngNegocioMinistracion.Objeto_Ministracion(
    txtArchivoHiden.Text, 
    dplMinistracion.SelectedValue.ToString(), 
    "17"
);

// Track amounts
// - Total_Solicitado: Requested amount
// - Total_Pagado: Amount paid to date
// - Secuencia: Payment sequence number

Ministracion Types

The system supports different types of ministraciones based on payment purpose:
dplTipoMinistracion.DataSource = 
    MngNegocioMinistracion.ListaTipoMinistracion("00");
dplTipoMinistracion.DataValueField = Dictionary.CODIGO;
dplTipoMinistracion.DataTextField = Dictionary.DESCRIPCION;
dplTipoMinistracion.DataBind();

Common Ministracion Types

Fund allocations for travel allowances, including:
  • Daily per diem
  • Meal allowances
  • Incidental expenses
  • Overnight stays
Code: Type varies by program and budget source
Allocations for vendor invoices related to travel:
  • Hotel accommodations (when direct payment required)
  • Transportation services
  • Event registrations
  • Conference fees
Requires CFDI (digital tax receipt) validation
Fund allocations for post-travel expense reimbursements:
  • Additional approved expenses
  • Receipted costs exceeding original allocation
  • Emergency travel expenses

Timing and Creation

When Ministraciones are Created

1

Travel Assignment Approved

After a comisión receives all required approvals
2

Financial Review Complete

Budget availability confirmed by financial administrators
3

Payment Processing Initiated

When the payment module is accessed for the commission
4

First Payment Registration

System creates ministracion when registering initial payment

Automatic vs. Manual Creation

Automatic Creation: When processing first payment for a commission
if (Session["Crip_IsExistinMinistracion"].ToString() == "0")
{
    // Generate new ministracion number
    lsMinistracion = MngNegocioMinistracion.Obtiene_Max_Ministracion();
    
    // Create ministracion detail record
    bool insert = MngNegocioMinistracion.Inserta_MInistracionDetalle(...);
}
Manual Creation: Through the Alta_Ministracion module for provider payments
Label1.Text = clsFuncionesGral.ConvertMayus("Alta de Ministraciones :");
Label6.Text = clsFuncionesGral.ConvertMayus("Tipo MInistracion  : ");

Budget Tracking Components

Total Amounts

Total_Solicitado
decimal
Total amount requested/allocated for the ministracion
Total_Pagado
decimal
Cumulative amount paid through all payment sequences
Subtotal
decimal
Base amount before taxes and deductions

Tax Components

IVA
decimal
Value Added Tax (16% in Mexico)
IVA_Retenido
decimal
Withheld VAT (when applicable)
ISR
decimal
Income Tax amount
ISR_Retenido
decimal
Withheld Income Tax

Other Deductions

TUA
decimal
Airport Use Tax (for air travel)
SFP
decimal
Special federal tax
Descuentos
decimal
Other discounts or deductions

Status Tracking

Ministraciones track financial status through multiple fields:
if (clsFuncionesGral.Convert_Double(oMinistracion.Total_Solicitado) == viat)
{
    lsEstatusFinancieros = "2"; // Fully paid
}
else
{
    lsEstatusFinancieros = "1"; // Partial payment
}

Status Codes

CodeStatusDescription
”0”PendingMinistracion created, no payments yet
”1”PartialSome payments made, balance remaining
”2”CompleteFully paid, no balance remaining
Status updates automatically when payments are registered through the payment module.

Approval Workflow

Ministraciones require approval before funds can be disbursed:
MngNegocioDependencia.Obtiene_DIrector_Financieros(
    Dictionary.PUESTO_FINANCIERO, 
    Dictionary.SUBDIRECTOR_ADJUNTO
)

Approval Stages

  1. Created by: Administrative or center user
  2. Reviewed by: Financial department
  3. Authorized by: Deputy Financial Director
  4. Final approval: Financial Director (for amounts exceeding threshold)

Approval Fields

Fecha_Autoriza
date
Date when ministracion was authorized
Autoriza
string
User ID of authorizing official
Usuario_Genera
string
User ID who created the ministracion

Integration with Payments

Ministraciones link to payments through the payment registration process:

Checking for Existing Ministracion

List<Entidad> ListaMinistracion = 
    MngNegocioMinistracion.Obtiene_Ministracion(Year, txtArchivoHiden.Text);

if (ListaMinistracion.Count > 0)
{
    // Existing ministracion found - can add to it
    dplMinistracion.DataSource = ListaMinistracion;
    dplMinistracion.DataTextField = Dictionary.DESCRIPCION;
    dplMinistracion.DataValueField = Dictionary.CODIGO;
    dplMinistracion.DataBind();
    Session["Crip_IsExistinMinistracion"] = "1";
}
else
{
    // No existing ministracion - will create new one
    clsFuncionesGral.Llena_Lista(dplMinistracion, 
        clsFuncionesGral.ConvertMayus(
            " = s e l e c c i o n e= |Nueva Ministracion"));
    Session["Crip_IsExistinMinistracion"] = "0";
}

Linking Payment Categories

List<Entidad> lista = 
    MngNegocioMinistracion.ListaMinistracionesSolicitadas(
        txtArchivoHiden.Text, 
        dplMinistracion.SelectedValue.ToString()
    );

foreach (Entidad ent in lista)
{
    if (ent.Codigo == "17") // Viáticos
    {
        clsFuncionesGral.Activa_Paneles(pnlViaticos, true);
    }
    if (ent.Codigo == "6") // Combustible
    {
        clsFuncionesGral.Activa_Paneles(pnlCombustible, true);
    }
    // Additional categories...
}

Period Management

Ministraciones are organized by fiscal periods:
MngNegocioMinistracion.Obtiene_ClvPeriodo(lsHoy, Year)
This enables:
  • Monthly/quarterly budget reporting
  • Fiscal year reconciliation
  • Period-over-period analysis
  • Budget variance tracking
Ministraciones cannot span multiple fiscal years. Year-end processing requires special handling.

Bank Account Information

Each ministracion tracks both source and destination banking details:

Source Account (Origin)

dplBancoOrigen.DataSource = 
    MngNegocioCuentas.ListaBancos(Session["Crip_Ubicacion"].ToString());
dplBancoOrigen.DataValueField = Dictionary.CODIGO;
dplBancoOrigen.DataTextField = Dictionary.DESCRIPCION;
dplBancoOrigen.DataBind();
Banco_Origen
string
Name of source bank account
Cuenta_Origen
string
Source account number
Clabe_Origen
string
Source CLABE interbank code

Destination Account

Banco
string
Destination bank (employee or vendor)
Cuenta
string
Destination account number
Clabe
string
Destination CLABE code

Next Steps

Create Fund Allocation

Learn how to create and manage ministraciones

Payment Processing

Process payments using ministraciones

Build docs developers (and LLMs) love