Función VirtualXML_Pagos20AddPagoImpuestosPRetencionP VirtualXML
Agrega información del CFDI de ingreso que es pagado en un comprobante fiscal digital versión 4.0 de tipo "P"ago.

Se utiliza para registrar la información requerida de una retención de impuesto específico conforme al monto del pago recibido.

Esta función se debe utilizar después de llamar a la función VirtualXML_Pagos20AddPagoDoctoRelacionado(). Y se puede repetir tantas veces como impuestos retenidos tenga el documento.

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

public static void VirtualXML_Pagos20AddPagoImpuestosPRetencionP(
int p,
string ImpuestoP,
string ImporteP
)

Parametros

p
Tipo: System  Int32
Identificador en memoria devuelto por la función VirtualXML_New()
ImpuestoP
Tipo: System  String
Atributo requerido para señalar la clave del tipo de impuesto retenido conforme al monto del pago.. Revise el catálogo c_Impuesto publicado por el SAT para conocer los valores posibles de este parámetro.
ImporteP
Tipo: System  String
Atributo requerido para señalar el importe del impuesto retenido conforme al monto del pago. No se permiten valores negativos.
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

VirtualXML_Pagos20AddPagoDoctoRelacionado( hXml, "FF93C8BE-AF7B-4FC5-8854-6DAE18CFB5B4", "D", "10150", "MXN", "1", "1", "22189.67", "13500.00", "8689.67", "02" );
// Agregamos Impuestos RETENIDOS del documento relacionado
VirtualXML_Pagos20AddPagoDoctoRelacionadoRetencionDR( hXml, "14160.83", "002", "Tasa", "0.106666", "1510.48");
VirtualXML_Pagos20AddPagoDoctoRelacionadoRetencionDR( hXml, "14160.83", "001", "Tasa", "0.100000", "1416.09");
// Agregamos Impuestos TRASLADADOS del documento relacionado
VirtualXML_Pagos20AddPagoDoctoRelacionadoTrasladoDR( hXml, "14160.83", "002", "Tasa", "0.160000", "2265.73");

// 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
VirtualXML_Pagos20AddPagoImpuestosPRetencionP( hXml, "002", "1510.48" );
VirtualXML_Pagos20AddPagoImpuestosPRetencionP( hXml, "001", "1416.09" );
// Agregamos Impuestos TRASLADADOS del pago

// Procesamiento del documento
    // .... 

    // Lectura de resultados 
    // .... 

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

VirtualXML_SetPagos20()
                                  VirtualXML_Pagos20AddPago()
                                  VirtualXML_Pagos20AddPagoDoctoRelacionado()
                                  VirtualXML_Pagos20AddPagoDoctoRelacionadoRetencionDR()
                                  VirtualXML_Pagos20AddPagoDoctoRelacionadoTrasladoDR()
                                  VirtualXML_Pagos20AddPagoImpuestosPTrasladoP()