Back to Blog

November 13, 2026

Odoo 20 Lands a Full South Korean Localization With K-GAAP, Toss Payments, and a Multi-Tier VAT Engine

Odoo 20 ships a complete fiscal localization for South Korea covering K-GAAP six-digit chart of accounts, 10% standard VAT with deemed input tax for simplified taxpayers, Toss Payments integration, Business Registration Number validation, four fiscal positions, and proof-of-issuance tracking across accounting and sales.

Diagram showing the Odoo 20 South Korean localization architecture with K-GAAP chart of accounts, tax system, fiscal positions, Toss Payments integration, and BRN validation

South Korea is the world’s twelfth-largest economy, home to Samsung, Hyundai, and one of the most digitized consumer markets on the planet. Korean businesses transact almost entirely through electronic tax invoices, collect VAT at rates that shift depending on taxpayer classification, and file returns against a chart of accounts prescribed by K-GAAP — Korea’s Generally Accepted Accounting Principles. Yet until now, running Odoo in Korea meant patching together custom modules or maintaining a parallel accounting system for statutory compliance.

That gap just closed. Odoo 20 introduces a native South Korean localization built across three modules that cover the chart of accounts, tax reporting, and sales workflows. The implementation is thorough enough to handle everything from a Seoul-based SaaS startup filing simplified returns to a Busan manufacturer issuing export invoices with proper fiscal positions.

K-GAAP Chart of Accounts With Six-Digit Precision

The foundation of any localization is the chart of accounts, and Korea’s is distinctive. K-GAAP mandates a hierarchical account structure where each account carries a six-digit code. The first two digits identify the account category — assets, liabilities, equity, revenue, or expenses — while the remaining four digits drill into specific account types with enough granularity to satisfy Korea’s National Tax Service reporting requirements.

The localization ships with the full K-GAAP account tree preconfigured. For fixed assets, it includes four built-in depreciation models: no depreciation (for land and similar non-depreciable assets), 5-year straight-line, 20-year straight-line, and 40-year straight-line. These map to the most common useful-life assumptions under Korean tax law, where buildings typically depreciate over 20 or 40 years and equipment over 5. Companies can modify these or add their own, but the defaults cover the majority of scenarios without any configuration.

A VAT System That Handles Three Taxpayer Categories

Korea’s value-added tax runs at a flat 10% on most goods and services, but the simplicity ends there. The tax system distinguishes between regular taxpayers, simplified taxpayers with lower turnover, and exempt transactions — each with its own reporting obligations and input tax treatment.

The localization maps this structure faithfully. On the sales side, there are three tax codes: 10% standard, 0% for zero-rated transactions, and Exempt. On the purchase side, the tax matrix is considerably richer. Businesses can record 10% VAT on standard purchases, 10% on fixed asset acquisitions (tracked separately for reporting), 4% on diplomatic purchases, 3% on specific reimbursement categories, and import taxes on goods entering the country. Each purchase tax code feeds into the right line of the VAT return without manual reclassification.

The real complexity sits with simplified taxpayers. Under Korean tax law, businesses below a certain revenue threshold calculate their deductible input tax as a fixed percentage of their purchases rather than claiming the actual VAT paid. This “deemed input tax” mechanism is unusual by international standards and most ERP systems ignore it entirely. Here, it’s built in. The system applies a configurable deemed input rate to qualifying purchases and computes the deductible amount automatically, so small-business owners filing simplified returns don’t need a spreadsheet to figure out what they can actually deduct.

Four Fiscal Positions Cover Every Transaction Type

Fiscal positions in Odoo control how taxes and accounts map to different transaction types. The Korean localization ships with four that cover the standard scenarios Korean businesses encounter: Domestic (the default for intra-Korea sales and purchases), Overseas for export and import transactions, Indirect Export for goods sold domestically but destined for re-export, and Domestic Exempt for tax-free categories like medical services, education, and basic foodstuffs.

When a sales order or vendor bill is assigned a fiscal position, the system automatically swaps the applicable tax codes. Sell to a domestic customer, and 10% VAT applies. Mark the transaction as Overseas, and it shifts to 0%. This is standard Odoo behavior, but the preconfigured fiscal positions mean Korean businesses don’t need to build the tax mapping rules from scratch — they’re ready out of the box.

Toss Payments Brings Korea’s Dominant Fintech Into Odoo

Perhaps the most commercially significant piece of this localization is the Toss Payments integration. Toss is South Korea’s leading fintech platform, handling billions of won in online transactions every month through credit card payments, bank transfers, and mobile wallets. For Korean e-commerce businesses, accepting payments without Toss is like running a European webshop without Stripe.

The integration adds Toss as a native payment provider within Odoo’s payment acquirer framework. Online customers checking out through an Odoo-powered storefront can pay using the methods Toss supports — Korean credit and debit cards, bank account transfers, and the Toss mobile app — with transactions flowing directly into the accounting module without manual reconciliation. For businesses that have been routing Korean payments through international gateways at higher fees and with awkward settlement schedules, having Toss as a first-class option changes the economics.

Business Registration Numbers and Korean Address Formatting

Every business in South Korea carries a 10-digit Business Registration Number issued by the National Tax Service. It’s the equivalent of an EU VAT number or a US EIN, and it appears on every tax invoice, official document, and government filing. The localization adds BRN as a validated field on contact records, enforcing the correct digit count and format so you don’t end up with miskeyed identifiers that cause invoice rejections downstream.

Korean addresses also follow their own conventions — they run from broad to specific (province, city, district, street, building) rather than the Western street-first format. The localization handles this correctly, ensuring that printed invoices, shipping labels, and contact records display addresses the way Korean recipients and postal services expect them.

Proof of Issuance Reaches Into the Sales Module

Korean tax law requires businesses to track the “proof of issuance” for each transaction — whether an invoice was issued as a standard tax invoice, a cash receipt, a credit card slip, or another recognized document type. This proof feeds into VAT reporting and determines how the transaction is classified in the books.

The localization adds proof-of-issuance tracking not just on accounting entries but on sales orders as well. Each order line can carry its own proof type, and when orders contain lines with different proof types, they’re automatically split into separate invoices. This prevents the common error of mixing cash-receipt and tax-invoice lines on a single document — something that would cause reporting problems with the NTS.

The accounting side is equally thorough. An e-Document Number field captures the electronic tax invoice identifier issued by the NTS system, creating a traceable link between the Odoo invoice and the government’s electronic record. For VAT returns, a simplified-taxpayer setup guides businesses through the specific reporting format required for their classification.

What This Means for Korean Businesses on Odoo

Before this localization, running Odoo in South Korea required significant custom development. You needed someone to build the chart of accounts, configure the tax codes, handle the BRN validation, and integrate a Korean payment gateway — typically months of work before the system could even process its first compliant invoice.

With the native localization, a Korean company can install three modules and have a working, K-GAAP-compliant accounting setup with preconfigured taxes, fiscal positions, financial reports in Korean, and Toss Payments ready to accept online transactions. The gap between “install Odoo” and “issue the first compliant invoice” just went from months to hours.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Plans start at $29/month.