Türkiye

Modules

The following modules are installed automatically with the Turkish localization:

Name

Technical name

Description

Türkiye - Accounting

l10n_tr

Base Turkish fiscal localization package complete with the Turkish chart of accounts, taxes, financial reports, and fiscal positions

Türkiye - Accounting Reports

l10n_tr_reports

Türkiye-specific tax and profit and loss reporting.

Türkiye - e-Irsaliye (e-Dispatch)

l10n_tr_nilvera_edispatch

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

l10n_tr_nilvera

Integration module enabling communication with Nilvera and enabling the generation of e-Ledger files

Türkiye - Nilvera E-Invoice

l10n_tr_nilvera_einvoice

For sending and receiving basic scenario electronic invoices to/from Nilvera.

Türkiye - Nilvera E-Invoice Extended

l10n_tr_nilvera_einvoice_extended

Enhances the e-invoice module, enabling support for multiple invoice types and scenarios

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

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:

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 Accounting ‣ Customers ‣ Customers, 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)

  • Alias: 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 Alias field is 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:

  1. Enable developer mode and navigate to Accounting ‣ Configuration ‣ GIB Codes.

  2. Click the New button.

  3. Enter a Reason and a Reason Code that match the values in Nilvera’s documentation.

  4. 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

  5. For Withholding reasons, enter the corresponding percentage.

Create withholding taxes

  1. Navigate to Accounting ‣ Configuration ‣ Taxes.

  2. Click the New button to first create the base tax.

  3. Set the Tax Computation to Percentage, and set the Withholding Tax Reason field that appears for taxes of this type.

  4. Complete the other mandatory fields of the form (Tax Name, Tax Type, Amount, etc.).

  5. 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 and public scenario

      • Sales

      • Withholding

      • Registered for export

      • Tax exempt

    • Export scenario

  • e-Archive invoice

    • Sales

    • Withholding

    • Registered for export

    • Tax exempt

  • e-Dispatch note

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:

  1. Make sure the Türkiye - Nilvera module is installed.

  2. Navigate to Accounting ‣ Configuration ‣ Settings and scroll to the Türkiye Electronic Integrations section.

  3. 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:

  1. Navigate to Accounting ‣ Customers ‣ Customers.

  2. Remove the Customer Invoices filter (if necessary), and select the partner to contact via Nilvera.

  3. 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:

  1. Make sure the Türkiye - Nilvera E-Invoice and Türkiye - Nilvera E-Invoice Extended modules are installed.

  2. 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.

  3. 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:

  1. Open the Accounting Dashboard.

  2. Click on the Sales journal.

  3. 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:

  1. From the invoice list view:

    1. Go to Accounting ‣ Customers ‣ Invoices.

    2. Select one or multiple invoices.

    3. Click the Fetch Nilvera PDF

  2. 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:

  1. Open the Accounting Dashboard.

  2. Click on the Purchase journal.

  3. 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:

  1. Go to Accounting ‣ Vendors ‣ Bills.

  2. Select one or multiple vendor bills.

  3. 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.

  1. Navigate to Accounting ‣ Reporting ‣ General Ledger.

  2. Click the (Actions) icon.

  3. 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.

  1. Navigate to Inventory ‣ Operations ‣ Deliveries.

  2. Open an existing delivery order or create a new one.

  3. Once a Delivery Address is selected, fill in the necessary information in the e-Dispatch tab that appears.

  4. #. Once the delivery order is validated, click the Generate GİB e-Dispatch (XML) button that appears to generate the XML file.

  5. Download the generated file attached to the delivery order and upload it to Nilvera for processing.

Upload e-Dispatch files

  1. Download the received e-Dispatch XML from Nilvera.

  2. Navigate to Inventory ‣ Operations ‣ Receipts.

  3. Click the Upload e-Receipt (XML) button and select the downloaded file.

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.

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.