Türkiye¶
Modules¶
The following modules are installed automatically with the Turkish localization:
Name |
Technical name |
Description |
|---|---|---|
Türkiye - Accounting |
|
Base Turkish fiscal localization package complete with the Turkish chart of accounts, taxes, financial reports, and fiscal positions |
Türkiye - Accounting Reports |
|
Türkiye-specific tax and profit and loss reporting. |
Türkiye - e-Irsaliye (e-Dispatch) |
|
Enables the generation and upload of e-Dispatch files |
Additionally, the following modules must be manually installed in order to use the Nilvera integration for managing electronic documents:
Name |
Technical name |
Description |
|---|---|---|
Türkiye - Nilvera |
|
Integration module enabling communication with Nilvera and enabling the generation of e-Ledger files |
Türkiye - Nilvera E-Invoice |
|
For sending and receiving basic scenario electronic invoices to/from Nilvera. |
Note
In some cases, such as when upgrading to a version with additional modules, it is possible that modules may not be installed automatically. Any missing modules can be manually installed.
Localization overview¶
The Turkish localization package ensures compliance with Turkish fiscal and accounting regulations. It includes tools for managing taxes, fiscal positions, reporting, and a predefined chart of accounts tailored to Türkiye’s standards.
The Turkish localization package provides the following key features to ensure compliance with local fiscal and accounting regulations:
Chart of accounts: a predefined structure tailored to Turkish accounting standards
Taxes: pre-configured tax rates, including standard VAT, zero-rated, and exempt options
Fiscal positions (tax and account mapping): automated tax adjustments based on customer or supplier registration status
Electronic document solutions: integration with Nilvera to meet electronic document regulations
Chart of accounts¶
In the chart of accounts, accounts are automatically mapped to their corresponding taxes and default accounts payable and accounts receivable fields.
Note
The Türkiye chart of accounts is based on the Turkish Revenue Administration’s (Gelir İdaresi Başkanlığı’s (GİB)) 7/A accounts, which provide a baseline of the necessary accounts. 7/B accounts are archived and can be unarchived if required.
Taxes¶
Taxes are automatically created and configured when the Turkish localization is installed.
Warning
Do not delete taxes, as they are used for e-invoice and e-archive invoices. However, new taxes can be generated, such as for withholding tax reasons that do not exist yet in the database.
Electronic document solutions¶
The Turkish localization ensures compliance with the GİB’s requirements for e-invoice, e-archive, e-dispatch, and e-ledger processes.
Through the Nilvera integration, Odoo enables the automated transmission, reception, and management of e-documents in accordance with the GİB’s electronic document standards. The main functionalities of the Nilvera integration include:
creating and validating e-archives and e-invoices directly from Odoo
storing transmitted XML and PDF versions for auditing
Company and contacts¶
Before activating the Türkiye localization, ensure the following information is correctly configured in your company’s contact record:
Important
To access all of these fields, go to the company’s contact record in the Contacts application or by going to , removing the Customer Invoices filter, and selecting the company’s contact record. This is different from accessing the company record itself through the general settings.
Company Name: Must match the GİB registration
Turkish Tax Office: Registered tax office
Tax ID: VKN/TCKN - 10 digits for companies, 11 for individuals
Address: Complete legal address
Country: Registered country
Tags: Enter the Mersis number as a tag and set the Category to MERSISNO
eInvoice format: Türkiye (UBL TR 1.2)
eInvoice Alias: Acquired from Nilvera
eDispatch Alias: Acquired from Nilvera
Note
The eInvoice format is set automatically based on the contact’s country. To edit this field, enable developer mode to display the field and then manually adjust it.
The eInvoice Alias and eDispatch Alias fields are only visible once the company’s Nilvera Status is E-Invoice.
For each customer and vendor:
Ensure the Address, City, State, Country, Tax ID, and eInvoice format are configured.
If the partner is not registered for e-invoicing, Odoo automatically defaults to e-Archive.
Tax creation¶
Create exception reasons¶
To create additional exception reasons, follow these steps:
Enable developer mode and navigate to .
Click the New button.
Enter a Reason and a Reason Code that match the values in Nilvera’s documentation.
Select the corresponding code type:
Withholding for withholding tax reasons
Exception for tax-exempt reasons
Export exception for export exception reasons
Export registration for export-registered reasons
For Withholding reasons, enter the corresponding percentage.
Create withholding taxes¶
Navigate to .
Click the New button to first create the base tax.
Set the Tax Computation to Percentage, and set the Withholding Tax Reason field that appears for taxes of this type.
Complete the other mandatory fields of the form (Tax Name, Tax Type, Amount, etc.).
Create additional taxes with Tax Computation set to Group of Taxes. These group taxes should be composed of the base tax created in the previous steps and additional percentage taxes.
Tip
The WH 20% tax illustrates this configuration. To use a different withholding reason, duplicate the base tax, update the reason, and replace the old base tax in duplicated group taxes.
Nilvera integration¶
Odoo integrates with Nilvera, a GİB-approved electronic document intermediary, to manage e-invoice, e-archive, e-dispatch, and e-ledger processes.
The integration handles:
XML data generation in a GİB-compliant format
secure transmission to Nilvera
synchronization of documents and statuses within Odoo.
Supported document types¶
e-Invoice
Basic scenario
Sales
Withholding
Registered for export
Tax exempt
Return
Withholding Return
Public Scenario
Sales
Withholding
Tax exempt
Export Scenario
Commercial Scenario - Sales - Withholding - Registered for export - Tax exempt
e-Archive invoice
Sales
Withholding
Registered for export
Tax exempt
Return
Withholding Return
e-Dispatch note
Note
Return invoices can only be sent via credit notes.
Configuration¶
The Nilvera documentation provides instructions for accessing the sandbox and generating the API credentials.
To configure the Nilvera integration with your database, follow these steps:
Make sure the Türkiye - Nilvera module is installed.
Navigate to and scroll to the Türkiye Electronic Integrations section.
Configure:
Nilvera API credentials (generated in Nilvera)
Incoming Invoices Journal (i.e., Purchases)
To configure your customer contact records to be able to send them e-invoices via Nilvera, follow these steps:
Navigate to .
Remove the Customer Invoices filter (if necessary), and select the partner to contact via Nilvera.
Open the Accounting tab and click Verify next to Nilvera Status.
Send e-Invoices via Nilvera¶
e-Invoice/e-Archive is a government-approved digital invoice system that replaces traditional paper invoices, allowing businesses to issue, transmit, and store invoices electronically in compliance with Turkish tax regulations. While e-Invoices are for customers who are registered with the GİB, e-Archives can be sent to customers who are not registered with the GİB, ensuring senders can comply with government regulations even when dealing with foreign customers or B2C workflows.
To send an e-Invoice/e-Archive, follow these steps:
When creating a customer invoice, after selecting a Customer,
if the customer’s Nilvera Status is e-Archive, two fields will appear:
Is GIB Export: used for product export invoices to partners outside of Türkiye
Invoice Type: determines the type of invoice
if the customer’s Nilvera Status is e-Invoice, the Invoice Scenario field will appear: Select the scenario of the invoice to be sent to the GİB.
Send the invoice, and ensure by Nilvera is selected to issue an e-invoice.
Receive e-Invoices via Nilvera¶
Update Nilvera status¶
To update the Nilvera Status of invoices in Odoo, follow these steps:
Open the Accounting Dashboard.
Click on the Sales journal.
Click the (Actions) icon, then click Refresh e-Invoices Status. This action updates the Nilvera Status field on each invoice.
Fetch e-invoice PDFs¶
There are two methods to fetch PDFs of e-invoices:
From the invoice list view:
Go to .
Select one or multiple invoices.
Click the Fetch Nilvera PDF
From an invoice form view: Once the Nilvera Status is Successful, click the Fetch Nilvera PDF button.
Receive purchase e-invoices¶
To fetch e-invoices generated in Nilvera and received by your company:
Open the Accounting Dashboard.
Click on the Purchase journal.
Click the (Actions) icon, then click Fetch e-invoices. The received e-invoices are created as vendor bills in Draft status.
Fetch PDFs of bills generated in Odoo¶
For vendor bills that were created in Odoo, PDF retrieval works the same way as for customer invoices:
Go to .
Select one or multiple vendor bills.
Click the Fetch Nilvera PDF button.
Generate e-Ledger¶
The e-Ledger is an electronic system that enables businesses to digitally store and submit their accounting records to the government for tax and regulatory compliance. In Odoo, users can generate the e-Ledger as a zipped CSV file and report company records seamlessly through the Nilvera integration.
Navigate to .
Click the (Actions) icon.
Click Generate e-Ledger to generate the file and download it to your computer.
Manage e-Dispatch files¶
Generate e-Dispatch files¶
The e-Dispatch is an electronic document that replaces traditional paper delivery notes, allowing businesses to digitally issue, transmit, and track shipment details for goods in transit. In Odoo, users can generate e-Dispatch documents as XML and upload them through the Nilvera integration, ensuring compliant and traceable delivery operations.
Navigate to .
Open an existing delivery order or create a new one.
Once a Delivery Address is selected, fill in the necessary information in the e-Dispatch tab that appears.
Once the delivery order is validated, click the Send GİB e-Dispatch (XML) button that appears to send the XML file. To generate the file without sending it, click the (Actions) icon, then click Generate GIB e-Dispatch (XML).
Download the generated file attached to the delivery order and upload it to Nilvera for processing.
Upload e-Dispatch files¶
Download the received e-Dispatch XML from Nilvera.
Navigate to .
Click the Upload e-Receipt (XML) button and select the downloaded file.
Manage e-Receipt files¶
Stock moves can be updated from their relative Order Receipts using the XML file. To do so:
Open the Inventory app, and go to .
Open a receipt order, click the e-Dispatch tab, and select the XML corresponding to the order receipt from the e-Dispatch XML field. Then, click Update from GIB e-Dispatch (XML) to: - Update your stock according to the stock moves stored in the XML file. - Update both the Operations and e-Dispatch tab with info such as Product, Carrier, Delivery Notes, etc. - Log the corresponding e-Receipt PDF file in the chatter.
Note
The system auto-fetches XML receipts through a CRON every 12 hours.
Mandatory compliance information¶
The following rules are mandatory for all users of the Türkiye localization integration. Compliance with these requirements is essential for the legal validity of e-Documents issued through the GİB via Nilvera.
Document numbering structure¶
All generated invoices and dispatch documents must follow a specific numbering structure: three
alphanumeric characters + document year + sequential number.
Example
INV/2025/00001
The numbering must be unique, sequential, and continuous. Each document must have a distinct identifier.
Once a file has been submitted, even if it returns an error, the same sequence number cannot be used; a new document must be created.
See also
e-Dispatch numbering structure¶
To access the e-Dispatch numbering structure, navigate to , then select an operation matching the Delivery Orders type.
An arbitrary alphanumerical Sequence Prefix can be set. The system uses only the last three characters of that prefix. The prefix must contain at least three characters; any shorter prefix is automatically denied by the system.
Example
In the sequence WH/OUT/948224, the system will only send 224.
Tip
You can preview the sequence by going to . Once the sequencing is configured, the banner at the top shows a preview:
Sequential number gaps¶
If a sequence number is skipped, the previous missing numbers must be issued within 7 days.
Example
If INV/2025/00002 is issued before INV/2025/00001, INV/2025/00001 must be issued within 7 days.
No sequence number can remain unissued beyond this period.
Discount rules¶
Global discounts (discounts shown as a separate invoice line) cannot be issued. All discounts must be applied at the product line level within the invoice.
e-Ledger compliance¶
The first issued invoice must represent the opening balance for the accounting period. All subsequent invoices must follow the sequential numbering pattern.
Example
INV/2025/00001, INV/2025/00002, INV/2025/00003, etc.
Sequential numbering must be maintained consistently across the e-Ledger to ensure data integrity and compliance.
Nilvera e-Invoice subscriptions¶
Note
Turkish e-Invoice law permits only one date range per invoice, at the header level, not per individual line item. Therefore, items with different subscription date ranges cannot be mixed on the same invoice. However, an item with a subscription date range can be mixed with items that that have no date range at all.
If the invoice is generated from the subscription order in the Subscriptions app, the subscription order’s date is used as the invoice’s date, at the header level.
Subscription dates must match across lines.
Manage Commercial Invoices¶
Commercial invoice scenarios are managed in the Accounting app through for outgoing invoices and for incoming vendor bills.
Outgoing commercial invoices¶
On a draft (non-posted) invoice, select a scenario from the Invoice Scenario field and specify the type in the Is field. Depending on the selection, the Exemption Reason field may become available. If applicable, enter an exemption reason.
Once a commercial scenario invoice is confirmed and sent, its Nilvera Status changes to Waiting. The customer must then accept or reject the invoice on their end.
If the customer rejects the invoice, the rejection reason is logged in the invoice chatter.
Note
GİB automatically accepts an invoice if the recipient does not accept or reject it within 8 days of reception.
Accepted invoices display one of two statuses: - Accepted: Manually accepted by the customer. - Accepted Automatically: Automatically acknowledged by GİB under the 8-day rule.
Incoming commercial bills¶
The system automatically fetches incoming commercial bills from Nilvera and creates corresponding draft bills in Odoo.
A status banner appears at the top of fetched bills with options to Accept or Reject:
Accept: Validates the bill.
Reject: Opens a pop-up window requiring a rejection reason. After clicking Proceed, the rejection response is sent to Nilvera. This action cannot be undone.