Browse the docs

DocsCountries

Ekwo OS in every country

What ships is the core and the packs the site lists. “What comes next” is a direction, with no date attached.

How one core keeps the books of any country: what the core knows, what a country pack says, where the packs stand today and what comes next. The format of a pack is recorded in decision 0025; the format itself, file by file, is in packs.md.

The premise

A country is data, not code. A module of code per country breaks at every major version, and one product per market splits the users. Ekwo OS ships one core and one versioned pack per country, and a pack is something an accountant can read, a contributor can propose in a pull request, and a test can prove.

No function of the core holds a country code, and a test enforces it. A company is attached to a pack when it is created — ekwo company new "<name>" --country <cc> names it, and nothing assumes one — and everything that differs from one country to the next is read from that pack at run time.

What the core knows, and what a pack says

The core carries the mechanics every ledger shares:

  • double entry enforced by the database, account types, journals, periods, opening balances and a year-end close whose style the pack chooses;
  • taxes as rows — their kind (value added tax, GST, sales tax, withholding), whether they are recoverable, tax-inclusive prices, taxes due on collection, several taxes side by side on one line, and the rounding rule of the country;
  • declarations as boxes and formulas, financial statements as lines and rules, computed by functions that know no country;
  • the invoice as a document answering to EN 16931, with the legal mentions, the numbering and the e-invoicing profile a country prescribes;
  • currencies and their decimals, realised exchange differences, territories and the zones a country belongs to;
  • labels in every language a pack publishes (languages.md).

A pack fills it in: the chart of accounts, or several where a country has more than one; the taxes with their rate history; the declaration form; the balance sheet and income statement schemes; the rules of an invoice; the depreciation rules of fixed assets and, for some countries, the corporate income tax; the translations. Every tax and every box cites the official text it comes from, and every pack carries a year of books with the declaration, the statements and the trial balance they must produce, to the cent.

File formats are separate MIT packages under packages/formats/, organised by format and never by country: a format is used by whichever packs declare it.

Where it stands today

More than a hundred countries ship as packs, each seeded by ekwo init and listed with its version and status in the table of packs, which is generated from the repository and is never a country behind. Among them, the States of the OHADA treaty share one chart of accounts, written once in packs/ohada/, and a country-less packs/generic/ gives any chart a balance sheet that ties out. ekwo.ai publishes a page per pack, generated from it, with what it covers and every source it cites.

What a zone of countries shares is described once, in zones/: the European Union with its intra-Community rules and recapitulative statements, and how a country that stands alone is written, as the United Kingdom and the United States show it.

A pack carries one of four statuses, which ekwo init and ekwo status print:

Status Meaning
community Written from the official texts and checked by the tools and the golden year; no professional has signed it
maintained As above, and kept current by the maintainers
proven As above, and it reproduced the statements a real company filed and the administration accepted, after its books were imported; the pack lists the scopes reproduced and the ones not tested
reviewed Read against the law by a named professional of the country, who signs it

There is no status meaning "certified by Ekwo": writing a pack is not reviewing it. How a professional reviews a pack is in packs.md.

What an international core needs and does not have

Capability Where it stands
A country as a versioned pack, upgraded in place Done — ekwo pack status and ekwo pack upgrade
The rules of an invoice: numbering, payment terms, tax point, legal mentions, e-invoicing profile Done, as pack data
The fiscalisation of invoices: a record chained by a hash, a clearance by the authority before issue, the data reported Done, as pack data and the einvoicing module; the call to an authority is the host's
Opening balances and a year-end close Done — opening_balance(), close_fiscal_year(), reopen_fiscal_year(), and the final close close_fiscal_year_finally(), required where the pack says so
A tax engine beyond the European value added tax Done — GST, sales and use taxes, withholding, non-recoverable and tax-inclusive taxes, taxes computed inside their own base, several taxes on one document
Taxes due on collection Done; cash accounting as a ledger is not
Exchange differences Realised differences done; revaluation of open items not yet
A cash-flow statement Not yet — the format accepts one, and no pack prescribes it yet
Consolidation across companies Not yet
A pack proved against figures Done — a golden year per pack, and a legal source on every tax and box

How a country is added

A country is added the same way whoever adds it: from the official texts, in a pull request, checked by ekwo pack check and proved by its own year of books. The walkthrough is Adding a country in a day, and CONTRIBUTING.md lists the invariants a pack may not break. A correction to an existing pack follows the same path; the professional who knows a country is the person whose review turns a community pack into a reviewed one.

What comes next

In no promised order, and without dates:

  • Reviewed packs — named professionals reading the packs of their country.
  • Deeper coverage per country — more declarations as files, corporate income tax for more countries, the electronic invoice sent and received where a country requires it.
  • The European One-Stop Shop, read from the same two facts the recapitulative statements use: the treatment of the tax and the country of the customer.
  • Revaluation of open items, the cash-flow statement and consolidation, for groups and companies trading in several currencies.

The criteria of the 1.0 release are in road-to-1.0.md.

Deliberately out of scope

Inventory, payroll, point of sale and its certifications. A products table exists so that inventory can come later as its own schema, as decision 0044 describes. Rates that depend on a delivery address — American district sales taxes, for instance — belong to a rate provider: the core models the shape of the tax, and a pack carries the statewide rates.

What the packs do not say yet

Each pack's own README says what it leaves out, and its page on ekwo.ai prints it. Two things hold for every pack today: no pack is reviewed yet, and some packs declare bank statement formats no reader in this repository parses yet — ekwo pack check warns about each one. A silence a pack cannot fill from an official text is stated as such rather than guessed.

From Zimbabwe

Fiscalisation is a device, not a network. Since 1 January 2026 a tax invoice under the Value Added Tax Act [Chapter 23:12] is a fiscal tax invoice: printed by a fiscal device approved by ZIMRA, transmitted to and signed by the Fiscalisation Data Management System (FDMS), and shown valid on its portal (s. 2(1), as substituted by the Finance Act, 2025, s. 35). The device registers with a certificate, opens and closes fiscal days, signs every receipt (SHA-256, device key), submits it to the Fiscal Device Gateway API, keeps a daily counter and a global number, and prints a QR code built from ZIMRA's verification URL, the device ID, the date, the global number and a hash of the signature (API specification v7.2). Input tax is claimed only on such invoices, which TaRMS now pulls from the FDMS. The socle has no device certificate, no fiscal day, no signature and no QR code; the pack declares einvoicing.obligation: none, since nothing obliges an exchange between businesses, and every document carries a mention saying it is not a fiscal tax invoice. What would close the gap: a virtual fiscal device module that signs and submits each posted sale and credit note and stores the FDMS signature and QR code. Same family as Zambia (Smart Invoice), Kenya (eTIMS), Uganda (EFRIS) and Tanzania.

The buyer's telephone. Section 20(4) and ZIMRA Public Notice No. 30 of 2025 ask for the buyer's contact details on a fiscal tax invoice; the contact has a phone, the document view does not carry it.

Two currencies, one ledger. The US dollar circulates beside the Zimbabwe Gold (ZWG). VAT received in foreign currency is paid in that currency, import VAT and the tax on imported services in foreign currency (s. 38(4), (4a), s. 13(6)), and Part V of the VAT 7 splits sales, purchases and the amount payable between foreign and local currency. A box adds up postings and cannot be filtered on the currency of the document, so Part V is not computed. The pack's default currency is ZWG and the company chooses its own at init. The golden format has no document currency either, so a scenario cannot show an invoice in USD beside one in ZWG.

Category A periods. Section 27 assigns two-month periods ending in odd months (Category A) or even months (Category B). bimonth is anchored on January–February, which is Category B; Category A's December–January cannot be expressed.

Two deadlines. The return is due on the 10th and the payment on the 15th (Statutory Instrument 81 of 2025); a form holds one deadline.

Credit notes on their own line. The VAT 7 declares debit and credit notes as adjustments (lines 18 and 29) at the VAT-inclusive consideration. The pack routes credit-note postings there with the value net of tax; the form's consideration is value plus tax.

A time of supply of five clauses. Section 8(1) takes the earliest of invoice, payment, removal, possession and performance; the format's nearest value is earliest_of_delivery_or_payment.

No TIN field. Zimbabwe has a TIN (ten digits) and a VAT number (nine); the pack maps the TIN onto the registration number.

From Malaysia

An invoice the authority validates before it is issued. Under the Income Tax Act 1967, s. 82C, and the Income Tax (Issuance of Electronic Invoice) Rules 2024, an e-Invoice is submitted to LHDNM's MyInvois system — through its portal, its API or a Peppol service provider — and is the taxpayer's only once MyInvois has validated it: LHDNM returns a Unique Identifier Number, the moment of validation and the link to its validation page, which the e-Invoice carries as a QR code when it is shared with the buyer. Within 72 hours of the validation the supplier may cancel it and the buyer reject it, each with a reason; afterwards it is corrected by a credit note. The core holds this shape as a clearance regime of einvoicing.fiscalisation, beside the chained record and the report, written after comparing MyInvois with Poland's KSeF and Italy's SdI: the pack says where the verification link comes from (here, returned) and the two windows (PT72H), and the einvoicing module keeps each submission in einvoicing.clearances — submitted, validated with the identifier, the moment and the link, rejected by the authority or the buyer, cancelled — refusing every transition that cannot have happened and every cancellation or rejection after its window. The status names each posted sale without a validation. The document submitted is written by @ekwo-ai/myinvois through the ordinary path of issue: the tax type of each tax and the classification of each line are attributes the pack gives (tax_attributes, line_attributes), and the identifiers LHDNM asks of both parties — a TIN, an SST registration — are identifiers of the company and of the contact, by the scheme the format names them. What would close the rest is a host that calls MyInvois — its authentication, and the signature version 1.1 asks — and reports back through record_clearance_submission() and record_clearance_answer(). Same family as Poland (KSeF), Italy (SdI), Saudi Arabia (ZATCA, phase 2), India (IRN), Mexico (CFDI) and Turkey, each a pack that can declare the same block.

An obligation by size, and a threshold that moves by guideline. LHDNM phased the duty by annual turnover or revenue — above RM100 million from 1 August 2024, RM25 million from 1 January 2025, RM5 million from 1 July 2025, RM1 million from 1 January 2026 — and its guideline sets the threshold below which a taxpayer is exempted, raised to RM1,000,000 in December 2025 and to RM3,000,000 by version 4.8 of 30 August 2026, § 1.6.1(e). The pack carries both as dated data: each step of mandatory_from with its turnover_above, and exemption as a history that gains an entry when the threshold moves. Two gaps stay. The books do not hold a company's turnover, so the status cannot tell which step binds a company, or whether it is exempted: it counts from the earliest step and says the threshold in force, and the answer is the company's. And the RM1,000,000 threshold is not an entry, because no text the pack cites gives the day it took effect; the RM3,000,000 one is dated from the guideline that states it.

Cancelled at the authority, undone in the books. A cancellation in MyInvois voids the e-Invoice; the ledger still holds the posted sale until cancel_document() undoes it, with a credit note in the books. The status lists a sale cancelled at the authority and still posted, and does not count the credit note that undoes it as missing a validation of its own. A buyer's rejection leaves the e-Invoice valid until the supplier cancels it; the status lists it apart.

No VAT number, and a TIN with no scheme. Malaysia levies Sales Tax and Service Tax, not a value added tax, so vat_scheme is empty; the Tax Identification Number is a LHDNM identifier with no ISO 6523 scheme found, and the party scheme is the SSM registration number, 0230.

From Botswana

Tax periods that start in December. Under s. 54 of the Value Added Tax Act, 2026, a Category A registered person files for two months ending in January, March, May…; bimonth is anchored on January and fits Category B only. The pack declares month and bimonth and no default cadence.

An electronic billing system that reports to the administration. Section 15 of the Tax Administration Act, 2026 obliges every taxpayer to issue invoices through a billing system approved by the Botswana Unified Revenue Service. It is a reporting system, with no Peppol profile and no party scheme, so einvoicing.obligation is none; the date it becomes binding is set by regulations the pack could not open.

A suspension by notice. The charging of VAT on private medical services was suspended by a public notice of 30 July 2026; the Act itself still makes them taxable. The pack carries no code for them rather than invent a treatment.

From Namibia

Namibia levies a value-added tax at 15 % (Value-Added Tax Act, 2000, s. 6(1)), filed on the Namibia Revenue Agency's ITAS portal on a two-month tax period by the 25th of the month after it. The pack (packs/na) fits the format without a change to the core; what it could not carry is written in its README:

  • The registration threshold is data the format has no field for. The Amendment Act, 2024 raises it from N$500 000 to N$1 000 000 on a date the Minister fixes by notice in the Gazette, which the pack did not find.
  • Category A periods. bimonth is anchored on January–February, the Category B of the Act; Category A (ending January, March…) is not expressible.
  • Imported services are declared on an import declaration and the form does not say on which row; the pack assumes row 15 and says so.
  • E-invoicing has no official date or platform yet, so the obligation is none.

From Lesotho

Rates in regulations, not in the Act. The Value Added Tax Act, 2001 leaves the rates to regulations (s. 19(3), at most four including zero). The pack dates its codes from 1 April 2021, the last rate change in the Gazette notices it read, and carries 15 %, electricity at 10 % and the zero rate; the consolidated regulations were not read.

Clearance e-invoicing. The Value Added Tax (E-Invoicing) Regulations, 2026 make a vendor issue invoices from an accredited billing system registered on a tax-authority platform. The core has no clearance step; obligation is none and the pack says so.

A return form with no published numbering. The boxes follow s. 20(1) of the Act (output tax less input tax) and are numbered by the pack, since the form the Commissioner prescribes was not found in a readable text.

From Mongolia

A ten per cent VAT with a return on the 10th. The Law on Value Added Tax of 2015 fixes 10 % (article 11), a zero rate and an exemption list (articles 12 and 13), and the return and payment by the 10th of the following month (article 16.1). Amendments announced for 1 January 2027 would move the deadlines by about ten days; the pack carries the 10th until the final text is read.

Chart and return form not readable. The annex of the Ministry of Finance order that lists the accounts, and the approved return form, could not be read from an open source: the chart's classes and the boxes' names are the pack's own, and the README says so.

State receipt system. Every sale gives a receipt sent to the state's integrated system (ebarimt, article 17); the core has no clearance step, so einvoicing is left empty.

From Tajikistan

A rate that changes on a date written in the transitional provisions. Article 264 of the Tax Code states the standard VAT rate as 15 %, and article 397(4) replaces it by 14 % from 2024 to 2026 and 13 % from 2027. The pack carries the rate in force in each period as two dated codes (TJ-S-14 ending on 2026-12-31, TJ-S-13 starting on 2027-01-01) rather than the number of the article that the transitional rule overrides.

A chart read only in part. The Ministry of Finance's order No. 41 of 2011 was readable as far as account 33300; the accounts of its income and expense sections are the pack's own, numbered by guess, and the README says so.

Reduced rates without credit. The 7 % and 5 % rates carry no right to credit input VAT (article 266 speaks of the standard rate only); the pack adds their tax to the standard tax before the credit, and a payer mixing rates is not modelled.

Reverse charge without credit. The tax a buyer withholds from a foreign supplier (article 260) is paid with the return and never credited; the pack posts it to a non-recoverable VAT expense against the collected-VAT account.

A return form with no readable text. The boxes follow articles 264 to 266 and are named by the pack, since the form approved by the finance authority was not found in a readable text.

From Turkmenistan

A fifteen per cent VAT with a return on the 20th. The Tax Code fixes 15 % (article 103), a zero rate and an exemption list (articles 105 and 106), and the monthly return by the 20th of the following month and payment by the 25th (article 111). Legal entities of private ownership are not VAT payers under article 95; the pack describes no registration rule and says so.

Input tax follows payment. Article 110 credits the tax paid to suppliers; the core posts the credit on the invoice, so a purchase not yet paid at the month end needs a manual correction.

Chart and return form not readable. The standard chart of accounts and the approved return form could not be read from an open source: the chart's classes and the boxes' names are the pack's own, and the README says so. The state language is not carried yet; names are in Russian with English in i18n.

From Uzbekistan

A chart replaced on 1 January 2025. The chart of accounts published for years as standard No. 21 (order of 2002) lost its force on 1 January 2025 and a new text took its place (Ministry of Economy and Finance, order No. 191 of 2024). The pack copies the new one, all 321 accounts of its chapters 1 to 4, and leaves out the off-balance chapter.

Tax kept "by type" in a single account. The instruction books input VAT in 4410 and the debt to the budget in 6410, each with an analytic ledger by tax. The pack gives that ledger its own sub-accounts, because the pack format needs the posting accounts and the settlement account of a tax to differ.

A tax point that takes the earlier of two dates. Article 242 of the Tax Code dates a supply of goods at the earlier of the invoice and the shipment; the format holds a single trigger, so the pack uses the delivery date and says so.

Exempt supplies with a proration of the credit. A payer with taxable and exempt supplies credits only part of its input tax (articles 267 and 268); the pack has no proration, so a payer in that position adjusts by hand.

A return form with no readable text. The boxes follow articles 258 to 274 and are named by the pack, since the form approved by the tax authority was not read.

From Bhutan

A five per cent GST in force from 1 January 2026. The Goods and Services Tax Act of Bhutan 2020 sets 5 % (Schedule I, as amended in 2025), a zero rate for what is consumed outside Bhutan (Schedule V) and exemptions (Schedule IV). The pack starts every code on that date; the sales tax before it is not carried.

A deadline counted in days. Section 38 gives thirty days after the end of the period; the pack format has a day of the month, so it carries day 30, which is exact except after January. A rule counted in days from the end of the period would be a change of the format, not of this pack.

A reverse charge that is also a credit. Section 33 lets the purchaser of an imported business-to-business service deduct the tax it accounts for; the pack posts the output tax and the input tax in two boxes of the return.

From Cambodia

A ten per cent VAT, a monthly return, and texts that are scans. Sub-Decree 49 (2024) gives the tax on a tax-inclusive price as 1/11 (article 30(2)), a zero rate for exports (article 29(1)(e)) and the credit on tax paid for taxable supplies (articles 11 and 19). The General Department of Taxation publishes its texts as scanned Khmer images; the sub-decree was read as images, the Law on Taxation of 2023 and the Law on Accounting and Auditing were not, and the lists of zero-rated and exempt supplies are therefore not in the pack.

Two due dates for one return. The GDT home page shows the 20th of the following month for a manual return and the 25th for an online one; the format has one deadline, and the pack declares the 20th.

Time of supply with seven days of grace. The supply takes place when the invoice is required or issued if earlier, due seven days after delivery or performance (article 25(1)(a)); the vocabulary of tax_point has no value for the invoice itself.

Credit excluded or prorated. Article 13 excludes the tax on accommodation, meals, entertainment, passenger vehicles and petroleum products for most taxpayers, and article 15 prorates the credit of a taxpayer with taxable and non-taxable supplies. A purchase code that posts a part of the tax to the expense is not expressible as a rate on the line; the pack assumes full deductibility and says so.

A currency with no minor unit, used alongside the dollar. The riel has no decimals; businesses also bank in US dollars. The pack keeps the books in riel.

From Lao PDR

The pack carries VAT at 10 % (restored from 7 % by the Ordinance of 19 March 2024), the zero rate on exports of goods, four exemptions, a monthly return and two statements, in English.

A law read through summaries. The Law on Value Added Tax No. 48/NA of 2018 is published in Lao only. The articles are cited as summarised by law firms and a tax summary; a Lao reader must confirm them. The return is dated the 15th of the following month on one such reading, and one source suggests that monthly deadlines may have moved to the 20th.

A currency with no minor unit in use. The kip is carried with no decimals, as the dong and the won are.

No readable chart, form or portal. The enterprise chart of accounts, the VAT return form and the Tax Department site could not be read from the machine that wrote the pack; the chart is the pack's grouping, the boxes are named after the operations of the Law, and the portal source is the Ministry of Finance.

From Nepal

A flat thirteen percent. The Value-Added Tax Act, 2052 sets one rate (section 7(1)), a zero rate for the transactions of Schedule 2 (section 7(2)) and an exemption for those of Schedule 1 (section 5(3)). The pack carries one code for each; the Schedules themselves were not readable, so it lists no items.

A month that is not a Gregorian month. Section 18 has the return filed within twenty-five days of the completion of the month, and Nepal counts its months in the Bikram Sambat calendar. The pack format has Gregorian periods and a day of the month, so it carries day 25 of the following month as an approximation. A period defined in another calendar would be a change of the format, not of this pack.

A year that begins in the middle of July. The income year opens on the first of Shrawan, about 16 July; the format offers july, a year that begins on 1 July.

A reverse charge that is also a deduction. Section 8(2) makes the person who acquires a service from outside Nepal assess the tax and section 17(5b) lets it be deducted; the pack posts the output tax and the input tax in two boxes of the return.

From Burundi

Three rates in one law. The amended law of 2013 sets an ordinary rate of 18 % (article 19), an intermediate rate of 10 % for a closed list of products and the supplies of hotel establishments, and a zero rate for exports and international transport. The pack carries one tax for each, and the 10 % has its own box in the return. The items that depend on a ministerial ordinance (listed foodstuffs, operations assimilated to exports) are not listed, because no ordinance was readable.

A chart the law cites and no open source gives. Article 51 requires books kept as the national accounting plan provides, and the plan itself (PCN) could not be read; the pack's chart is its own grouping and says so.

An electronic billing machine that is not an exchange format. Article 47 obliges every taxpayer to invoice through an approved machine linked to the administration's EBMS system. The format has no way to model such a link, so einvoicing.obligation is none and the machine is described in the README.

Zero decimals. The Burundi franc has no minor unit in use, as the Lao kip: amounts in the golden are whole francs.

From Cabo Verde

The pack carries the Código de Contas of the national accounting system (SNCRF) as a chart of 224 accounts, VAT at 15 % with the export exemption and six exemptions coded, the tax a buyer assesses on a service from abroad, a monthly return in the field numbers of the Modelo 106, and two statements, in Portuguese.

A text read in the Boletim Oficial, up to 2015. The Código do IVA is read in the Boletim Oficial that republishes it (Lei n.º 51/VIII/2013) and in its amendment of 2015; the budget laws since were not searched, and the current consolidated text was not found on the site of the tax administration. A reader in Cabo Verde must confirm the rate, the exemptions and the version of the form.

An official chart. Unlike several pages of this file, the chart is not the pack's own grouping: Portaria n.º 49/2008 publishes the Código de Contas and the pack takes its codes and names, classes 1 to 7, down to the levels a trading company posts to, with the code's own sub-accounts of 244 for the VAT.

A form that cannot be fully filled. The return carries the fields of the Modelo 106 that a plain trading company needs; the cash regime of public works, the pro rata, the imports paid by the taxpayer, the carried credit and the refund request are not modelled.

A clearance platform. The e-Fatura authorises tax documents in real time and asks accredited taxpayers to use it; Ekwo does not connect to it, and no obligation is declared.

From Djibouti

A rate that moved and a guide that did not. The VAT law of 2008 set a standard rate of 7 % (article 19) and the Ministry's guide, with its form, still shows 7 %. The Code général des impôts 2016 (article 187) says 10 %, which the pack carries; the finance law of 2015 that raised it was not read. One rate, one zero rate, five exemptions coded.

A form of 22 lines. The monthly return has lines for goods, services and self-supply, for investments and purchases, imported and local. The pack keeps eight boxes (taxable sales, tax collected, exports, exempt sales, total, deductible tax, net due, credit); the split between imported and local purchases, the carry-forward of a credit and the refund request are not modelled.

A chart nobody publishes. No national chart of accounts could be read; the pack's chart is its own grouping and says so.

Zero decimals. The Djibouti franc has no minor unit in use: amounts in the golden are whole francs.

From Madagascar

A Code that is readable and a Plan that is not. The Code des impôts, in its finance-law-2024 edition, gives the whole VAT chapter: a 20 % normal rate, a 5 % rate for butane gas, a zero rate for exports (article 06.01.12) and a return filed by the 15th of the following month (06.01.16). The Plan comptable général 2005 is compulsory, but only the models of its financial statements could be read, not its list of accounts; the pack's chart is its own and says so.

A tax paid by the beneficiary. Article 06.01.09 bis makes the beneficiary of a service from a person without an establishment liquidate the tax on a separate form. The pack posts the tax and its deduction in two boxes of the monthly return; the separate form is a gap in the pack.

A threshold the pack cannot enforce. VAT is compulsory from an annual turnover of 400 000 000 ariary (article 06.01.04). The format has no turnover threshold, so the pack carries the codes and the README tells a smaller business not to use them.

From Mauritania

A plan older than the Code. The chart is the Plan comptable général annexed to Ordinance no. 82-180 (1982), whose two-digit accounts are compulsory and whose subdivisions are indicative. The pack keeps its numbers and adds a few accounts of its own, listed in the chart's legal_reference. A revision of 1999 is cited by the Ministry and could not be read.

One rate and a long list of exemptions. Article 230 sets 16 % and a zero rate for exports; article 215 exempts about thirty operations, among them medical acts, teaching, bread, vegetables, meat and fish, and a quota of water and electricity. The pack carries one exempt code and leaves the item to the accountant.

Services taxed when paid. Article 228 makes the tax on goods chargeable on delivery and on services on collection of the price. Ekwo's cash_basis requires a transition account and a code per treatment, and the golden has no service on credit to prove it; the pack declares delivery_date and writes the gap in its README.

Tax paid at customs. Importers pay the VAT before the goods leave the customs office (article 254); the pack posts it to account 4361 and deducts it in the box for imports.

From Malawi

The pack carries VAT at 17.5 % (raised from 16.5 % on 30 December 2025; only the new rate is carried), the zero rate on exports and on the items of the Second Schedule, the exemptions of the First Schedule, the VAT charged on imports and on imported services, a monthly return due on the 25th and two statements, in English.

A law read in its 2014 consolidation. The Value Added Tax Act could be read only as consolidated to 31 December 2014; the rate of 17.5 % comes from the Authority's public notice, the amending Act is behind a login, and the Schedules, the registration threshold and the e-invoicing rules since then could not be checked.

No readable VAT return form. The Authority's site is a script-driven application and its forms library needs a login, so the rows of the return are the pack's own, named after the operations of s. 34 and s. 30.

Real-time clearance. The Electronic Invoicing System of the Authority replaces fiscal devices; the socle has no way to call it, so einvoicing.obligation is none.

From Seychelles

One signed figure for lines 10 and 11. The Seychelles Revenue Commission's VAT return prints the VAT due in box 10A and the VAT credit in box 11B, only one of the two filled. The pack carries one total, box 10, which is output tax minus input tax credit: positive is line 10, negative is line 11. The refund claim and the credit carried to the next period (line 8) are not postings of the format.

Two dates for the same return. The Revenue Law (Amendment) Act 2023 gives the 21st of the month for a return furnished in person and the 23rd through the Tax Portal, which a large business must use. The format holds one day; the pack keeps the 23rd.

A threshold that moved. The Schedules of 2014 set the registration threshold at SCR 3,000,000; the Commission's notice on S.I. 97 of 2024 gives SCR 2,000,000. The pack does not model registration; the README says which text was read.

No reverse charge, no adjustments. The text of the Act itself was not found, only the Schedules, the form and the Commission's brochures, so the tax assessed on services bought from abroad, the input tax apportionment of a mixed taxpayer and the adjustments of lines 3 and 7 are left to the preparer.

Rendered from docs/international.md, in the repository, when the site was built. Read or change it on GitHub