{"id":3830,"date":"2026-06-02T17:23:28","date_gmt":"2026-06-02T17:23:28","guid":{"rendered":"https:\/\/aaxonix.com\/resources\/?p=3830"},"modified":"2026-06-02T17:23:33","modified_gmt":"2026-06-02T17:23:33","slug":"uae-e-invoicing-mandatory-fields-netsuite","status":"publish","type":"post","link":"https:\/\/aaxonix.com\/resources\/uae-e-invoicing-mandatory-fields-netsuite\/","title":{"rendered":"UAE E-Invoicing Mandatory Fields: How They Map to NetSuite"},"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.aax-post .field-badge{display:inline-block;background:#e8edf4;color:#0a1628;font-size:.78rem;font-weight:600;padding:.15rem .55rem;border-radius:4px;margin-right:.4rem;font-family:'DM Mono',monospace}\n.aax-post .custom-badge{display:inline-block;background:#fff3e8;color:#c25400;font-size:.78rem;font-weight:600;padding:.15rem .55rem;border-radius:4px;font-family:'DM Mono',monospace}\n.aax-post .hardcoded-badge{display:inline-block;background:#e8f4e8;color:#1a6a1a;font-size:.78rem;font-weight:600;padding:.15rem .55rem;border-radius:4px;font-family:'DM Mono',monospace}\n.aax-post .info-box{background:#eef3ff;border-left:4px solid #2563eb;border-radius:6px;padding:1rem 1.2rem;margin:1.5rem 0;font-size:.95rem}\n.aax-post .warn-box{background:#fff8f0;border-left:4px solid #e8650a;border-radius:6px;padding:1rem 1.2rem;margin:1.5rem 0;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 Ministry of Finance published version 1.0 of its mandatory fields specification in February 2026. It defines exactly 51 fields that must appear in every electronic tax invoice submitted through the national e-invoicing network. If your NetSuite implementation is being scoped or retrofitted for compliance, this document is your primary reference. Read 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> for the broader architecture picture, but this post focuses entirely on the fields: what each one is, where it comes from in NetSuite, and where NetSuite falls short natively.<\/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-mandatory-fields-netsuite_1.jpg\" alt=\"Close-up of a person examining a credit card authorization form inside an office setting.\" 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 the Field Mapping Matters Before You Build Anything<\/h2>\n\n<p>A common mistake in e-invoicing projects is treating the XML schema as something the integration layer &#8220;figures out at runtime.&#8221; That works until the first field that NetSuite does not store. The UAE specification includes several such fields. Discovering them during UAT rather than during design adds weeks to a project and often requires a second deployment of custom fields to production.<\/p>\n\n<p>The better approach is to map all 51 fields to their NetSuite source before writing a single line of integration code. This lets you identify custom field requirements, data quality gaps, and hardcoded values up front. Check the <a href=\"https:\/\/aaxonix.com\/resources\/uae-e-invoicing-deadlines-2027-netsuite\/\" class=\"sp-content-link\">UAE e-invoicing compliance deadlines for NetSuite businesses<\/a> to understand how much runway you have to complete this work.<\/p>\n\n<div class=\"info-box\">\n<strong>Format note:<\/strong> UAE electronic invoices are XML only. There is no QR code requirement (unlike Saudi Arabia&#8217;s ZATCA system). PDF output is separate from the compliant invoice and carries no legal weight on its own.\n<\/div>\n\n<h2>The 51 Mandatory Fields: Group by Group<\/h2>\n\n<p>The specification organises the 51 fields into six groups: Invoice Details, Seller Details, Buyer Details, Document Totals, Tax Breakdown, and Invoice Line fields. The line-level group applies per line, so an invoice with ten lines carries the Invoice Details fields once and the line fields ten times.<\/p>\n\n<h2>Invoice Details (Fields 1\u20139)<\/h2>\n\n<table>\n  <thead>\n    <tr>\n      <th>#<\/th>\n      <th>Field<\/th>\n      <th>NetSuite Source<\/th>\n      <th>Notes<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>1<\/td>\n      <td>Invoice number<\/td>\n      <td>Invoice &gt; Tran ID<\/td>\n      <td>Must be unique per invoice<\/td>\n    <\/tr>\n    <tr>\n      <td>2<\/td>\n      <td>Invoice date<\/td>\n      <td>Invoice &gt; Date<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>3<\/td>\n      <td>Invoice type code<\/td>\n      <td>Derived \/ hardcoded<\/td>\n      <td>Functional type code specific to electronic invoicing; value set by integration<\/td>\n    <\/tr>\n    <tr>\n      <td>4<\/td>\n      <td>Invoice currency code<\/td>\n      <td>Invoice &gt; Currency<\/td>\n      <td>Applies to all amounts except total tax in accounting currency<\/td>\n    <\/tr>\n    <tr>\n      <td>5<\/td>\n      <td>Invoice transaction type code<\/td>\n      <td><span class=\"custom-badge\">CUSTOM FIELD<\/span><\/td>\n      <td>8-character binary flag string; no native NetSuite field (see section below)<\/td>\n    <\/tr>\n    <tr>\n      <td>6<\/td>\n      <td>Payment due date<\/td>\n      <td>Invoice &gt; Due Date<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>7<\/td>\n      <td>Business process type<\/td>\n      <td><span class=\"hardcoded-badge\">HARDCODED<\/span><\/td>\n      <td>Always &#8220;urn:peppol:bis:billing&#8221;; set in integration, not stored in NetSuite<\/td>\n    <\/tr>\n    <tr>\n      <td>8<\/td>\n      <td>Specification identifier<\/td>\n      <td><span class=\"hardcoded-badge\">HARDCODED<\/span><\/td>\n      <td>Always &#8220;urn:peppol:pint:billing-1@ae-1&#8221;; hardcoded in integration<\/td>\n    <\/tr>\n    <tr>\n      <td>9<\/td>\n      <td>Payment means type code<\/td>\n      <td>Invoice &gt; Payment Method (custom or mapped)<\/td>\n      <td>How payment is settled; map NetSuite payment methods to PINT-AE codes<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>Field 5 is the first significant gap. NetSuite has no native field for an 8-bit binary string representing transaction type flags. The eight flags correspond to: Free Trade Zone, Deemed Supply, Margin Scheme, Summary Invoice, Continuous Supply, Disclosed Agent Billing, Supply through e-commerce, and Exports. Each flag is &#8220;1&#8221; if applicable and &#8220;0&#8221; if not. You need a custom field on the Invoice transaction record, populated either by the user or by scripted logic based on customer and item attributes.<\/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-mandatory-fields-netsuite_2.jpg\" alt=\"Close-up of HTML and PHP code on screen showing error message and login form data.\" 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>Seller Details (Fields 10\u201320)<\/h2>\n\n<table>\n  <thead>\n    <tr>\n      <th>#<\/th>\n      <th>Field<\/th>\n      <th>NetSuite Source<\/th>\n      <th>Notes<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>10<\/td>\n      <td>Seller name<\/td>\n      <td>Subsidiary &gt; Legal Name<\/td>\n      <td>Full formal registered name<\/td>\n    <\/tr>\n    <tr>\n      <td>11<\/td>\n      <td>Seller electronic address (TIN)<\/td>\n      <td><span class=\"custom-badge\">CUSTOM FIELD<\/span> on Subsidiary<\/td>\n      <td>First 10 digits of the TRN; store as TIN on the company entity<\/td>\n    <\/tr>\n    <tr>\n      <td>12<\/td>\n      <td>Seller electronic identifier<\/td>\n      <td><span class=\"hardcoded-badge\">HARDCODED<\/span><\/td>\n      <td>Always &#8220;0235&#8221; for UAE businesses; hardcoded in integration<\/td>\n    <\/tr>\n    <tr>\n      <td>13<\/td>\n      <td>Seller legal registration identifier<\/td>\n      <td><span class=\"custom-badge\">CUSTOM FIELD<\/span> on Subsidiary<\/td>\n      <td>Trade license number or other official registration ID<\/td>\n    <\/tr>\n    <tr>\n      <td>14<\/td>\n      <td>Seller legal registration identifier type<\/td>\n      <td><span class=\"custom-badge\">CUSTOM FIELD<\/span> on Subsidiary<\/td>\n      <td>One of: TL (Trade License), EID, PAS, CD<\/td>\n    <\/tr>\n    <tr>\n      <td>15<\/td>\n      <td>Seller tax identifier (TRN)<\/td>\n      <td>Subsidiary &gt; Tax Registration Number<\/td>\n      <td>Available in NetSuite if tax registration is configured<\/td>\n    <\/tr>\n    <tr>\n      <td>16<\/td>\n      <td>Seller tax scheme code<\/td>\n      <td><span class=\"hardcoded-badge\">HARDCODED<\/span><\/td>\n      <td>Always &#8220;VAT&#8221;<\/td>\n    <\/tr>\n    <tr>\n      <td>17<\/td>\n      <td>Seller address line 1<\/td>\n      <td>Subsidiary &gt; Address &gt; Address 1<\/td>\n      <td>Standard address field<\/td>\n    <\/tr>\n    <tr>\n      <td>18<\/td>\n      <td>Seller city<\/td>\n      <td>Subsidiary &gt; Address &gt; City<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>19<\/td>\n      <td>Seller country subdivision (emirate)<\/td>\n      <td>Subsidiary &gt; Address &gt; State\/Province<\/td>\n      <td>Must match the emirate; verify state values are set correctly<\/td>\n    <\/tr>\n    <tr>\n      <td>20<\/td>\n      <td>Seller country code<\/td>\n      <td>Subsidiary &gt; Address &gt; Country<\/td>\n      <td>Must be &#8220;AE&#8221;<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Buyer Details (Fields 21\u201329)<\/h2>\n\n<table>\n  <thead>\n    <tr>\n      <th>#<\/th>\n      <th>Field<\/th>\n      <th>NetSuite Source<\/th>\n      <th>Notes<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>21<\/td>\n      <td>Buyer name<\/td>\n      <td>Customer &gt; Company Name<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>22<\/td>\n      <td>Buyer electronic address (TIN)<\/td>\n      <td><span class=\"custom-badge\">CUSTOM FIELD<\/span> on Customer<\/td>\n      <td>Buyer&#8217;s TIN; no native NetSuite field for this<\/td>\n    <\/tr>\n    <tr>\n      <td>23<\/td>\n      <td>Buyer electronic identifier<\/td>\n      <td><span class=\"hardcoded-badge\">HARDCODED<\/span><\/td>\n      <td>&#8220;0235&#8221; for UAE buyers; hardcoded<\/td>\n    <\/tr>\n    <tr>\n      <td>24<\/td>\n      <td>Buyer tax identifier (TRN)<\/td>\n      <td>Customer &gt; Tax Registration Number<\/td>\n      <td>Available if customer tax registration is entered<\/td>\n    <\/tr>\n    <tr>\n      <td>25<\/td>\n      <td>Buyer tax scheme code<\/td>\n      <td><span class=\"hardcoded-badge\">HARDCODED<\/span><\/td>\n      <td>Always &#8220;VAT&#8221;<\/td>\n    <\/tr>\n    <tr>\n      <td>26<\/td>\n      <td>Buyer address line 1<\/td>\n      <td>Customer &gt; Billing Address &gt; Address 1<\/td>\n      <td>Pull from billing address on the invoice<\/td>\n    <\/tr>\n    <tr>\n      <td>27<\/td>\n      <td>Buyer city<\/td>\n      <td>Customer &gt; Billing Address &gt; City<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>28<\/td>\n      <td>Buyer country subdivision<\/td>\n      <td>Customer &gt; Billing Address &gt; State\/Province<\/td>\n      <td>Emirate or state for non-UAE buyers<\/td>\n    <\/tr>\n    <tr>\n      <td>29<\/td>\n      <td>Buyer country code<\/td>\n      <td>Customer &gt; Billing Address &gt; Country<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Document Totals and Tax Breakdown (Fields 30\u201338)<\/h2>\n\n<table>\n  <thead>\n    <tr>\n      <th>#<\/th>\n      <th>Field<\/th>\n      <th>NetSuite Source<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>30<\/td>\n      <td>Sum of invoice line net amount<\/td>\n      <td>Invoice &gt; Subtotal (sum of line amounts before tax)<\/td>\n    <\/tr>\n    <tr>\n      <td>31<\/td>\n      <td>Invoice total amount without tax<\/td>\n      <td>Invoice &gt; Subtotal<\/td>\n    <\/tr>\n    <tr>\n      <td>32<\/td>\n      <td>Invoice total tax amount<\/td>\n      <td>Invoice &gt; Tax Total<\/td>\n    <\/tr>\n    <tr>\n      <td>33<\/td>\n      <td>Invoice total amount with tax<\/td>\n      <td>Invoice &gt; Total (including tax)<\/td>\n    <\/tr>\n    <tr>\n      <td>34<\/td>\n      <td>Amount due for payment<\/td>\n      <td>Invoice &gt; Amount Due<\/td>\n    <\/tr>\n    <tr>\n      <td>35<\/td>\n      <td>Tax category taxable amount<\/td>\n      <td>Tax Detail &gt; Net Amount per tax category<\/td>\n    <\/tr>\n    <tr>\n      <td>36<\/td>\n      <td>Tax category tax amount<\/td>\n      <td>Tax Detail &gt; Tax Amount per tax category<\/td>\n    <\/tr>\n    <tr>\n      <td>37<\/td>\n      <td>Tax category code<\/td>\n      <td>Tax Code mapped to PINT-AE category codes<\/td>\n    <\/tr>\n    <tr>\n      <td>38<\/td>\n      <td>Tax category rate<\/td>\n      <td>Tax Code &gt; Rate (%)<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>Tax category code (field 37) requires a mapping table. NetSuite tax codes need to be mapped to one of the six PINT-AE categories: Standard Rate, Exempt, Out of Scope, Reverse Charge, Zero Rated, or Margin Scheme. This mapping should be maintained as a custom list in NetSuite or a lookup table in the integration layer.<\/p>\n\n<h2>Invoice Line Fields (Fields 39\u201351)<\/h2>\n\n<table>\n  <thead>\n    <tr>\n      <th>#<\/th>\n      <th>Field<\/th>\n      <th>NetSuite Source<\/th>\n      <th>Notes<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>39<\/td>\n      <td>Invoice line identifier<\/td>\n      <td>Line number (auto-generated)<\/td>\n      <td>Sequential number per line<\/td>\n    <\/tr>\n    <tr>\n      <td>40<\/td>\n      <td>Invoiced quantity<\/td>\n      <td>Invoice Line &gt; Quantity<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>41<\/td>\n      <td>Unit of measure code<\/td>\n      <td>Invoice Line &gt; Units<\/td>\n      <td>Must use UN\/ECE Recommendation 20 codes (EA, HUR, KGM, etc.)<\/td>\n    <\/tr>\n    <tr>\n      <td>42<\/td>\n      <td>Invoice line net amount<\/td>\n      <td>Invoice Line &gt; Amount (after discount, before tax)<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>43<\/td>\n      <td>Item net price<\/td>\n      <td>Invoice Line &gt; Unit Price (after discount)<\/td>\n      <td>Exclusive of tax<\/td>\n    <\/tr>\n    <tr>\n      <td>44<\/td>\n      <td>Item gross price<\/td>\n      <td>Invoice Line &gt; Unit Price (before discount)<\/td>\n      <td>Price before any line discount<\/td>\n    <\/tr>\n    <tr>\n      <td>45<\/td>\n      <td>Item price base quantity<\/td>\n      <td>Derived (typically 1)<\/td>\n      <td>The quantity the unit price applies to<\/td>\n    <\/tr>\n    <tr>\n      <td>46<\/td>\n      <td>Invoiced item tax category code<\/td>\n      <td>Invoice Line &gt; Tax Code (mapped to PINT-AE)<\/td>\n      <td>Same mapping table as field 37<\/td>\n    <\/tr>\n    <tr>\n      <td>47<\/td>\n      <td>Invoiced item tax rate<\/td>\n      <td>Invoice Line &gt; Tax Code &gt; Rate<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>48<\/td>\n      <td>VAT line amount in AED<\/td>\n      <td><span class=\"custom-badge\">CALCULATED<\/span><\/td>\n      <td>Tax amount for this line in AED regardless of invoice currency; requires conversion<\/td>\n    <\/tr>\n    <tr>\n      <td>49<\/td>\n      <td>Invoice line amount in AED<\/td>\n      <td><span class=\"custom-badge\">CALCULATED<\/span><\/td>\n      <td>Total payable for this line in AED regardless of invoice currency; requires conversion<\/td>\n    <\/tr>\n    <tr>\n      <td>50<\/td>\n      <td>Item name<\/td>\n      <td>Invoice Line &gt; Item &gt; Display Name<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n    <tr>\n      <td>51<\/td>\n      <td>Item description<\/td>\n      <td>Invoice Line &gt; Description<\/td>\n      <td>Standard field<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Fields NetSuite Does Not Have Natively<\/h2>\n\n<p>Before building the integration, create the following custom fields in NetSuite. Without them, the integration layer has no source record to read from:<\/p>\n\n<ul>\n  <li><strong>Invoice transaction type code<\/strong> (field 5): Custom text field on the Invoice transaction record. Use a 8-character format with validation or a set of eight checkbox fields mapped to binary positions. The field must be populated per invoice, either manually or via a scripted rule.<\/li>\n  <li><strong>Invoice UUID<\/strong> (not in the 51 mandatory fields, but required): When you submit an invoice to the Accredited Service Provider (ASP), you receive a UUID back. Store this on the Invoice record via a custom field so you can reference the original submission. This is a post-submission field, populated by the integration callback.<\/li>\n  <li><strong>Seller TIN<\/strong> (field 11): The first 10 digits of the 15-digit TRN. Store on the Subsidiary record as a custom field. The Peppol endpoint ID is then assembled as &#8220;0235:&#8221; + TIN in the integration layer.<\/li>\n  <li><strong>Seller trade license number<\/strong> (field 13) and <strong>registration type<\/strong> (field 14): Custom fields on the Subsidiary record.<\/li>\n  <li><strong>Buyer TIN<\/strong> (field 22): Custom field on the Customer record. Required for all B2B electronic invoices to UAE-registered buyers.<\/li>\n<\/ul>\n\n<div class=\"warn-box\">\n<strong>Data quality risk:<\/strong> Several of these custom fields will be empty at go-live unless you run a data migration to populate them for existing customers and subsidiary records. Budget time for this as part of your UAT phase.\n<\/div>\n\n<h2>The AED Conversion Requirement for Line Fields<\/h2>\n\n<p>Fields 48 and 49 are the most technically awkward requirement in the specification. The VAT line amount and total line amount must be expressed in AED on every invoice line, regardless of the invoice currency. If you invoice a customer in USD or EUR, the integration must convert each line&#8217;s amounts to AED at the exchange rate on the invoice date.<\/p>\n\n<p>NetSuite stores the exchange rate on every foreign currency transaction. The integration layer should pull the exchange rate from the Invoice record and apply it to each line&#8217;s tax amount and net amount to produce the AED equivalents. Do not try to store these as persistent NetSuite fields on each line; calculate them at extraction time based on the invoice&#8217;s exchange rate.<\/p>\n\n<p>This also means your integration needs to know the functional currency of the subsidiary is AED, so it knows which direction to convert. For subsidiaries whose base currency is already AED, no conversion is needed.<\/p>\n\n<h2>The Peppol Participant ID: What It Is and Where It Lives<\/h2>\n\n<p>The UAE e-invoicing network uses the Peppol framework for addressing. Every participant (seller and buyer) is identified by a Peppol Participant ID in the format: <code>0235:TIN<\/code>.<\/p>\n\n<p>The TIN is the first 10 digits of the 15-digit TRN. For example, if the TRN is 100000000000003, the TIN is 1000000000, and the Peppol endpoint ID is 0235:1000000000. The scheme code &#8220;0235&#8221; is the UAE-specific Peppol issuing agency code and is always hardcoded.<\/p>\n\n<p>In NetSuite terms: store the TIN (10 digits) as a custom field on the Subsidiary record (for your company) and on the Customer record (for buyers). The integration layer then concatenates &#8220;0235:&#8221; + TIN to form the Peppol Participant ID for the XML. Never store the full Peppol ID as a field; the &#8220;0235:&#8221; prefix is always a constant.<\/p>\n\n<p>For guidance on how the full submission process works, see <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>, which covers the ASP connection, submission flow, and error handling.<\/p>\n\n<h2>What to Harden in Your Integration Layer<\/h2>\n\n<p>Several values in the specification are always fixed. Rather than adding NetSuite custom fields for them, hardcode them directly in the XML generation code and document that decision clearly:<\/p>\n\n<ul>\n  <li>Specification identifier: always <code>urn:peppol:pint:billing-1@ae-1<\/code><\/li>\n  <li>Business process type: always <code>urn:peppol:bis:billing<\/code><\/li>\n  <li>Seller electronic identifier (scheme code): always <code>0235<\/code><\/li>\n  <li>Buyer electronic identifier (scheme code): always <code>0235<\/code><\/li>\n  <li>Seller tax scheme code: always <code>VAT<\/code><\/li>\n  <li>Buyer tax scheme code: always <code>VAT<\/code><\/li>\n<\/ul>\n\n<p>These six values never vary by transaction or customer. Keeping them as code constants rather than database fields eliminates an entire class of data quality issues where someone accidentally blanks out the field or enters the wrong value.<\/p>\n\n<p>For the unit of measure codes (field 41), maintain a mapping table between NetSuite unit types and UN\/ECE Recommendation 20 codes. NetSuite&#8217;s default unit names (&#8220;Each&#8221;, &#8220;Hour&#8221;, &#8220;Kilogram&#8221;) will not match the required codes (&#8220;EA&#8221;, &#8220;HUR&#8221;, &#8220;KGM&#8221;). A lookup table in the integration is the cleanest approach.<\/p>\n\n<p>Use the <a href=\"https:\/\/aaxonix.com\/resources\/uae-e-invoicing-go-live-checklist-netsuite\/\" class=\"sp-content-link\">UAE e-invoicing go-live checklist for NetSuite<\/a> to verify all custom fields are created, populated, and tested before your compliance date.<\/p>\n\n<div class=\"faq-section\">\n  <h2>Frequently Asked Questions<\/h2>\n\n  <div class=\"faq-item\">\n    <div class=\"faq-question\">How many mandatory fields are in a UAE electronic tax invoice?<\/div>\n    <div class=\"faq-answer\">The UAE Ministry of Finance specification (V1.0, February 2026) defines 51 mandatory fields, organised into six groups: Invoice Details (9), Seller Details (11), Buyer Details (9), Document Totals (5), Tax Breakdown (4), and Invoice Line fields (13 per line).<\/div>\n  <\/div>\n\n  <div class=\"faq-item\">\n    <div class=\"faq-question\">Does UAE e-invoicing require a QR code like Saudi Arabia&#8217;s ZATCA?<\/div>\n    <div class=\"faq-answer\">No. UAE electronic invoices do not include a QR code. The compliant format is XML only, transmitted via the Peppol network through an Accredited Service Provider. PDF invoices are separate and carry no legal weight as the primary invoice record.<\/div>\n  <\/div>\n\n  <div class=\"faq-item\">\n    <div class=\"faq-question\">What custom fields does NetSuite need for UAE e-invoicing compliance?<\/div>\n    <div class=\"faq-answer\">At minimum, four custom fields are required: the invoice transaction type code (8-bit binary flag) on the Invoice record; the TIN (first 10 digits of TRN) on the Subsidiary record; the buyer TIN on the Customer record; and the trade license number plus registration type on the Subsidiary record. A UUID field on Invoice is also needed to store the ASP response after submission.<\/div>\n  <\/div>\n\n  <div class=\"faq-item\">\n    <div class=\"faq-question\">What is the invoice transaction type code and how does it work?<\/div>\n    <div class=\"faq-answer\">It is an 8-character binary string where each character is &#8220;1&#8221; (applicable) or &#8220;0&#8221; (not applicable) for eight transaction types: Free Trade Zone, Deemed Supply, Margin Scheme, Summary Invoice, Continuous Supply, Disclosed Agent Billing, Supply through e-commerce, and Exports. A standard domestic B2B invoice with none of these flags would be &#8220;00000000&#8221;. NetSuite has no native field for this; it requires a custom field on the Invoice transaction record.<\/div>\n  <\/div>\n\n  <div class=\"faq-item\">\n    <div class=\"faq-question\">Why must line amounts be in AED even if the invoice currency is USD?<\/div>\n    <div class=\"faq-answer\">The PINT-AE specification requires fields 48 and 49 (VAT line amount and invoice line amount) to always be expressed in AED, the UAE&#8217;s functional currency. This applies regardless of the transaction currency. The integration layer must retrieve the exchange rate from the NetSuite invoice record and convert each line&#8217;s amounts to AED at extraction time.<\/div>\n  <\/div>\n\n  <div class=\"faq-item\">\n    <div class=\"faq-question\">What is the Peppol Participant ID format for UAE businesses?<\/div>\n    <div class=\"faq-answer\">The format is 0235:TIN, where TIN is the first 10 digits of the 15-digit TRN. The scheme code &#8220;0235&#8221; is the UAE-specific Peppol issuing agency code and is always fixed. Store only the TIN in NetSuite; the integration prepends &#8220;0235:&#8221; when building the XML.<\/div>\n  <\/div>\n<\/div>\n\n<div class=\"aax-cta\">\n  <p>Need help mapping UAE e-invoicing fields to your NetSuite setup? Aaxonix works with UAE businesses to design and implement compliant integrations from field mapping through to go-live.<\/p>\n  <a href=\"https:\/\/aaxonix.com\/contact\/\">Book a free consultation<\/a>\n<\/div>\n\n<p>Getting the field mapping right at the design stage is the difference between a smooth go-live and an expensive rework cycle. The 51 mandatory fields in the UAE specification are clearly defined; what matters is knowing which ones NetSuite covers natively, which require custom fields, and which should be hardcoded constants in your integration. Build that inventory first, then write the code. For a complete view of your implementation scope, see <a href=\"https:\/\/aaxonix.com\/services\/netsuite\/\" class=\"sp-content-link\">NetSuite implementation and integration services<\/a> from Aaxonix.<\/p>\n\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Map all 51 UAE e-invoicing mandatory fields to their NetSuite source. Covers custom fields, hardcoded values, and what to configure for full compliance.<\/p>\n","protected":false},"author":1,"featured_media":3827,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[1205,1206,1203,1204,1202],"class_list":["post-3830","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-e-invoice-mapping","tag-fta-compliance","tag-netsuite-custom-fields","tag-pint-ae-invoice","tag-uae-e-invoicing-mandatory-fields"],"_links":{"self":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3830","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=3830"}],"version-history":[{"count":1,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3830\/revisions"}],"predecessor-version":[{"id":3831,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3830\/revisions\/3831"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media\/3827"}],"wp:attachment":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media?parent=3830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/categories?post=3830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/tags?post=3830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}