Odoo Community Association

Connector to Frappe eTax service

Beta License: AGPL-3 ecosoft-odoo/ecosoft-addons

This module integrates Odoo with the Frappe e-Tax Service (INET) to sign and retrieve certified e-Tax documents.

Key features:

Workflow:

  1. Post a customer invoice, debit note, or credit note.
  2. Click the e-Tax Invoice button on the document.
  3. Select the e-Tax document type (e.g. ใบกำกับภาษี, ใบแจ้งหนี้/ใบกำกับภาษี) and confirm.
  4. The system sends the document to Frappe server for signing.
  5. Check the e-Tax Status on the e-Tax Info tab - when Success, the signed PDF and XML are attached automatically.
  6. If a signed invoice needs correction, use Create Replacement to create a replacement document, then sign the replacement.

Table of contents

Configuration

1. Frappe Connection

  1. Go to Invoicing -> Configurations -> e-Tax Service -> Frappe Connections.
  2. Create a connection for the company:
    • Frappe Server URL - Base URL of the Frappe server where the e-Tax Service is installed. Do not include the API route.
    • Frappe Auth Token - Token generated from the Frappe server in api_key:api_secret format.
  3. Go to Invoicing -> Configurations -> Settings, section Ecosoft e-Tax Services.
  4. Enable e-Tax and select the Frappe e-Tax Connection for the company.

The connection is selected per company and shared by every Frappe e-Tax API operation. Contact your e-Tax Service provider for the URL and token.

2. Document Type Code (etax.doctype.code)

Standard INET document type codes are pre-loaded:

Code Description
380 ใบแจ้งหนี้
388 ใบกำกับภาษี
T01 ใบรับ (ใบเสร็จรับเงิน)
T02 ใบแจ้งหนี้/ใบกำกับภาษี
T03 ใบเสร็จรับเงิน/ใบกำกับภาษี
T04 ใบส่งของ/ใบกำกับภาษี
T05 ใบกำกับภาษีอย่างย่อ
80 ใบเพิ่มหนี้
81 ใบลดหนี้

Go to Invoicing -> Configurations -> e-Tax Service -> Document Type Code to view or add codes.

3. e-Tax Document Type (etax.doctype)

Map each Odoo document type to its INET document type code and report template.

Go to Invoicing -> Configurations -> e-Tax Service -> e-Tax Doctype and create records:

  • Form Name - Name of the Odoo/Frappe form template (must match exactly).
  • Type - Odoo document type: Customer Invoice, Credit Note, Debit Note, or Payment.
  • Invoice Template Source - odoo (render PDF from Odoo) or frappe (use Frappe template).
  • Document Type Code - Select the matching INET code (e.g. T02 for ใบแจ้งหนี้/ใบกำกับภาษี).

Example setup:

Form Name Type Code
ใบกำกับภาษี Customer Invoice 388
ใบแจ้งหนี้/ใบกำกับภาษี Customer Invoice T02
ใบเพิ่มหนี้ Customer Debit Note 80
ใบลดหนี้ Customer Credit Note 81

4. Purpose Code (etax.purpose.code)

Purpose codes are pre-loaded following INET convention and are linked to applicable document type codes.

Go to Invoicing -> Configurations -> e-Tax Service -> Purpose Code to view all codes.

Key groups:

  • TIVC - Tax Invoice replacement (applicable to 388, T02, T03, T04, T05)
  • DBNG / DBNS - Debit Note Goods/Services (applicable to 80)
  • CDNG / CDNS - Credit Note Goods/Services (applicable to 81)
  • RCTC - Receipt replacement (applicable to T01)

Purpose codes are automatically filtered by document type when creating a credit note or debit note.

5. Replacement Lock Date

Go to Invoicing -> Configurations -> Settings, section Ecosoft e-Tax Services:

  • Replacement Lock Date - Day of month after which creating a replacement e-Tax document is no longer allowed (counted from the 1st of the following month). Default is 1.

6. e-Tax Recipient Emails

Open the customer or invoice contact and fill in e-Tax Email next to Email. Multiple recipients can be entered as a comma-separated list, for example billing@example.com,accounting@example.com.

Invoices, receipts, and replacement receipts use this field for buyer_email in the Frappe e-Tax API payload.

Under Send Email in the company’s e-Tax settings, enable Require Email Before Signing e-Tax to block signing when the document’s customer has no e-Tax Email. This option is disabled by default.

  • With Send Email disabled, documents are signed without requesting email.
  • With Send Email enabled and recipients provided, signing requests email delivery.
  • When recipients are missing and Require Email Before Signing e-Tax is disabled, signing proceeds with send_mail = N.
  • When recipients are missing and the requirement is enabled, signing is blocked before calling the API. For multiple documents, email issues are reported together before any signing request.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Kitti U.
  • Ecosoft

Maintainers

Current maintainer:

Saran440

This module is part of the ecosoft-odoo/ecosoft-addons project on GitHub.

You are welcome to contribute.