Función VirtualXML_Pagos20AddPagoDoctoRelacionadoRetencionDR 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 detallada 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().

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

public static void VirtualXML_Pagos20AddPagoDoctoRelacionadoRetencionDR(
int p,
string BaseDR,
string ImpuestoDR,
string TipoFactorDR,
string TasaOCuotaDR,
string ImporteDR
)

Parametros

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

BaseDR
Tipo: System  String
Atributo requerido para señalar la base para el cálculo de la retención conforme al monto del pago, aplicable al documento relacionado, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.

ImpuestoDR
Tipo: System  String
Atributo requerido para señalar la clave del tipo de impuesto retenido conforme al monto del pago, aplicable al documento relacionado. Revise el catálogo c_Impuesto publicado por el SAT para conocer los valores posibles de este parámetro.

TipoFactorDR
Tipo: System  String
Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto. Revise el catálogo c_TipoFactor publicado por el SAT para conocer los valores posibles de este parámetro.
TasaOCuotaDR
Tipo: System  String
Atributo requerido para señalar el valor de la tasa o cuota del impuesto que se retiene.

ImporteDR
Tipo: System  String
Atributo requerido para señalar el importe del impuesto retenido conforme al monto del pago, aplicable al documento relacionado. 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

// 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_Pagos20AddPago()
                                  VirtualXML_Pagos20AddPagoDoctoRelacionado()
                                  VirtualXML_Pagos20AddPagoDoctoRelacionadoTrasladoDR()
                                  VirtualXML_Pagos20AddPagoImpuestosPRetencionP()
                                  VirtualXML_Pagos20AddPagoImpuestosPTrasladoP()