MGawad
October 27, 2024, 9:09am
1
if i have invoice with value of 100 and with vat equal 15
Net Value = 115
i want to make payable = 105 and make retention discount with 10 that Does not affect to vat
total value = 100
vat = 15
Retention discount = 10
payable = 105
how to apply retention discount in xml but doesnot effect to vat
MGawad
October 28, 2024, 7:15am
2
can i use PayableRoundingAmount to make this retention discount instead of rounding method ?
MGawad
October 28, 2024, 7:20am
3
@MGawad first you need to determine the tax position whether the retention amount will reduce taxable amount or not. This depends on contractual terms.
If you take a tax position that retention amount will not reduce taxable amount, then you have two options for handling retention amount:
Option 1: Do not include any value towards retention amount and display this directly on the human readable form.
Option 2: Include retention amount as "Document Level Allowance (BT-92) with indicator ‘false’ and select VAT Category Code as Out of scope. Then in the tax subtotals, you have to include one more sub total for Out of scope category and enter retention amount as negative value (-10 in above example). As a result, VAT will be calculated on full invoice value (100 in above example) and Amount due for payment (BT-115) will be 105.
1 Like
MGawad
October 28, 2024, 9:12am
6
when i add Document Level Allowance (BT-92) with indicator ‘false’
cac:AllowanceCharge
cbc:ChargeIndicator false</cbc:ChargeIndicator>
cbc:AllowanceChargeReason discount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID=“SAR”>10.00</cbc:Amount>
cac:TaxCategory
cbc:ID O</cbc:ID>
cbc:Percent 0.00</cbc:Percent>
cac:TaxScheme
cbc:ID VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
i get this warning
Is it mandatory to add an out-of-scope item?
[warning] CODE: BR-O-01, MESSAGE: An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) where the VAT category code (BT-151 or BT-95) is ‘Not subject to VAT’ shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to ‘Not subject to VAT’.
[warning] CODE: BR-S-08, MESSAGE: [BR-S-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is “Standard Rated”, the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are “Standard Rate”. and the VAT rates (BT-152,BT-96,BT-103) equal the VAT category rate (BT-119).BR-S-08Business rules - Not subject to VAT (BR-OO)
@MGawad as mentioned in my earlier response, you have to add a tax subtotal for “out of scope” category and populate retention amount value as a negative figure.
MGawad
October 29, 2024, 1:03pm
8
Thank you. It was successful and there are no warnings
@Ankit_Tiwari , @MGawad , @idaoud , @Aturkistani
I will provide my XML. Could you please check if it is correct based on the same invoice total values discussed here?
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Retention</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="SAR">10.00</cbc:Amount> <!-- Retention = 10 SAR (BT-92) -->
<cac:TaxCategory>
<cbc:ID>O</cbc:ID> <!-- "O" = Out of Scope -->
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-SA-OOS</cbc:TaxExemptionReasonCode> <!-- Required for KSA -->
<cbc:TaxExemptionReason>Retention Amount</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
<!-- TaxTotal (VAT remains 15% of 100 SAR) -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="SAR">15.00</cbc:TaxAmount> <!-- Full VAT (15% of 100) -->
</cac:TaxTotal>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="SAR">15.00</cbc:TaxAmount>
<!-- Standard VAT Subtotal (15% of 100) -->
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="SAR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="SAR">15.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5305">S</cbc:ID>
<cbc:Percent>15.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5153">VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<!-- Out-of-Scope Subtotal (Retention) -->
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="SAR">-10.00</cbc:TaxableAmount> <!-- Negative for retention -->
<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount> <!-- Must be 0 for "O" category -->
<cac:TaxCategory>
<cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5305">O</cbc:ID>
<cbc:Percent>0.00</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-SA-OOS</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Retention Amount</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5153">VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- LegalMonetaryTotal -->
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="SAR">100.00</cbc:LineExtensionAmount> <!-- Original amount -->
<cbc:TaxExclusiveAmount currencyID="SAR">90.00</cbc:TaxExclusiveAmount> <!-- 100 - 10 retention -->
<cbc:TaxInclusiveAmount currencyID="SAR">105.00</cbc:TaxInclusiveAmount> <!-- 100 + 15 VAT - 10 retention -->
<cbc:AllowanceTotalAmount currencyID="SAR">10.00</cbc:AllowanceTotalAmount> <!-- Retention amount -->
<cbc:ChargeTotalAmount currencyID="SAR">0.00</cbc:ChargeTotalAmount>
<cbc:PrepaidAmount currencyID="SAR">0.00</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="SAR">105.00</cbc:PayableAmount> <!-- Matches 100 + 15 - 10 -->
</cac:LegalMonetaryTotal>
<!-- Invoice Line (No retention here; handled at document level) -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="Trainees">1.000000</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="SAR">100.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>DEMO PRODUCT</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>15.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="SAR">100.0000</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>
It is not necessarily that the value is negative; if the invoice contains tax out of scope invoicelins and the total RoundingAmount is greater than the Discount retention amount, then the value will be positive.
@Ankit_Tiwari , @MGawad
I will provide my XML. Could you please check if it is correct based on the same invoice total values discussed here?
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Retention</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="SAR">10.00</cbc:Amount> <!-- Retention = 10 SAR (BT-92) -->
<cac:TaxCategory>
<cbc:ID>O</cbc:ID> <!-- "O" = Out of Scope -->
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-SA-OOS</cbc:TaxExemptionReasonCode> <!-- Required for KSA -->
<cbc:TaxExemptionReason>Retention Amount</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
<!-- TaxTotal (VAT remains 15% of 100 SAR) -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="SAR">15.00</cbc:TaxAmount> <!-- Full VAT (15% of 100) -->
</cac:TaxTotal>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="SAR">15.00</cbc:TaxAmount>
<!-- Standard VAT Subtotal (15% of 100) -->
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="SAR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="SAR">15.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5305">S</cbc:ID>
<cbc:Percent>15.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5153">VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<!-- Out-of-Scope Subtotal (Retention) -->
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="SAR">-10.00</cbc:TaxableAmount> <!-- Negative for retention -->
<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount> <!-- Must be 0 for "O" category -->
<cac:TaxCategory>
<cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5305">O</cbc:ID>
<cbc:Percent>0.00</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-SA-OOS</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Retention Amount</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5153">VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- LegalMonetaryTotal -->
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="SAR">100.00</cbc:LineExtensionAmount> <!-- Original amount -->
<cbc:TaxExclusiveAmount currencyID="SAR">90.00</cbc:TaxExclusiveAmount> <!-- 100 - 10 retention -->
<cbc:TaxInclusiveAmount currencyID="SAR">105.00</cbc:TaxInclusiveAmount> <!-- 100 + 15 VAT - 10 retention -->
<cbc:AllowanceTotalAmount currencyID="SAR">10.00</cbc:AllowanceTotalAmount> <!-- Retention amount -->
<cbc:ChargeTotalAmount currencyID="SAR">0.00</cbc:ChargeTotalAmount>
<cbc:PrepaidAmount currencyID="SAR">0.00</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="SAR">105.00</cbc:PayableAmount> <!-- Matches 100 + 15 - 10 -->
</cac:LegalMonetaryTotal>
<!-- Invoice Line (No retention here; handled at document level) -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="Trainees">1.000000</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="SAR">100.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>DEMO PRODUCT</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>15.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="SAR">100.0000</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>
@MGawad Please Can you provide me with Xml To Compare with My Xml. Because My Xml Not Valid
Can you provide me Solution if you Solve It i have the same Xml But Not Valid
Try validating your invoice, it should be without any warnings.
Can you provide Valid Xml for This Example Please If you Solved It .
Thanks for your response but if i have normal discount and retention in same invoice. How Discount in xml will be
1 Like
Treat it as if the retention does not exist, but in the end the AllowanceTotalAmount will be the normal discount value + retention value.
Treat it as if the retention does not exist, but in the end the AllowanceTotalAmount will be the normal discount value + retention value.