ADempiere – Thai Withholding Tax

Overview

Purpose

When an organisation render services from vendor or provide services to customer, there will be withholding tax payable or withholding tax receivable occur in business process. The tax will be withhold from the full amount of service price to pay to government at the end of month in case of Tax Payable and at end of year in case of Tax Receivable.

This enhancement is made as the extension to the existing withholding tax functionality by Colombia Localisation Withholding Tax to EXTEND the need about Partial Withholding [1] [2], as well as create a few reports for tax filings (Thai) in order to answer the Withholding Tax needs in Thailand.

Although this is done based on Thailand’s requirement first, our attempt is to make it as universal as possible, and is very welcoming the suggestions and similar business need elsewhere.

Scope

To extend the functionality for Partial Withholding during payment process (Calc on Payment). Each withholding tax line will be created for each Invoice Line incurring withholding tax. User will have ability, upon payment process to,

  1. Adjust how much he/she want to pay for the selected invoice, which will also partial the Withholding Tax to hold.
  2. Adjust Withholding Tax Rate or Tax Base Amount of each Withholding Tax line

Out of Scope

  • Although user can control the payment of withholding tax line by line (via the use of new table LCO_PaymentWithholding), the Normal Tax (VAT) will be calculated in proportion of the amount being paid as of the existing functionality.
  • This feature is not yet included in Payment Allocation form. Although the form it will be functioning as it was without withholding, it is highly recommend to disable that window when withholding tax is involved.

References

Design Considerations

  • Utilize existing features available in Colombian Withholding Tax (LCO), i.e., the setups of withholding types, categories, etc.
  • Develop as extension (on top of) Colombian Withholding Tax (LCO) to extend partial withholding
  • Ability to deploy as package on top of ADempiere 360lts + LCO
  • Make it a generic feature to be used internationally, while answering the need of Withholding Tax in Thailand

Functional Requirements

General information for Thai Tax

This section will refer to 2 majority taxation, VAT and Withholding tax.

  • VAT (Value Added Tax), it is tax added on purchasing and selling transactions which the current rate in Thailand is 7%.
  • WHT (Withholding Tax), it is a tax which is deducted from service expense or income at the point of settlement. In other words, the organisation has to withhold tax when making a payment to vendor for service charge; conversely, the organisation will be withheld tax when receiving service income from customer as well.

There are two methods for WHT calculation, Fixed rate (Percentage) and Progressive rate. However, most of WHT in Thai business is a Fixed rate; thus, for information, this section will refer to this type only.

Thai WHT category and Fixed rate (for general usage):

Insurance premium: 1%

Transportation: 1%

Bank Interest: 1%

Advertisement: 2%

Service: 3%

Liberal Profession: 3%

Commission: 3%

Rent: 5%

Prize/Award from competition: 5%

Public actor/actress: 5%

There are two majority of payment method in Thai business, Full payment (A) and Partial payment (B), therefore, following are cases required for Thai WHT will be described in both methods of payment

Business Cases

Following are business cases that, at least, this extension must cover.

Case 1: General

Case 1A: Invoice – One line, one charge => Full payment
Case 1B: Invoice – One line, one charge => Partial payment

Case 2: Telephone Rent (5%) and service (3%)

Case 2A: Invoice – Two lines, one charge, different WHT Rate => Full payment
Case 2B: Invoice – Two lines, one charge, different WHT Rate => Partial payment

Case 3: Expense allocation for internal management purpose, Guard service (3%)

Case 3A: Invoice – Two lines, one charge, same WHT Rate => Full payment
Case 3B: Invoice – Two lines, one charge, same WHT Rate => Partial payment

Case 4: Vendor provide service (3%) and advertisement (2%)

Case 4A: Invoice – Two lines, two charges, different WHT Rate => Full payment
Case 4B: Invoice – Two lines, two charges, different WHT Rate => Partial payment

Case 5: Vendor provide service for Transportation (1%) and Insurance (1%)

Case 5A: Invoice – Two lines, two charges, same WHT Rate => Full payment
Case 5B: Invoice – Two lines, two charges, same WHT Rate => Partial payment

Note: If vendor provides services are VAT and Non-VAT, they usually separate Tax invoice for each type. That will not be an issue for AD.

Backward Compatibility

To consider this extension completed, following cases must be covered are fully tested.

  • AP Payment & AR Receipt
  • Calculate WHT on invoice process & Calculate WHT on payment process
  • Payment by Cash with WHT (Cash Journal)
  • Work with normal VAT
  • Cases with Landed Cost
  • Cases with Void and Reverse Payment
  • Multi Currency

How it works?

Sample Business Case

The company create a new Invoice (Vendor) to pay for services to a vendor.

  1. Service Fee = $1000, Tax (VAT) 7% = $70, WHT 3% = $30 ==> Total $1070, Withhold $30
  2. Transportation Fee = $1000, No-VAT, WHT 1% = $10 ==> Total $1000, Withhold $10
Total Base Amount = $2000, Total Tax (VAT) = $70, Total WHT = $40
Total Invoice Amount = Base Amount + Tax = $2070

Setup Withholding Rules for a Charge (Sample)

Firstly, for the Withholding Tax to be generated for the specified product or service (charge), a rule must be defined for it. In this case, we need to have rule that calculate WHT for Service and Transportation.

Based on Withholding Tax from Colombian Localisation (LCO), we need to set the followings.

ad_wht_1

The above picture explain that this Withholding Category is for Service and the WHT is 3%. In Charge window, specify Service Charge to this Withholding Category.

ad_wht_2

Generate Withholding

Open Invoice (Vendor) and do the following steps
  • Create an Invoice (Vendor) with 2 line items, select charge for 1) Service and 2) Transportation.

ad_wht_3 ad_wht_4

  • On Payment tab, click on Generate Withholding button
  • Note: Make sure that for AP Invoice document type, the Generate Withholding field is marked as “Y”, and that user’s role have access to the Generate Withholding’s Process.

ad_wht_5

  • On Withholding tab, review Invoice Withholding Lines

ad_wht_6

  • Complete and Post this invoice. And since we have setup in Withholding Rules to Calculate on Payment, posting account will not take WHT in to account yet.

ad_wht_7

  • Next we want to do the payment partially for this invoice.

1st Payment – partial WHT by partial invoice pay amount

Open Payment window and create new AP Payment document.
  • On Payment Allocate Tab, select the invoice, save it and note on the following.
    • Invoice Amount is the base amount include Tax (VAT) = $2070
    • Withholding Amount = $40
    • Amount is the amount to pay = Invoice Amount – Withholding Amount = $2030
    • Tax Amount = $70
    • If pay everything in full, Over/Under Payment = $0.00

ad_wht_8

  • In this case, we only want to pay 50% of the invoice amount
    • Set Over/Under Payment = $1035
    • Withholding Amount is adjusted to the 50% proportion or = $20. This adjustment will be delegate to each Payment Withholding line we will see next.
    • Tax Amount = $35

ad_wht_9

  • On Payment’s Withholding tab, on Withholding Tax for Service you can note that
    • Tax Base Amount is adjusted to the 50% proportion or = $500
    • Withholding Tax Amount is adjusted (from $30) or = $15
  • The same apply to Withholding Tax for Transportation

ad_wht_10

  • On Payment tab, view the summary of this payment.

ad_wht_11

  • Complete this document (generate allocations) and post accounting for this payment

ad_wht_12

  • Open View Allocations window, post accounting for this allocation.

ad_wht_13

2nd Payment – partial by partial tax base amount of payment withholding

Another requirement is to pay partially by changing Tax Rate or Withholding Tax Base Amount from Payment Withholding line itself.

Open Payment window and create new AP Payment document, we want to pay another portion of the same invoice.
  • On Payment Allocate Tab, select the same invoice, save it and note on the following.
    • Invoice Amount is the remaining base amount + Tax (VAT) = $1035
    • Remaining Withholding Amount = $20
    • Amount is the amount to pay = Invoice Amount – Withholding Amount = $1015
    • Tax Amount = $35
    • If pay everything in full, Over/Under Payment = $0.00

ad_wht_14

  • We want to pay withholding tax of service only 50%.
    • Open Payment’s Withholding tab.
    • Initially, Service’s Tax Base Amount of = $500 and Withholding Tax = $15 & Transportation’s Tax Base Amount = $500 and Withholding Tax = $5.
    • Adjust Service’s Tax Base Amount = $250, Withholding Tax = $7.5. Click Save. The adjustment here also make a partial payment.

ad_wht_15

  • Back to Payment Allocate tab, you will see that the reduced Tax Base Amount adjust the payment of this invoice.
    • Remaining Withholding Amount = 7.5 + 5 = $12.50
    • Tax Amount = 3.5% (Avg Tax Rate) X Base Amount = 0.035 X 750 = $26.25
    • Over/Under Payment = Reduced Tax Base Amount + Reduced Tax Amt = 250 + (35 – 26.25) = $258.75
    • Amount to pay = Invoice Amount – Withholding Amount – Over/Under Payment = 1,035 – 12.5 – 258.75 = $763.75

ad_wht_16

  • On Payment tab, view the summary of this payment.

ad_wht_17

  • Complete this document (generate allocations) and post accounting for this payment

ad_wht_18

  • Open View Allocations window, post accounting for this allocation.

ad_wht_19