VAT and WHT in Winlium
How Winlium sets up, calculates and posts VAT and withholding tax, and how the amounts reach Compliance.
In one minute
VAT is a tax added to sales and purchases. Winlium posts it to a VAT account on every invoice and bill. WHT (withholding tax) is held back from what you pay a supplier. Winlium takes it when you post the supplier payment, not when you post the bill.
Why Winlium has it
Each VAT and WHT amount must reach the right liability or asset account, and the monthly totals must be ready for filing. Setting the tax once, on a Tax record, keeps every document consistent.
How it works in Winlium
Taxes screen
Open Taxes (Accounting, Configurations). Columns: Code, Name, Rate(%), Type, Applies To, Default Account, Status, Created At, Created By. Filters: Status, Type, Applies To. Row actions include Deactivate tax and Delete tax. Duplicate copies the type, applies to, rate, inclusive setting, default account and group. It clears name and code and does not copy the purchase account.
Screenshot pending
Create Tax form showing Identity, Tax Configuration and Accounting sections
- 1Type
- 2Rate (%)
- 3Default Account
| Field | Type | Required | Details |
|---|---|---|---|
| Code | Text | No | Unique in your company. Left blank, Winlium builds it from the name: capital letters and digits, 10 characters at most. Error if used: "Tax code "VAT" already exists". |
| Name | Text | Yes | Error if empty: "Name is required". |
| Description | Text area | No | |
| Is Active | Yes/No switch | No | Deactivate a tax to stop using it without deleting it. Default: On |
| Type | Dropdown | Yes | Winlium treats a tax of type WHT as withholding. Every other type is treated like VAT on a line. VAT — Value Added TaxWHT — Withholding TaxPAYE — Pay As You Earn (graduated)CIT — Company Income TaxExcise — Excise DutyCustom — Import / Custom DutyOther Error if empty: "Type is required". |
| Rate (%) | Number | No | Leave blank if the rate changes per transaction. Hidden for PAYE. Cannot be negative: "Rate cannot be negative". |
| Applies To | Choice | Yes | Sales: invoices and orders. Purchases: supplier bills and purchase orders. Both: all forms. Hidden for PAYE. SalesPurchasesBoth Error if empty: "Applies To is required". |
| Is Inclusive | Yes/No switch | No | On: the price already contains the tax. Off: the tax is added on top. Default: Off |
| Default Account | Dropdown | No | Account used on sales documents. For VAT, normally 2101 VAT Output. Cash, bank and inventory accounts are not offered. |
| Purchase Account | Dropdown | No | Account used on supplier bills and returns. For VAT, normally 1403 VAT Input. If blank, Default Account is used. |
| Tax Group | Dropdown | No | Groups related taxes for reporting and for transaction types. |
Use Save on a new tax and Update on an existing one. New companies get the accounts 1403 VAT Input, 2101 VAT Output and 2104 WHT Payable in the chart of accounts. Winlium does not create taxes for you.
A WHT tax has no separate field for its liability account. Set Purchase Account (or Default Account) of the WHT tax to WHT Payable.
PAYE shows Tax Bands and Relief Allowance instead of a rate. Payroll PAYE, pension and NHF belong to payroll, not to this page.
Tax Groups screen
| Field | Type | Required | Details |
|---|---|---|---|
| Code | Text | No | Built from the name if blank. Error if used: "Tax group code "VAT-GROUP" already exists". |
| Name | Text | Yes | Error if empty: "Name is required". |
| Description | Text area | No | |
| Is Active | Yes/No switch | No | Default: On |
You cannot delete a group that taxes use. Winlium says "This tax group cannot be deleted because it is used by 3 taxes. Deactivate it instead."
Picking taxes on a line
On invoices, credit notes, supplier bills and expense lines, the Taxes column shows chips such as "VAT 7.5%". Select Add tax to search. Only taxes with a matching Applies To show: Sales on sales documents, Purchases on purchase documents, and Both on either. Hover a chip to see the rate, the amount and "Posts to" the account. Taxes may be added automatically from the item or its group.
On a supplier bill, WHT taxes sit in a separate WHT column. The Taxes column holds only VAT and other taxes.
Exclusive and inclusive
- Exclusive: tax = price × rate. The total is price plus tax.
- Inclusive: Winlium backs the tax out. Net = price ÷ (1 + rate). Tax = net × rate.
A line is inclusive when the tax has Is Inclusive on, or when the document switch Prices include VAT is on. Several taxes on one line are each worked out on the same net. WHT is always worked out on the net before VAT.
What posts
| Document | VAT leg |
|---|---|
| Customer invoice | Credit the tax's Default Account (VAT Output) |
| Supplier bill | Debit the tax's Purchase Account (VAT Input), or Default Account if blank |
On a supplier bill, WHT is shown as "WHT to withhold at payment". It is not in Amount Due and nothing posts for it yet.
On a supplier payment, the grid shows WHT and Apply WHT for each bill. If Apply WHT is on, Winlium pays less cash and posts the held amount to the WHT tax's account. Switch Apply WHT off to pay a bill in full. WHT is not supported on foreign-currency supplier payments: "WHT deduction is not supported on foreign-currency supplier payments yet." If the WHT tax has no account: "WHT on "BILL-0001" has no payable account configured. Check the tax record." Voiding the payment reverses the WHT too.
Compliance
When you post, Winlium tells Compliance about each tax amount. Compliance adds it to an obligation for the calendar month of the document (bill date, invoice date or payment date), not the financial period.
- VAT: invoices add, supplier bills subtract. The obligation holds the net.
- WHT: payments add. Nothing is subtracted.
- Voids send a reversal.
New companies start with obligation types for VAT and WHT. Their due date is set to the 21st of the following month, an example from the product's seed settings. Check yours in Obligation Types. See them under Obligation Instances. If no active obligation type matches, the amount is not recorded, and Compliance does not warn the user.
Still manual: filing returns, paying the authority, recording each payment under Remittances, and company income tax. Expense claims send nothing to Compliance. Payroll sends PAYE, pension and NHF on its own.
Example
All figures are examples. Terra Nova Ltd buys goods. Net ₦100,000.00, VAT 7.5%, WHT 5% of net.
Exclusive: VAT ₦7,500.00. Bill total ₦107,500.00. WHT ₦5,000.00. Inclusive: the supplier quotes ₦107,500.00. Net ₦100,000.00. VAT ₦7,500.00.
Ledger impact: Post supplier bill, then post supplier payment with Apply WHT on
Bill, then payment| Side | Account | Where the account comes from | Amount |
|---|---|---|---|
| Dr | Expense or inventory account | Item or GL line account | ₦100,000.00 (bill) |
| Dr | VAT Input (1403) | Tax: Purchase Account | ₦7,500.00 (bill) |
| Cr | Accounts Payable (supplier) | Supplier account | ₦107,500.00 (bill) |
| Dr | Accounts Payable (supplier) | Supplier account | ₦102,500.00 (payment, cash) |
| Cr | Bank | Bank chosen on the payment | ₦102,500.00 (payment) |
| Dr | Accounts Payable (supplier) | Supplier account | ₦5,000.00 (payment, WHT) |
| Cr | WHT Payable (2104) | WHT tax: Purchase Account | ₦5,000.00 (payment) |
The supplier is cleared for ₦107,500.00. You paid ₦102,500.00 and owe ₦5,000.00 to the tax authority.
Where it applies
- Accounting: Taxes, Tax Groups, invoices, credit notes, supplier bills, supplier payments, supplier returns.
- Compliance: Obligation Types, Obligation Instances, Remittances.
- Expense: tax on claim lines, see /docs/expense.
- Period rules: Financial years and periods.
Common mistakes
- Setting a WHT tax to Sales only: it will not show on supplier bills. Use Purchases or Both.
- Leaving Purchase Account blank on VAT: input VAT then posts to the sales VAT Output account.
- Turning Is Inclusive on and also Prices include VAT: the tax is backed out once, not twice.
- Expecting WHT in the bill total. It appears only at payment.
- Using a WHT tax on an Expense claim.
- Forgetting the WHT obligation type is inactive, so nothing reaches Compliance.