United Arab Emirates

Invoice

Changes to generic fields

  • lines.unit is required
  • recipient.address.line1 is required
  • recipient.address.city is required
  • recipient.address.state is required
type Invoice {
  // ...all generic invoice fields
  dueDate?: string;
  salesOrderRef?: string;
  purchaseOrderRef?: string;
  lines: [
    { 
      // ...other line item fields
      unit: UnitsOfMeasure;
      vat:{
       code: string;
       exemptReason?: string;
       exemptReasonCode?:string;
      }
    }
  ];
  total: {
    amount: number;
    currency: string;
  };
  sender:{
    // ...all other sender fields
    address:{
      line1:string;
      line2?:string;
      city:string:
      state:string;
    };
    identification?:{
      name:string;
      value:string;
      type: 'TL'|'EID'|'PAS'|'CD';

    };
    taxRepresentative?:{
      name:string;
      taxId: string;
      address: {
        country: string;
      }
    };
  };
  recipient:{
    // ...all other recipient fields
    address:{
      line1:string;
      line2?:string;
      city:string:
      state:string;
      country:string;
    };
    peppolId?: {
      endpointId: string;
    };
    identification?:{
      name:string;
      value:string;
      type: 'TL'|'EID'|'PAS'|'CD';

    };
    taxRepresentative?:{
      name:string;
      taxId: string;
      address: {
        country: string;
      }
    };
  customInfo:{
    are:{
      transactionType: '01'|'02'|'03'|'04'|'05'|'06'|'07'|'08';
    };
  };
  shipToParty?:{
    name: string;
    taxId: string;
    address:{
      line1: string;
      line2?: string;
      city: string;
      state: string;
      country: string;
      postalCode?: string;
    }
  };
  paymentMeans?: [{
    ref: string;
    code: string;
    account: {
      iban?: string;
      number?: string;
      name: string;
      branch: string;
    };
    card: {
      pan: string;
      network: string;
      holderName: string;
    };
  }];
  attachment {
  name: string;
  contentType: 'application/pdf' | 'image/png' | 'image/jpeg' | 'text/csv' | 
               'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' |
               'application/vnd.oasis.opendocument.spreadsheet' ;
  data: string;
  };
};

Field information

Name

Type

Required

Description

dueDate

string (ISO 8601 date)

No

Due date of invoice

lines[].unit

string

Yes

A value from an enumerated list as outlined on Units of Measure

lines[].vat.code

string

Yes

A value from an enumerated list:
S/Standard: Standard Rate
E/Exempt: Exempt transactions
Z/Zero rated: Zero rated transactions
AE/Reverse Charge: VAT Reverse Charge
O/Outside of scope: Services outside scope of tax / Not subject to tax

lines[].vat.exemptReason

string

Conditional

If lines[].vat.code is E, an exemption reason is required.

lines[].vat.exemptReasonCode

string

Conditional

If lines[].vat.code is E, an exemption reason code is required from the following options:
DL8.46.1: Certain financial services
DL8.46.2: Supply of residential units (lease or sale)
DL8.46.3: Bare land
DL8.46.4: Local passenger transport

lines[].itemCode

string

Optional

Line-item type.
G: Goods
S: Services
B: Both

recipient.taxId

string

Yes

Recipient tax identification number (TRN/TIN/Passport number).

recipient.address.line1

string

Yes

Address line 1 (Street address/PO Box/Company name).

recipient.address.city

string

Yes

City/District/Suburb/Town/Village.

recipient.address.state

string

Yes

State/County/Province/Region/Subdivision.

recipient.address.country

string

Yes

Three-letter country code (ISO 3166-1 alpha-3)

recipient.address.postalCode

string

No

ZIP or postal code

recipient.peppolId.endpointId

string

Conditional

Peppol ID of the recipient. Required if the recipient is registered on Peppol.

recipient.identification

Object

Conditional

This object is required when recipient.identification.type is TL OR PAS

recipient.identification.name

string

Yes

Recipients' legal registered name

recipient.identification.value

string

Yes

Recipients' legal registration identifier value

recipient.identification.type

string

Yes

Recipient legal registration identifier type specifying the nature of commercial registration number issued in UAE.

It should be one of the following:
TL: Commercial/Trade license,
EID: Emirates ID,
PAS: Passport,
CD: Cabinet Decision

recipient.taxRepresentative

Object

Conditional

For instances where a third-party tax representative is used.

recipient.taxRepresentative.name

string

Yes

Name of Tax Representative

recipient.taxRepresentative.taxId

string

Yes

Tax ID of Tax Representative

recipient.taxRepresentative.address.country

string

Yes

Country of Tax Representative

customInfo.are.transactionType

string

Conditional

UAE special transaction types. A value from an enumerated list:
01: Free Trade Zone
02: Deemed Supply
03: Profit Margin Scheme
04 : Summary Invoice
05: Continuous Supply
06: Disclosed Agent Billing
07: Supply through e-commerce
08: Exports

Required for invoices that are subject to taxes. For example, invoices where lines[].vat.code is S, Z or AE.

salesOrderRef

string

No

Sales order reference. An identifier of a referenced sales order, issued by the Seller.

purchaseOrderRef

string

No

Purchase order reference. An identifier of a referenced purchase order, issued by the Buyer.

shipToParty

Object

No

For instances where the ship-to party details differ and need to be explicitly stated.

shipToParty.name

string

No

The name of the party to which the goods and services are delivered.

shipToParty.taxId

string

No

TIN of the shipping recipient assigned by IRBM

shipToParty.address.line1

string

No

Deliver to address line 1. The main address line in an address.

shipToParty.address.line2

string

No

Deliver to address line 2. An additional address line in an address that can be used to give further details supplementing the main line.

shipToParty.address.city

string

No

Deliver to city. The common name of the city, town or village, where the deliver to address is located.

shipToParty.address.state

string

No

Deliver to country subdivision. The subdivision of a country.

shipToParty.address.country

string

No

Deliver to country code. A code that identifies the country.

shipToParty.address.postalCode

string

No

Deliver to post code. The identifier for an addressable group of properties according to the relevant postal service.

paymentMeans

Object Array

No

For instances where the payment means need to be explicitly stated.

paymentMeans.ref

string

No

Remittance information
A textual value used to establish a link between the payment and the Invoice, issued by the Seller. Used for creditor's critical reconciliation information. This information element helps the Seller to assign an incoming payment to the relevant payment process.

paymentMeans.code

string

Yes

Payment means type code
The means, expressed as code, for how a payment is expected to be or has been settled form the following options.

01: Instrument not defined
10: In cash
20: Cheque Payment
21: Banker's draft
30: Credit transfer
49: Direct debit
54: Credit card
55: Debit card
68: Online payment service

paymentMeans.account.iban

string

No

IBAN Payment account identifier
A unique identifier of the financial payment account, at a payment service provider, to which payment should be made. This would be used instead of paymentMeans.account.number when provided.

paymentMeans.account.number

string

No

Payment account identifier
A unique identifier of the financial payment account, at a payment service provider, to which payment should be made. This will only be used if when no IBAN number was specified.

paymentMeans.account.name

string

No

Payment account name
The name of the payment account, at a payment service provider, to which payment should be made.

paymentMeans.account.branch

string

No

The branch identifier for the payment service provider where a payment account is located.

paymentMeans.card.pan

string

No

Payment card primary account number
The Primary Account Number (PAN) of the card used for payment. In accordance with card payments security standards, an invoice should never include a full card primary account number.

Example: ****8400

paymentMeans.card.network

string

No

Card network like Visa or Mastercard

paymentMeans.card.holderName

string

No

Payment card holder name
The name of the payment card holder.

attachments

Object Array

No

Array of attachment objects

attachment.name

string

Yes

File Name

attachment.contentType

string

Yes

File MIME type. Allowed values include:
application/pdf
image/png
image/jpeg
text/csv
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.oasis.opendocument.spreadsheet

attachment.data

string

Yes

Base64 encoded file content with a maximum size of 1MB

notes

string

No

Any applicable or additional not

Example CSV files

Invoice - UAE.csv