Skip to content
WinliumDocs

VAT and WHT in Winlium

How Winlium sets up, calculates and posts VAT and withholding tax, and how the amounts reach Compliance.

Checked against the product 06 Oct 2026

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

  1. 1Type
  2. 2Rate (%)
  3. 3Default Account
FieldTypeRequiredDetails
CodeTextNo
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".
NameTextYes
Error if empty: "Name is required".
DescriptionText areaNo
Is ActiveYes/No switchNo
Deactivate a tax to stop using it without deleting it.
Default: On
TypeDropdownYes
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 (%)NumberNo
Leave blank if the rate changes per transaction. Hidden for PAYE.
Cannot be negative: "Rate cannot be negative".
Applies ToChoiceYes
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 InclusiveYes/No switchNo
On: the price already contains the tax. Off: the tax is added on top.
Default: Off
Default AccountDropdownNo
Account used on sales documents. For VAT, normally 2101 VAT Output. Cash, bank and inventory accounts are not offered.
Purchase AccountDropdownNo
Account used on supplier bills and returns. For VAT, normally 1403 VAT Input. If blank, Default Account is used.
Tax GroupDropdownNo
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

FieldTypeRequiredDetails
CodeTextNo
Built from the name if blank.
Error if used: "Tax group code "VAT-GROUP" already exists".
NameTextYes
Error if empty: "Name is required".
DescriptionText areaNo
Is ActiveYes/No switchNo
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

DocumentVAT leg
Customer invoiceCredit the tax's Default Account (VAT Output)
Supplier billDebit 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
Debit and credit entries for Post supplier bill, then post supplier payment with Apply WHT on
SideAccountWhere the account comes fromAmount
DrExpense or inventory accountItem or GL line account₦100,000.00 (bill)
DrVAT Input (1403)Tax: Purchase Account₦7,500.00 (bill)
CrAccounts Payable (supplier)Supplier account₦107,500.00 (bill)
DrAccounts Payable (supplier)Supplier account₦102,500.00 (payment, cash)
CrBankBank chosen on the payment₦102,500.00 (payment)
DrAccounts Payable (supplier)Supplier account₦5,000.00 (payment, WHT)
CrWHT Payable (2104)WHT tax: Purchase Account₦5,000.00 (payment)

Reversal: Voiding the bill or the payment posts the opposite entries and tells Compliance.

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.