Función VirtualXML_Pagos20AddPago VirtualXML
Agrega información de un pago (parcial o total) a un comprobante fiscal digital versión 4.0 de tipo "P"ago.

Esta función se debe utilizar después de llamar a la función VirtualXML_SetPagos20().

Un CFDI de pago puede contener uno o varios pagos, siendo necesario para registrar otro pago dentro del mismo CFDI, volver a llamar a esta función DESPUES de especificar el(los) CFDIs que el pago cubre, mismos que se indican usando la funcion VirtualXML_Pagos20AddPagoDoctoRelacionado().

Namespace:
 VirtualXML®
Aplicación: CFDI ver. 4.0
Sintaxis

public static void VirtualXML_Pagos20AddPago(
int p,
string FechaPago,
string FormaDePagoP,
string MonedaP,
string TipoCambioP,
string Monto,
string NumOperacion,
string RfcEmisorCtaOrd,
string NomBancoOrdExt,
string CtaOrdenante,
string RfcEmisorCtaBen,
string CtaBeneficiario,
string TipoCadPago,
string CertPago,
string CadPago,
string SelloPago,
)

Parametros

p
Tipo: System  Int32
Identificador en memoria devuelto por la función VirtualXML_New()

FechaPago
Tipo: System  String
Atributo requerido para expresar la fecha y hora en la que el beneficiario recibe el pago. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.En caso de no contar con la hora se debe registrar 12:00:00.

FormaDePagoP
Tipo: System  String
Atributo requerido para expresar la clave de la forma en que se realiza el pago. Revise el catálogo c_FormaPago publicado por el SAT para conocer los valores posibles de este parámetro.

MonedaP
Tipo: System  String
Atributo requerido para identificar la clave de la moneda utilizada para realizar el pago conforme a la especificación ISO 4217. Cuando se usa moneda nacional se registra MXN. El atributo Pagos:Pago:Monto debe ser expresado en la moneda registrada en este atributo. Revise el catálogo c_Moneda publicado por el SAT para conocer los valores posibles de este parámetro.

TipoCambioP
Tipo: System  String
Atributo condicional para expresar el tipo de cambio de la moneda a la fecha en que se realizó el pago. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo MonedaP. Es requerido cuando el atributo MonedaP es diferente a MXN.

Monto
Tipo: System  String
Atributo requerido para expresar el importe del pago.
NumOperacion
Tipo: System  String
Atributo condicional para expresar el número de cheque, número de autorización, número de referencia, clave de rastreo en caso de ser SPEI, línea de captura o algún número de referencia análogo que identifique la operación que ampara el pago efectuado
RfcEmisorCtaOrd
Tipo: System  String
Atributo condicional para expresar la clave RFC de la entidad emisora de la cuenta origen, es decir, la operadora, el banco, la institución financiera, emisor de monedero electrónico, etc., en caso de ser extranjero colocar XEXX010101000, considerar las reglas de obligatoriedad publicadas en la página del SAT en el catálogo c_FormaPago para éste atributo.
NomBancoOrdExt
Tipo: System  String
Atributo condicional para expresar el nombre del banco ordenante, es requerido en caso de ser extranjero. Considerar las reglas de obligatoriedad publicadas en la página del SAT en el catálogo c_FormaPago  para éste atributo.

CtaOrdenante
Tipo: System  String
Atributo condicional para incorporar el número de la cuenta con la que se realizó el pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT en el catálogo c_FormaPago  para éste atributo.
RfcEmisorCtaBen
Tipo: System  String
Atributo condicional para expresar la clave RFC de la entidad operadora de la cuenta destino, es decir, la operadora, el banco, la institución financiera, emisor de monedero electrónico, etc. Considerar las reglas de obligatoriedad publicadas en la página del SAT en el catálogo c_FormaPago  para éste atributo.

CtaBeneficiario
Tipo: System  String
Atributo condicional para incorporar el número de cuenta en donde se recibió el pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT en el catálogo c_FormaPago  para éste atributo.

TipoCadPago
Tipo: System  String
Atributo condicional para identificar la clave del tipo de cadena de pago que genera la entidad receptora del pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT en el catálogo c_TipoCadPago para éste atributo.

CertPago
Tipo: System  String
Atributo condicional que sirve para incorporar el certificado que ampara al pago, como una cadena de texto en formato base 64. Es requerido en caso de que el atributo TipoCadPago contenga información.
CadPago
Tipo: System  String
Atributo condicional para expresar la cadena original del comprobante de pago generado por la entidad emisora de la cuenta beneficiaria. Es requerido en caso de que el atributo TipoCadPago contenga información.
SelloPago
Tipo: System  String
Atributo condicional para integrar el sello digital que se asocie al pago. La entidad que emite el comprobante de pago, ingresa una cadena original y el sello digital en una sección de dicho comprobante, este sello digital es el que se debe registrar en este campo. Debe ser expresado como una cadena de texto en formato base 64. Es requerido en caso de que el atributo TipoCadPago contenga información.
Ejemplo:

private void GeneraDocto(String version)
{
// Creamos un comprobante 
    int hXml = VirtualXML_New("4.0");

// Llenado del documento
VirtualXML_SetComprobanteInfo_cfdi40( hXml, "P", "001", "%cb_date", "", "", "0", "","XXX", "", "0", "P", "01", "26015", "");

    // Datos del emisor 

    // Datos del receptor 

    // Concepto, un comprobante de pago solo lleva un concepto fijo:
VirtualXML_AddConcepto_cfdi40( hXml, "84111506", "", "1", "ACT", "", "Pago", "0", "0", "01");

    // Asignamos el complemento de pagos:
    VirtualXML_SetPagos20( hXml, "1510.48", "1416.09", "", "14160.83", "2265.73", "", "", "", "", "", "13500.00" );

// Agregamos un pago
VirtualXML_Pagos20AddPago( hXml, "2023-04-03T12:00:00", "03", "MXN", "1", "13500.00", "8007246075018235463812615001", "BSM970519DU8", "", "002180065145757870", "CFA950629CAA", "002180065145895321", "", "", "", "" );

// Agregamos un documento relacionado

// Agregamos Impuestos RETENIDOS del documento relacionado
// Agregamos Impuestos TRASLADADOS del documento relacionado

// Agregamos otro documento relacionado
// Agregamos Impuestos trasladados del documento relacionado
// Agregamos Impuestos retenidos del documento relacionado

// Agregamos un documento relacionado mas

// Agregamos Impuestos trasladados del documento relacionado
// Agregamos Impuestos retenidos del documento relacionado

// Seguimos agregando tantos documentos relacionados como incluya el pago, desglosando los impuestos para cada documento

// Finalmente agregamos el total de impuestos del pago, que es la suma de todos los impuestos, trasladados y retenidos, de los Documentos Relacionados
// Estos importes se reflejaran también en la funcion VirtualXML_SetPagos20()

// Agregamos Impuestos RETENIDOS del Pago
// Agregamos Impuestos TRASLADADOS del pago

// Procesamiento del documento
    // .... 

    // Lectura de resultados 
    // .... 

    // Liberacion de memoria
VirtualXML_Free(hXml);
}
Veáse También

VirtualXML_SetPagos20()
                                  VirtualXML_Pagos20AddPagoDoctoRelacionado()
                                  VirtualXML_Pagos20AddPagoDoctoRelacionadoRetencionDR()
                                  VirtualXML_Pagos20AddPagoDoctoRelacionadoTrasladoDR()
                                  VirtualXML_Pagos20AddPagoImpuestosPRetencionP()
                                  VirtualXML_Pagos20AddPagoImpuestosPTrasladoP()