Documento de Recepción de Pagos 2.0
Liga para timbrar Documentos de Pagos
https://facturas.easysmart.com.mx/cgi-bin/externos/timbrarGR40
Layout para Generar un Documento de Pago
Documentación Complemento Pago SAT
Descargue los documentos técnicos : Estándar del Complemento y Matriz de errores
Estos documentos son esenciales para entender como llenar los datos del layout y reconocer y corregir los errores que pueda regresar el PAC
Símbolo de gato # en layout
Esto es un comentario, una línea de ejemplo para que la puedan incluir, "sin el #", no se deben incluir en el layout real
Notas
- De acuerdo al SAT, la emisión de este documento se realiza únicamente cuando:
- Cuando recibimos un pago horas o días después de la emisión de la factura (venta a crédito)
- Cuando recibimos el pago de una parcialidad
- Cuando el pago se recibió al momento de la emisión de la factura, no se requiere emitir un documento de pago.
- Si la institución de gobierno o empresa le solicita enviar los datos de cadenas de pago de un SPEI
- Recuerde que debe reemplazar los "pipes" del sello de pago por la cadena
|
- Recuerde que debe reemplazar los "pipes" del sello de pago por la cadena
Consideraciones generales más importantes en referencia al complemento versión 2.0
- Si va registrar pagos de facturas en una moneda extranjera y recibe el pago en una moneda diferente se ha introducido el nuevo atributo Equivalencia, para definir la relación entre los tipos de cambios de ambas monedas (la moneda del documento contra la moneda de pago). Leer los detalles en la siguiente sección.
- Objeto Impuesto:
- Si selecciona 01, no debe reportar ninguna línea de retenciones o traslados del documento relacionado.
- Si selecciona 02, deberá agregar todos los nodos de Retenciones y Traslados que apliquen
- Debe seleccionar 02, si el documento que está pagando, tenía nodos de impuestos declarados (que es lo más común)
- Debe agregar los nodos de retenciones o pagos que correspondan al documento que está relacionando, seguido la la línea de documento. Por ejemplo
PAGO_DOCRELACIONADO:...|A|88|MXN|1|1|500|500|0|02
RETENCION_DR:10|001|Tasa|0.100000|1
TRASLADO_DR:100|002|Tasa|0.160000|16
PAGO_DOCRELACIONADO:...|A|88|MXN|1|1|500|500|0|02
RETENCION_DR:10|001|Tasa|0.100000|3
TRASLADO_DR:100|002|Tasa|0.160000|16
- Si el pago es total, deberá indicar que los traslados y retenciones del documento pagado completos.
- Si el pago es parcial, deberá de reportar los traslados y retenciones del documento pagado en el porcentaje que reciba del pago total del documento.
- Todos los datos del documento relacionado son en la moneda del documento. Y los deberá convertir a pesos en los nodos de Impuestos Pagados y los Totales, de acuerdo a las formulas publicadas en los documentos técnicos.
- Redondeos
- Máximo decimales : 6 de acuerdo a la documentación del SAT
- Redondeos en general : trucar a 6 decimales y después redondear si va a redondear a menos de 6 decimales
- TrasladoDR, RetencionDR : Reportar todos los decimales (sin incluir ceros a la derecha), ejemplos: 123.563 , 123.56302, 125.3
- ImpuestosP
- BaseP, reportar sumatoria de BaseDR a máximo de decimales sin ceros a la derecha
- ImporteP, reportar sumatoria de ImporteDR a máximo de decimales sin ceros a la derecha
- Totales
- Bases : Redondeo aritmético a 2 decimales : round(Σ BaseP,2)
- Impuestos : Redondeo aritmético a 2 decimales : round(Σ importeP,2)
- Hay campos que solo aceptan un máximo de 2 decimales, revise la documentación técnica del SAT.
- Campos que solo aceptan 2 decimales : línea TOTALES, sumatorias de bases y sumatorias de importe de impuestos
Conceptos para el pago en diferentes monedas
- Los importes declarados en los valores DR. Deben estar en la moneda del documento relacionado MonedaDR.
- MonedaDR = USD -> ImporteDR, BaseDR, etc. Están expresados en Dólares
- MonedaDR = EUR -> ImporteDR, BaseDR, etc. Están expresados en Euros
- MonedaDR = MXN -> ImporteDR, BaseDR, etc. Están expresados en Pesos
- Los Pagos (ImporteP, BaseP, etc). Deben estar expresados en la Moneda de Pago : MonedaP
- MonedaP = USD -> ImporteP, BaseP, etc. Están expresados en Dólares
- MonedaP = EUR -> ImporteP, BaseP, etc. Están expresados en Euros
- MonedaP = MXN -> ImporteP, BaseP, etc. Están expresados en Pesos
- Por lo tanto deberá convertir los ValoresDR a Valores en MonedaP
- Para esto utilizamos una equivalencia reportada como Equivalencia = TipoDeCambioPago/TipoDeCambioMonedaDR
- ValoresP = ValoresDR / Equivalencia
- Todos los pagos Totales, deben estar expresados en Pesos
- Por lo tanto todos los ValoresP se multiplican por TipoDeCambioP
- PagoTotalX = ImporteP * TipoCambioP
Toda esta lógica está explicada en los manuales técnicos del SAT
Consideración complemento de pago de facturas que contienen diferentes objeto impuestos en sus renglones.
Deberá reportar individualmente la sumatoria de cada objeto impuesto por separado. Relacionando múltiples veces el mismo documento relacionado y llenando los valores de totales de pago con la parte proporcional a cada objeto impuesto.
Por ejemplo, supongamos que tenemos 2 CFDI de Ingreso con los siguientes Conceptos y que vamos a realizar un pago a ambos. Hemos recibido un depósito por el total de ambos documentos.
<!-- cfdi 1 -->
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ="43232400" NoIdentificacion="OBJIMP" Cantidad="1" ClaveUnidad="E48" Descripcion="Objeto impuesto" ValorUnitario="10000.00" Importe="10000.00" ObjetoImp="07">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="10000.00" Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.250000" Importe="2500.00" />
</cfdi:Traslados>
<cfdi:Retenciones>
<cfdi:Retencion Base="10000.00" Impuesto="001" TipoFactor="Tasa" TasaOCuota="0.100000" Importe="1000.00" />
</cfdi:Retenciones>
</cfdi:Impuestos>
</cfdi:Concepto>
<cfdi:Concepto ClaveProdServ="50202200" NoIdentificacion="VINO" Cantidad="1" ClaveUnidad="H87" Descripcion="Vino" ValorUnitario="10000.00" Importe="10000.00" ObjetoImp="02">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="10000.00" Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.265000" Importe="2650.00" />
<cfdi:Traslado Base="12650.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="2024.00" />
</cfdi:Traslados>
<cfdi:Retenciones>
<cfdi:Retencion Base="10000.00" Impuesto="001" TipoFactor="Tasa" TasaOCuota="0.012500" Importe="125.00" />
</cfdi:Retenciones>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
<!-- cfdi 2 -->
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ="50221300" NoIdentificacion="ERRORES" Cantidad="1" ClaveUnidad="XPK" Descripcion="Producto prueba" ValorUnitario="10000.00" Importe="10000.00" ObjetoImp="02">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="10000.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="1600.00" />
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
<cfdi:Concepto ClaveProdServ="56112100" NoIdentificacion="OBJIMP2" Cantidad="10" ClaveUnidad="H87" Descripcion="Objeto impuesto 2" ValorUnitario="1000.00" Importe="10000.00" ObjetoImp="01">
</cfdi:Concepto>
</cfdi:Conceptos>
En el ejemplo previo, podemos ver que existen 3 tipos de objetos impuesto : 01, 02 y 07.
Al momento de que generemos nuestro documento de pago deberemos generar un complemento como el siguiente
<pago20:Pago FechaPago="2024-12-31T12:00:00" FormaDePagoP="03" MonedaP="MXN" TipoCambioP="1" Monto="24087.07" NumOperacion="1111" RfcEmisorCtaOrd="BBA830831LJ2" CtaOrdenante="012010001971040574" RfcEmisorCtaBen="BSM970519DU8" CtaBeneficiario="1504484312">
<pago20:DoctoRelacionado IdDocumento="e52df27d-daec-4ea8-b22a-6c6b96925512" Serie="PFH" Folio="253" MonedaDR="MXN" EquivalenciaDR="1" NumParcialidad="1" ImpSaldoAnt="14842.30" ImpPagado="7421.15" ImpSaldoInsoluto="7421.15" ObjetoImpDR="02">
<pago20:ImpuestosDR>
<pago20:RetencionesDR>
<pago20:RetencionDR BaseDR="5000.00" ImpuestoDR="001" TipoFactorDR="Tasa" TasaOCuotaDR="0.012500" ImporteDR="62.50" />
</pago20:RetencionesDR>
<pago20:TrasladosDR>
<pago20:TrasladoDR BaseDR="5000.00" ImpuestoDR="003" TipoFactorDR="Tasa" TasaOCuotaDR="0.265000" ImporteDR="1325.00" />
<pago20:TrasladoDR BaseDR="6325.00" ImpuestoDR="002" TipoFactorDR="Tasa" TasaOCuotaDR="0.160000" ImporteDR="1012.00" />
</pago20:TrasladosDR>
</pago20:ImpuestosDR>
</pago20:DoctoRelacionado>
<pago20:DoctoRelacionado IdDocumento="e52df27d-daec-4ea8-b22a-6c6b96925512" Serie="PFH" Folio="253" MonedaDR="MXN" EquivalenciaDR="1" NumParcialidad="1" ImpSaldoAnt="11731.84" ImpPagado="5865.92" ImpSaldoInsoluto="5865.92" ObjetoImpDR="07">
<pago20:ImpuestosDR>
<pago20:RetencionesDR>
<pago20:RetencionDR BaseDR="5000.00" ImpuestoDR="001" TipoFactorDR="Tasa" TasaOCuotaDR="0.100000" ImporteDR="500.00" />
</pago20:RetencionesDR>
<pago20:TrasladosDR>
<pago20:TrasladoDR BaseDR="5000.00" ImpuestoDR="003" TipoFactorDR="Tasa" TasaOCuotaDR="0.250000" ImporteDR="1250.00" />
</pago20:TrasladosDR>
</pago20:ImpuestosDR>
</pago20:DoctoRelacionado>
<pago20:DoctoRelacionado IdDocumento="a774fd20-3985-4131-a6cd-b09a5dea5529" Serie="PFH" Folio="254" MonedaDR="MXN" EquivalenciaDR="1" NumParcialidad="1" ImpSaldoAnt="10000.00" ImpPagado="5000.00" ImpSaldoInsoluto="5000.00" ObjetoImpDR="01" />
<pago20:DoctoRelacionado IdDocumento="a774fd20-3985-4131-a6cd-b09a5dea5529" Serie="PFH" Folio="254" MonedaDR="MXN" EquivalenciaDR="1" NumParcialidad="1" ImpSaldoAnt="11600.00" ImpPagado="5800.00" ImpSaldoInsoluto="5800.00" ObjetoImpDR="02">
<pago20:ImpuestosDR>
<pago20:TrasladosDR>
<pago20:TrasladoDR BaseDR="5000.00" ImpuestoDR="002" TipoFactorDR="Tasa" TasaOCuotaDR="0.160000" ImporteDR="800.00" />
</pago20:TrasladosDR>
</pago20:ImpuestosDR>
</pago20:DoctoRelacionado>
<pago20:ImpuestosP>
<pago20:RetencionesP>
<pago20:RetencionP ImpuestoP="001" ImporteP="562.50" />
</pago20:RetencionesP>
<pago20:TrasladosP>
<pago20:TrasladoP BaseP="5000.00" ImpuestoP="003" TipoFactorP="Tasa" TasaOCuotaP="0.250000" ImporteP="1250.00" />
<pago20:TrasladoP BaseP="5000.00" ImpuestoP="003" TipoFactorP="Tasa" TasaOCuotaP="0.265000" ImporteP="1325.00" />
<pago20:TrasladoP BaseP="11325.00" ImpuestoP="002" TipoFactorP="Tasa" TasaOCuotaP="0.160000" ImporteP="1812.00" />
</pago20:TrasladosP>
</pago20:ImpuestosP>
</pago20:Pago>
Observemos que hemos repetido el documento relacionado 2 veces por cada documento para poder reportar individualmente cada objeto impuesto por separado.
Consideraciones importantes
La sumatoria de DocumentoRelacionado:ImpPagado de todos los los documentos relacionados deberá ser igual el monto reportado en pago20:Monto
Por lo tanto deberemos de distribuir el pago que le corresponde a cada documento pagado, la parte que le corresponde a cada objeto de impuesto que se reporta.
Si el pago recibido es parcial, deberemos nuevamente reportar cada pago parcial en los impuestos y saldos pagados e insolutos.
Debe tener cuidado que sus sumatorias no generen Saldos Insolutos negativos.
De la misma forma que reportamos objetos impuesto en el CFDI, deberemos seguir las mismas reglas para desglosar los impuestos en el documento de pago.
ObjetoImp | IVA | IEPS | RET IVA | RET IEPS | RET ISR |
---|---|---|---|---|---|
01 | No | No | No | No | No |
02 | Sí | Sí | Sí | Sí | Sí |
03 | No | No | No | No | No |
04 | No | No | No | No | No |
05 | No | No | No | No | Sí |
06 | No | Sí | No | Sí | Sí |
07 | No | No | No | No | Sí |
Ejemplo Pago
EMPRESA:EXTERNOS|testext452|EKU9003173C9|CTE4049
COMPROBANTE:4.0|VDP4|12174747|12/01/2022|||0|0|XXX||0|P||20200||01
PDF:Aguascalientes, Ags|V9633|12/01/2022|Recibo Pago
RESPUESTA:HTML
RECEPTOR:MSO0206067S5|MICROFLOW SOFTWARE|||CP01||20218|603
RECEPTOR_DIRECCION:La calle|1000||La colonia|20000|Aguascalientes|Aguascalientes|Aguascalientes|México
LINEA:84111506||1|ACT||Pago|0|0||01
COMENT: Prueba de observaciones, es opcional y es una sola linea
PAGOS:2.0
TOTALES:1|1||100|16|100|8||||500
PAGO:2022-01-12T12:00:00|03|MXN|1|500|123456789||||BBA940707IE1|0006985412||||
PAGO_DOCRELACIONADO:3CACDB80-D1C0-4CB9-B312-FDC2193ECB32|A|88|MXN|1|1|500|500|0|02
RETENCION_DR:10|001|Tasa|0.100000|1
RETENCION_DR:10|002|Tasa|0.100000|1
TRASLADO_DR:100|002|Tasa|0.160000|16
TRASLADO_DR:100|002|Tasa|0.080000|8
RETENCION_P:001|1
RETENCION_P:002|1
TRASLADO_P:100|002|Tasa|0.160000|16
TRASLADO_P:100|002|Tasa|0.080000|8
PAGOS_FIN:
FIN:
Ejemplo : Factura USD, pago en Pesos
(Hacer caso omiso de las anotaciones <<--)
PAGOS:2.0
TOTALES:|||24741.69|3958.58||||||28700.00 <-- Totales van en pesos : ValorP * TipoCambioPago
PAGO:2022-05-14T12:00:00|02|MXN|1|28700.00||||||||||| <--- Pago se recibe en pesos, TipoCambio=1
PAGO_DOCRELACIONADO:8d4768fa...28156||5908|USD|0.048780|1|1400.00|1400.00|0.00|02 <--- Factura se emitió en dólares
TRASLADO_DR:1206.90|002|Tasa|0.160000|193.10 <-- valore del documento en dólares
TRASLADO_P:24741.69|002|Tasa|0.160000|3958.58 <-- valores del pago en pesos : ValoresDR / Equivalencia
# Equivalencia = TipoCambioMonedaPago / TipoCambioDocumentoRelacionado
Continuar a: Facturar / Notas de crédito
Continuar a : Generar recibos de nómina
Continuar a : Subir Archivo Batch para escuelas
Continuar a : Retenciones y Pagos