{"id":3859,"date":"2026-06-02T17:23:24","date_gmt":"2026-06-02T17:23:24","guid":{"rendered":"https:\/\/aaxonix.com\/resources\/?p=3859"},"modified":"2026-06-02T17:23:28","modified_gmt":"2026-06-02T17:23:28","slug":"uae-e-invoicing-transaction-type-code-netsuite","status":"publish","type":"post","link":"https:\/\/aaxonix.com\/resources\/uae-e-invoicing-transaction-type-code-netsuite\/","title":{"rendered":"UAE E-Invoicing Transaction Type Code Explained for NetSuite Users"},"content":{"rendered":"<style>\n.aax-post{font-family:'Poppins',sans-serif;color:#1a2332;max-width:820px;margin:0 auto;line-height:1.75}\n.aax-post h2{font-size:1.55rem;font-weight:600;margin:2.5rem 0 .9rem;color:#0a1628}\n.aax-post h3{font-size:1.15rem;font-weight:600;margin:1.8rem 0 .6rem;color:#1a2332}\n.aax-post p{margin:0 0 1.1rem}\n.aax-post ul,.aax-post ol{margin:0 0 1.1rem;padding-left:1.5rem}\n.aax-post li{margin-bottom:.45rem}\n.aax-post table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.93rem}\n.aax-post th{background:#0a1628;color:#fff;padding:.6rem 1rem;text-align:left}\n.aax-post td{padding:.55rem 1rem;border-bottom:1px solid #e8edf4}\n.aax-post tr:nth-child(even) td{background:#f5f7fb}\n.aax-post .faq-section{background:#f5f7fb;border-radius:10px;padding:1.8rem 2rem;margin:2.5rem 0}\n.aax-post .faq-item{margin-bottom:1.2rem;border-bottom:1px solid #e0e6ef;padding-bottom:1.2rem}\n.aax-post .faq-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}\n.aax-post .faq-question{font-weight:600;color:#0a1628;margin-bottom:.5rem}\n.aax-post .faq-answer{color:#3a4a5c;line-height:1.65}\n.aax-post .aax-cta{background:linear-gradient(135deg,#0a1628 0%,#1a3a5c 100%);border-radius:12px;padding:1.8rem 2rem;margin:2.5rem 0;text-align:center}\n.aax-post .aax-cta p{color:#e8edf4;margin:0 0 1.2rem;font-size:1.05rem}\n.aax-post .aax-cta a{display:inline-block;background:#fff;color:#0a1628;font-weight:600;padding:.65rem 1.6rem;border-radius:6px;text-decoration:none;font-size:.95rem}\n<\/style>\n<div class=\"sp-toc-wrap\"><nav class=\"sp-blog-toc\" id=\"spBlogToc\" style=\"display:none\">\n  <h4><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><\/svg> On this page<\/h4>\n  <ol class=\"sp-toc-list\" id=\"spTocList\"><\/ol>\n<\/nav><\/div>\n<div class=\"aax-post\">\n\n<p>The UAE e-invoicing transaction type code is a mandatory field in every e-invoice submitted to the Federal Tax Authority&#8217;s network, and it is one of the most misunderstood fields in the entire schema. It is an 8-character binary string where each character position signals a specific supply scenario. Get it wrong and your ASP rejects the invoice outright. Get it right but misconfigured and you create a compliance liability on your buyer&#8217;s system. For NetSuite users, the challenge is straightforward: NetSuite has no native field for this code, and the logic for deriving the correct value must be built into your integration before go-live. This post explains each bit position, the scenarios that trigger each flag, and exactly what you need to build in NetSuite to meet FTA requirements.<\/p>\n\n\n<figure style=\"margin:36px 0;text-align:center;line-height:0;\"><img decoding=\"async\" src=\"https:\/\/aaxonix.com\/resources\/wp-content\/uploads\/2026\/05\/inline_uae-e-invoicing-transaction-type-code-netsuite_1.jpg\" alt=\"Person's hand holding a company invoice on a clipboard with a pen.\" style=\"width:100%;max-width:820px;height:auto;border-radius:10px;box-shadow:0 4px 20px rgba(10,22,40,.13);\" loading=\"lazy\" \/><\/figure>\n<h2>What the UAE E-Invoicing Transaction Type Code Actually Is<\/h2>\n\n<p>The UAE Ministry of Finance Guidelines V1.0 define the transaction type code as an 8-character string composed entirely of the digits 0 and 1. Think of it as a binary flag register where each position answers a yes\/no question about the nature of the supply. A &#8220;1&#8221; in a given position means that scenario applies to the invoice. A &#8220;0&#8221; means it does not.<\/p>\n\n<p>The code is embedded in the PINT-AE\/UBL 2.1 XML that your accredited service provider (ASP) submits to the FTA network. It is not a description field or a free-text comment. It is a structured signal that the FTA&#8217;s clearance system reads to classify the transaction and apply the appropriate validation rules and VAT treatment.<\/p>\n\n<p>A standard domestic B2B invoice, where none of the eight special scenarios apply, carries the code <strong>00000000<\/strong>. That is the baseline for most NetSuite businesses operating inside the UAE without free zone status, margin schemes, or export activity. But even if your business only ever issues standard invoices, you still need the field present, populated, and validated before submission. An absent or malformed field causes rejection at the ASP gateway.<\/p>\n\n<p>For the full picture of all 51 mandatory fields and how they map to NetSuite records, see the <a href=\"https:\/\/aaxonix.com\/resources\/uae-e-invoicing-mandatory-fields-netsuite\/\" class=\"sp-content-link\">UAE e-invoicing mandatory fields and their NetSuite mapping<\/a>.<\/p>\n\n<h2>The 8 Bit Positions: What Each One Means<\/h2>\n\n<p>Each position in the 8-character string has a fixed meaning defined by the MoF guidelines. The positions are numbered left to right, 1 through 8. Here is what each one represents:<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Bit Position<\/th>\n      <th>Scenario<\/th>\n      <th>When to Set to &#8220;1&#8221;<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Bit 1<\/td>\n      <td>Free Trade Zone (FTZ) Supply<\/td>\n      <td>Seller or buyer is located in a UAE free zone<\/td>\n    <\/tr>\n    <tr>\n      <td>Bit 2<\/td>\n      <td>Deemed Supply<\/td>\n      <td>Supply treated as made for VAT purposes without an actual sale (e.g. business assets used personally)<\/td>\n    <\/tr>\n    <tr>\n      <td>Bit 3<\/td>\n      <td>Margin Scheme Supply<\/td>\n      <td>VAT calculated on the profit margin, not the full sale price (e.g. second-hand goods dealers)<\/td>\n    <\/tr>\n    <tr>\n      <td>Bit 4<\/td>\n      <td>Summary Invoice<\/td>\n      <td>Single invoice covering multiple separate supplies<\/td>\n    <\/tr>\n    <tr>\n      <td>Bit 5<\/td>\n      <td>Continuous Supply<\/td>\n      <td>Recurring supplies under a single contract (e.g. utilities, SaaS subscriptions, maintenance retainers)<\/td>\n    <\/tr>\n    <tr>\n      <td>Bit 6<\/td>\n      <td>Disclosed Agent Billing<\/td>\n      <td>Invoice issued by an agent acting on behalf of a principal, with the agent&#8217;s identity disclosed on the invoice<\/td>\n    <\/tr>\n    <tr>\n      <td>Bit 7<\/td>\n      <td>E-Commerce Supply<\/td>\n      <td>Goods or services sold through an electronic platform<\/td>\n    <\/tr>\n    <tr>\n      <td>Bit 8<\/td>\n      <td>Export of Goods or Services<\/td>\n      <td>Supply made to a recipient located outside the UAE<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>Multiple bits can be set simultaneously when a single invoice meets more than one condition. The code is not exclusive to a single scenario.<\/p>\n\n<h2>How the Code Works in Practice: Real Scenarios<\/h2>\n\n<p>Understanding the abstract definition is one thing. Knowing which code your specific transactions require is what actually matters for configuration. Here are four common scenarios UAE businesses encounter:<\/p>\n\n<h3>Standard domestic B2B invoice<\/h3>\n<p>A mainland UAE company invoices another mainland UAE company for professional services. No free zone involvement, no export, no margin scheme, no agent arrangement. Transaction type code: <strong>00000000<\/strong>. This is the most common case for standard NetSuite businesses.<\/p>\n\n<h3>Export of services<\/h3>\n<p>A UAE company invoices a buyer based in Germany for consulting services. Bit 8 is set. Transaction type code: <strong>00000001<\/strong>. Export invoices also require a specific buyer endpoint: <strong>0235:9900000099<\/strong>, the predefined FTA export endpoint used when the buyer does not have a UAE e-invoicing participant ID.<\/p>\n\n<h3>Free zone supply<\/h3>\n<p>A company registered in JAFZA invoices a buyer in the UAE mainland. Bit 1 is set. Transaction type code: <strong>10000000<\/strong>. Free zone supplies have distinct VAT implications and the FTA&#8217;s system uses this flag to apply the correct treatment. For a detailed breakdown of free zone scenarios in NetSuite, see the post on <a href=\"https:\/\/aaxonix.com\/resources\/uae-e-invoicing-free-zone-netsuite\/\" class=\"sp-content-link\">UAE e-invoicing for free zone companies using NetSuite<\/a>.<\/p>\n\n<h3>E-commerce export<\/h3>\n<p>A UAE e-commerce business sells physical goods to a buyer in Saudi Arabia through its online platform. Both bit 7 (e-commerce) and bit 8 (export) apply. Transaction type code: <strong>00000011<\/strong>. This illustrates how the binary string accumulates flags when multiple conditions are true simultaneously.<\/p>\n\n\n<figure style=\"margin:36px 0;text-align:center;line-height:0;\"><img decoding=\"async\" src=\"https:\/\/aaxonix.com\/resources\/wp-content\/uploads\/2026\/05\/inline_uae-e-invoicing-transaction-type-code-netsuite_2.jpg\" alt=\"Bright and modern office environment with computer workstations and large windows.\" style=\"width:100%;max-width:820px;height:auto;border-radius:10px;box-shadow:0 4px 20px rgba(10,22,40,.13);\" loading=\"lazy\" \/><\/figure>\n<h2>Why NetSuite Does Not Handle This Natively<\/h2>\n\n<p>NetSuite&#8217;s standard transaction records, the Invoice, Credit Memo, and related forms, were not built with UAE e-invoicing in mind. There is no out-of-the-box field for the transaction type code anywhere in the standard NetSuite schema. This is not a gap specific to UAE compliance. NetSuite&#8217;s architecture requires customisation whenever a jurisdiction mandates supply-classification data that goes beyond standard accounting fields.<\/p>\n\n<p>The practical consequence is that every NetSuite business going live with UAE e-invoicing must add this field through customisation before the integration layer can function. The integration layer (the middleware or connector between NetSuite and your ASP) reads the field from the NetSuite invoice record and maps it into the correct XML element in the PINT-AE\/UBL 2.1 document. If the field does not exist in NetSuite, the integration has nothing to read, and submission fails.<\/p>\n\n<p>For context on how the full integration architecture works, see the <a href=\"https:\/\/aaxonix.com\/resources\/uae-e-invoicing-netsuite-integration-guide\/\" class=\"sp-content-link\">UAE e-invoicing integration guide for NetSuite<\/a> and the detailed walkthrough of <a href=\"https:\/\/aaxonix.com\/resources\/integrate-netsuite-uae-e-invoicing\/\" class=\"sp-content-link\">how to integrate NetSuite with a UAE e-invoicing service provider<\/a>.<\/p>\n\n<h2>Building the Field Correctly in NetSuite<\/h2>\n\n<p>The transaction type code field in NetSuite should be configured as a custom body field on the Invoice transaction, with the same field also applied to Credit Memo transactions (since credit notes are also submitted to the FTA network under e-invoicing).<\/p>\n\n<p>The field specification:<\/p>\n\n<ul>\n  <li>Field type: Free-form text (not a list\/select, the code must be stored as a raw string)<\/li>\n  <li>Field ID: Use a consistent internal ID, for example <code>custbody_uae_transaction_type_code<\/code><\/li>\n  <li>Default value: <code>00000000<\/code> for businesses where all standard domestic transactions apply<\/li>\n  <li>Apply to: Invoice and Credit Memo transaction types<\/li>\n  <li>Placement: On the invoice form, positioned in a compliance or tax information tab so finance staff can see and modify it when needed<\/li>\n<\/ul>\n\n<p>For businesses with a mixed transaction profile, domestic invoices, free zone supplies, and exports all occurring within the same entity, the default value approach alone is insufficient. In those cases, the field needs to be driven by logic on the transaction form, either through a NetSuite workflow that sets the code based on the customer&#8217;s subsidiary or address, or through a user event script that evaluates the relevant conditions when the invoice is saved.<\/p>\n\n<p>The integration connector then reads <code>custbody_uae_transaction_type_code<\/code> from the invoice record and inserts its value into the UBL 2.1 XML at the point where the FTA schema requires it, before the document is sent to the ASP for clearance.<\/p>\n\n<h2>Validation: What Happens When the Code Is Wrong<\/h2>\n\n<p>There are two categories of error, and they have different consequences.<\/p>\n\n<h3>Structural errors<\/h3>\n<p>A structural error means the field value is not a valid 8-character binary string. A value of &#8220;1000&#8221;, &#8220;XXXXXXXX&#8221;, or an empty string all fail structural validation. The ASP will reject the invoice immediately, before it reaches the FTA network. The rejection comes back as a technical error, not a compliance notice. Your NetSuite field validation should prevent this at the point of invoice creation, but the ASP gateway is the final guard.<\/p>\n\n<h3>Semantic errors<\/h3>\n<p>A semantic error is more serious and harder to detect automatically. This occurs when the string is technically valid (8 characters of 0s and 1s) but the flags do not accurately reflect the supply type. For example, a standard domestic B2B invoice with bit 1 set to &#8220;1&#8221; passes structural validation but incorrectly signals a free zone supply. The FTA system and the buyer&#8217;s system will process it as a free zone transaction, which carries different VAT implications. This creates a mismatch between what you reported and what actually occurred, which is a compliance issue that may surface only during an FTA audit.<\/p>\n\n<p>Setting the wrong flags is not caught by the ASP&#8217;s technical validation. It is a data quality problem that originates in how your NetSuite field is configured and populated.<\/p>\n\n<h2>Which Businesses Need Which Codes<\/h2>\n\n<p>A practical summary for the most common business profiles:<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Business Profile<\/th>\n      <th>Typical Code<\/th>\n      <th>Notes<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Mainland UAE, domestic B2B only<\/td>\n      <td>00000000<\/td>\n      <td>Default for most standard NetSuite businesses<\/td>\n    <\/tr>\n    <tr>\n      <td>Free zone entity (JAFZA, DAFZA, etc.)<\/td>\n      <td>10000000<\/td>\n      <td>Bit 1 set; additional rules apply per FTZ type<\/td>\n    <\/tr>\n    <tr>\n      <td>Exporter (goods or services)<\/td>\n      <td>00000001<\/td>\n      <td>Bit 8 set; use predefined export buyer endpoint<\/td>\n    <\/tr>\n    <tr>\n      <td>SaaS or subscription business<\/td>\n      <td>00010000<\/td>\n      <td>Bit 5 set for continuous supply contracts<\/td>\n    <\/tr>\n    <tr>\n      <td>Second-hand goods dealer (margin scheme)<\/td>\n      <td>00100000<\/td>\n      <td>Bit 3 set; VAT calculation method differs<\/td>\n    <\/tr>\n    <tr>\n      <td>E-commerce platform exporting goods<\/td>\n      <td>00000011<\/td>\n      <td>Bits 7 and 8 set simultaneously<\/td>\n    <\/tr>\n    <tr>\n      <td>Agent billing on behalf of principal<\/td>\n      <td>00000100<\/td>\n      <td>Bit 6 set; agent must be disclosed on invoice<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>Businesses with multiple supply types across a single NetSuite entity need a field population strategy, not just a default value. A subscription software company that also exports professional services to overseas clients needs both codes in circulation, and the correct code on each individual invoice depends on the buyer and the nature of the supply on that specific transaction.<\/p>\n\n<p>Explore <a href=\"https:\/\/aaxonix.com\/services\/netsuite\/\" class=\"sp-content-link\">NetSuite implementation and integration services<\/a> from Aaxonix for a full compliance scoping assessment.<\/p>\n\n<div class=\"faq-section\">\n  <h2>Frequently Asked Questions<\/h2>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">What is the UAE e-invoicing transaction type code and where does it appear in the XML?<\/p>\n    <p class=\"faq-answer\">The transaction type code is an 8-character binary string (e.g. &#8220;00000000&#8221;) required in every UAE e-invoice submitted under Phase 1 and Phase 2 of the FTA&#8217;s e-invoicing mandate. It appears in the PINT-AE\/UBL 2.1 XML document that your ASP submits to the FTA network. Each character position flags a specific supply scenario. The code is not a free-text field and must consist only of the digits 0 and 1.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">Do I need a custom field in NetSuite to store the transaction type code?<\/p>\n    <p class=\"faq-answer\">Yes. NetSuite has no native field for this code. You must create a custom body field on the Invoice and Credit Memo transaction types. The integration connector that links NetSuite to your ASP reads this field and inserts the value into the correct position in the UBL 2.1 XML at submission time. Without this field, the integration cannot function.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">What transaction type code should a standard UAE mainland company use?<\/p>\n    <p class=\"faq-answer\">A business operating entirely on the UAE mainland with no free zone involvement, no exports, no margin scheme, and no agent arrangements should use &#8220;00000000&#8221; for all standard domestic B2B invoices. This is the most common code for NetSuite businesses that have not yet assessed their specific supply mix.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">Can multiple bits be set to &#8220;1&#8221; on a single invoice?<\/p>\n    <p class=\"faq-answer\">Yes. The 8-character string accumulates flags for all applicable conditions. An e-commerce business exporting goods overseas would set both bit 7 (e-commerce) and bit 8 (export), producing the code &#8220;00000011&#8221;. There is no restriction on how many bits can be set simultaneously, provided each flag accurately reflects the nature of the supply on that invoice.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">What happens if the transaction type code is structurally valid but semantically incorrect?<\/p>\n    <p class=\"faq-answer\">The ASP will accept the invoice because structural validation only checks that the field contains 8 characters of 0s and 1s. The semantic error, where the flags do not accurately describe the supply, will not be caught at submission. However, it creates a data mismatch on the FTA&#8217;s system and on the buyer&#8217;s system, which can surface as a compliance discrepancy during an FTA audit. Accurate flag assignment is a compliance requirement, not just a technical one.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"aax-cta\">\n  <p>Aaxonix implements the UAE e-invoicing transaction type code and all 51 mandatory fields in NetSuite, integrating with FTA-accredited ASPs to handle every invoice scenario from standard B2B to free zone and export transactions. Book a free consultation and get a no-obligation scoping call for your implementation.<\/p>\n  <a href=\"https:\/\/aaxonix.com\/contact\/\">Book a free consultation<\/a>\n<\/div>\n\n<p>The transaction type code is a small field with a large compliance footprint. Eight characters determine how the FTA classifies your supply, how your buyer&#8217;s system processes the inbound document, and whether your VAT reporting aligns with what was actually submitted. For NetSuite businesses preparing for the UAE e-invoicing mandate, getting this field defined, validated, and correctly populated before go-live is not optional. It is the foundation on which every other element of the integration depends.<\/p>\n\n<\/div>","protected":false},"excerpt":{"rendered":"<p>The UAE e-invoicing transaction type code is an 8-bit binary flag on every invoice. Understand each bit and how to configure the custom field in NetSuite.<\/p>\n","protected":false},"author":1,"featured_media":3856,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[1226,1203,1227,1228,1225],"class_list":["post-3859","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-e-invoice-binary-flag","tag-netsuite-custom-fields","tag-pint-ae-compliance","tag-uae-fta-invoice","tag-uae-transaction-type-code"],"_links":{"self":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/comments?post=3859"}],"version-history":[{"count":1,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3859\/revisions"}],"predecessor-version":[{"id":3860,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3859\/revisions\/3860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media\/3856"}],"wp:attachment":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media?parent=3859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/categories?post=3859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/tags?post=3859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}