Conector XML Recepción de pagos (Payment´s receipt)
This complement is a receipt in itself that must be created when the consideration is not paid in a single payment (partialities) or when at the time of issuing the CFDI the payment of the consideration is not received (deferred payment).
This connector will also be used when you need to cancel a payment that had already been created previously or when you need to replace a previous payment with a new one.
The complement is valid since July 1, 2017.
- The Miscellaneous Fiscal Resolution 2017 establishes the mechanics for the electronic invoice that is paid in installments. Avoid improper cancellations of CFDI.
- Avoid false duplication of income in partial billing.
- You will know if an invoice has been paid or not.
The calculation of the amount should be considered according to the following formulas:
- Calculate the lower limit as:
- (ImportePagado - (10-NumDecimalesImportePagado)/2) / (TipoCambioDR + (10-NumDecimalesTipoCambioDR)/2-0.0000000001).
- Calculate the upper limit as:
- (ImportePagado + (10-NumDecimalesImportePagado)/2-0.0000000001) / (TipoCambioDR - (10-NumDecimalesTipoCambioDR)/2).
-
These formulas will take effect on the dates:
- Testing environment: July 24, 2018
- Production environment: August 1, 2018
For more information on the calculation of the amount see the news Electronic Payment Receipt (REP) in the case of currency operations
Solución Factible® is preparing the necessary scenarios to make the transition to this new version easier for you.
Complements definition
The Payments 2.0 complement is included within an SFERP XML Connector for CFDI 4.0, using the Payments plugin structure. See XSD de Pagos 2.0 (XSD Payments 2.0).
Nodes
The description of each Node is below.
Some Nodes only need to specify certain attributes:
Others require "child" nodes within these:
Data dictionary
Type | Node or Node attribute | Description |
---|---|---|
R | Node: Pagos | Complement to incorporate payment receipt information. The rest of the Nodes must be found within it. |
Attributes | ||
R | Version | Version of this complement. Fixed value of "02" |
R | Node: Totales | Specify the total amount of payments and the total of taxes, they must be expressed in MXN. |
Attributes | ||
O | TotalRetencionesIVA | Express the total of the VAT withheld taxes that arise from the payments. Negative values are not allowed. |
O | TotalRetencionesISR | Express the total of the taxes withheld from ISR that are derived from the payments. Negative values are not allowed. |
O | TotalRetencionesIEPS | Express the total of the taxes withheld from IEPS that are derived from the payments. Negative values are not allowed. |
O | TotalTrasladosBaseIVA16 | Express the total IVA base transferred at the rate of 16% that arises from the payments. Negative values are not allowed. |
O | TotalTrasladosImpuestoIVA16 | Express the total IVA taxes transferred at the rate of 16% that arise from payments. Negative values are not allowed. |
O | TotalTrasladosBaseIVA8 | Express the total IVA base transferred at the rate of 8% that arises from the payments. Negative values are not allowed. |
O | TotalTrasladosImpuestoIVA8 | Express the total IVA taxes transferred at the rate of 8% that arise from payments. Negative values are not allowed. |
O | TotalTrasladosBaseIVA0 | Express the total IVA base transferred at the rate of 0% that arises from the payments. Negative values are not allowed. |
O | TotalTrasladosImpuestoIVA0 | Express the total IVA taxes transferred at the rate of 0% that arise from payments. Negative values are not allowed. |
O | TotalTrasladosBaseIVAExento | Express the total of the exempt transferred IVA base that arises from the payments. Negative values are not allowed. |
R | MontoTotalPagos | Express the total of the payments that arise from the Payment nodes. Negative values are not allowed. |
R | Node: Pago | Node required to incorporate payment receipt information. |
Attributes | ||
R | FechaPago | Express the date and time in which the beneficiary receives the payment. It is expressed in the form yyyy-mm-ddThh:mm:ss, in accordance with the ISO 8601 specification. If the time is not available, 12:00:00 must be recorded. |
R | FormaDePagoP | Express the key to the way the payment is made. |
R | MonedaP | Identify the currency key used to make the payment in accordance with the ISO 4217 specification. When national currency is used, MXN is recorded. The Pagos:Pago:Monto attribute must be expressed in the currency registered in this attribute.. |
O | TipoCambioP | Express the currency exchange rate on the date the payment was made. The value must reflect the number of Mexican pesos that are equivalent to one unit of the currency indicated in the MonedaP attribute. It is required when the MonedaP attribute is different from MXN. |
R | Monto | Express the amount of the payment. |
O | NumOperacion | Express the check number, authorization number, reference number, tracking key if it is SPEI, capture line or some analogous reference number that identifies the operation that covers the payment made. |
O | RfcEmisorCtaOrd | Express the RFC key of the issuing entity of the origin account, that is, the operator, the bank, the financial institution, the electronic wallet issuer, etc., if you are a foreigner, enter XEXX010101000, consider the mandatory rules published in the SAT page for this attribute according to the catalog catCFDI:c_FormaPago. |
O | NomBancoOrdExt | Expressing the name of the ordering bank is required if it is foreign. Consider the mandatory rules published on the SAT page for this attribute according to the CFDI catalog (xls) c_FormaPago. |
O | CtaOrdenante | Enter the account number with which the payment was made. Consider the mandatory rules published on the SAT page for this attribute according to the CFDI catalog (xls) c_FormaPago. |
O | RfcEmisorCtaBen | Express the RFC key of the operating entity of the destination account, that is, the operator, the bank, the financial institution, the issuer of the electronic wallet, etc. Consider the mandatory rules published on the SAT page for this attribute according to the CFDI catalog (xls) c_FormaPago. |
O | CtaBeneficiario | Enter the account number where the payment was received. Consider the mandatory rules published on the SAT page for this attribute according to the CFDI catalog (xls) c_FormaPago. |
O | TipoCadPago | Identify the key of the type of payment chain generated by the entity receiving the payment. Consider the mandatory rules published on the SAT page for this attribute according to the CFDI catalog (xls) c_FormaPago. |
O | CertPago | Incorporate the certificate that covers the payment, as a text string in base 64 format. It is required in case the TipoCadPago attribute contains information. |
O | CadPago | Express the original string of the payment receipt generated by the issuing entity of the beneficiary account. It is required in case the TipoCadPago attribute contains information. |
O | SelloPago | Integrate the digital seal that is associated with the payment. The entity that issues the payment receipt enters an original string and the digital seal in a section of said receipt; this digital seal is the one that must be recorded in this attribute. It must be expressed as a text string in base 64 format. It is required in case the TipoCadPago attribute contains information. |
R | Payment child node: DoctoRelacionado | Node required to express the list of documents related to payments. For each document that is related, a DoctoRelacionado node must be generated. |
Attributes´s DoctoRelacionado | ||
R | IdDocumento | Express the identifier of the document related to the payment. This data can be a Fiscal Folio of the Electronic Invoice or the operation number of a digital document. |
O | Serie | Specify the series of the receipt for the taxpayer's internal control, accepting a string of characters. |
O | Folio | Specify the folio of the receipt for the taxpayer's internal control, accepting a string of characters. |
R | MonedaDR | Identify the currency key used in the amounts of the related document, when national currency is used or the related document does not specify the currency, MXN is recorded. The amounts recorded in the attributes “ImpSaldoAnt”, “ImpPagado” and “ImpSaldoUnsoluto” of this node must correspond to this currency. Compliant with ISO 4217 specification. |
O | EquivalenciaDR | Express the exchange rate in accordance with the currency recorded in the related document. It is required when the currency of the related document is different from the payment currency. The number of units of the currency indicated in the related document that are equivalent to one unit of the payment currency must be recorded. For example: The related document is recorded in USD. Payment is made for 100 EUR. This attribute is recorded as 1.114700 USD/EUR. The amount paid is equivalent to 100 EUR * 1.114700 USD/EUR = 111.47 USD. |
R | NumParcialidad | Express the partial number that corresponds to the payment. |
R | ImpSaldoAnt | Express the amount of the unpaid balance of the previous installment. In the event that it is the first partiality, this attribute must contain the total amount of the related document. |
R | ImpPagado | Express the amount paid for the related document. |
R | ImpSaldoInsoluto | Express the difference between the previous balance amount and the payment amount. |
R | ObjetoImpDR | Express whether the payment of the related document is subject to tax or not. |
O | DoctoRelacionado child node: ImpuestosDR | Conditional node to record the applicable taxes according to the amount of the payment received, expressed in the currency of the related document. |
O | ImpuestosDR child node: RetencionesDR | Optional node to capture applicable withheld taxes based on the payment amount received. |
R | RetencionesDR child node: RetencionDR | Node required to record the detailed information of a specific tax withholding according to the amount of the payment received. |
Attributes´s RetencionDR | ||
R | BaseDR | Indicate the basis for calculating the withholding according to the amount of the payment, applicable to the related document, the determination of the base is carried out in accordance with current tax provisions. Negative values are not allowed. |
R | ImpuestoDR | Indicate the code of the type of tax withheld according to the amount of the payment, applicable to the related document. |
R | TipoFactorDR | Indicate the key of the type of factor that is applied to the tax base. |
R | TasaOCuotaDR | Indicate the value of the tax rate or fee that is withheld. |
R | ImporteDR | Indicate the amount of tax withheld according to the payment amount, applicable to the related document. Negative values are not allowed. |
O | ImpuestosDR child node: TrasladosDR | Optional node to capture applicable pass-through taxes based on the payment amount received. |
O | TrasladosDR child node: TrasladoDR | Node required to record the detailed information of a specific tax transfer according to the amount of the payment received. |
Attributes of TrasladoDR | ||
R | BaseDR | Indicate the basis for calculating the transferred tax according to the amount of the payment, applicable to the related document, the determination of the base is carried out in accordance with current tax provisions. Negative values are not allowed. |
R | ImpuestoDR | Indicate the code of the type of tax transferred according to the amount of the payment, applicable to the related document. |
R | TipoFactorDR | Indicate the key of the type of factor that is applied to the tax base. |
O | TasaOCuotaDR | Indicate the value of the tax rate or fee that is transferred. It is required when the TipoFactorDR attribute contains a key that corresponds to Tasa or Quota. |
O | ImporteDR | Indicate the amount of the tax transferred according to the amount of the payment, applicable to the related document. Negative values are not allowed. It is required when the factor type is Tasa or Cuota. |
- R= Required
- C= Conditional
- O= Optional
Example
Enlaces externos
- Documentación SAT Liga SAT
Cancel a payment
To cancel a payment receipt, you must add the "status" attribute with a value of "canceled", add within the ComprobanteFiscal node, the Cancellation node with the "reason" attributes with a value according to the reasons for cancellation and optionally you can add a description in "textReason".
Cancellation of a replacement payment
To cancel a substitution payment it can be done in the following two ways, in both of which you must add the "status" attribute with a value of "cancelled".
Add within the ComprobanteFiscal node, the Cancellation node with the attributes "motivo" with a value according to the reasons for cancellation, "uuidSustituye" with the fiscal folio that it replaces and optionally you can add a description in "textoMotivo".
Add within the ComprobanteFiscal node, the Cancellation node with the attributes "motivo" with a value according to the reasons for cancellation, "folioSustituye" with the folio of the invoice that it replaces, "seriesSustituye" with the series of the invoice that it replaces and optionally you can add a description in "textMotivo".
Substitute a payment
To replace one payment receipt with another, it is necessary to add within the ComprobanteFiscal node and before the Receptor child node, the cfdiRelacionados node with the attribute "tipoRelacion" with a value of "04".
This node must have at least one cfdiRelacionado node with a "UUID" attribute or, the folio and serial of the related cfdi.
This node allows adding more than one type of relationship by specifying them in the cfdiRelacionado node.
Solución Factible® reminds you that replacing a receipt will NOT cancel the receipt being replaced, so we recommend first canceling the old receipt and then performing the replacement.
