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';

    };
    };
  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

NameTypeRequiredDescription
dueDatestring (ISO 8601 date)NoDue date of invoice
lines[].unitstringYesA value from an enumerated list as outlined on Units of Measure
lines[].vat.codestringYesA 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.exemptReasonstringConditionalIf lines[].vat.code is E, an exemption reason is required.
lines[].vat.exemptReasonCodestringConditionalIf 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[].itemCodestringOptionalLine-item type.
G: Goods
S: Services
B: Both
recipient.taxIdstringYesRecipient tax identification number (TRN/TIN/Passport number).
recipient.address.line1stringYesAddress line 1 (Street address/PO Box/Company name).
recipient.address.citystringYesCity/District/Suburb/Town/Village.
recipient.address.statestringYesState/County/Province/Region/Subdivision.
recipient.address.countrystringYesThree-letter country code (ISO 3166-1 alpha-3)
recipient.address.postalCodestringNoZIP or postal code
recipient.peppolId.endpointIdstringConditionalPeppol ID of the recipient. Required if the recipient is registered on Peppol.
recipient.identificationObjectConditionalThis object is required when recipient.identification.type is TL OR PAS
recipient.identification.namestringYesRecipients' legal registered name
recipient.identification.valuestringYesRecipients' legal registration identifier value
recipient.identification.typestringYes

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.identification.address.countrystringConditionalThree-letter country code (ISO 3166-1 alpha-3). Required when recipient.identification.type is PAS.
sender.taxRepresentativeObjectConditionalFor instances where a third-party tax representative is used.
sender.taxRepresentative.namestringYesName of Tax Representative
sender.taxRepresentative.taxIdstringYesTax ID of Tax Representative
sender.taxRepresentative.address.countrystringYesCountry of Tax Representative
customInfo.are.transactionTypestring arrayConditional

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.

salesOrderRefstringNoSales order reference. An identifier of a referenced sales order, issued by the Seller.
purchaseOrderRefstringNoPurchase order reference. An identifier of a referenced purchase order, issued by the Buyer.
shipToPartyObjectNoFor instances where the ship-to party details differ and need to be explicitly stated.
shipToParty.namestringNoThe name of the party to which the goods and services are delivered.
shipToParty.taxIdstringNoTIN of the shipping recipient assigned by IRBM
shipToParty.address.line1stringNoDeliver to address line 1. The main address line in an address.
shipToParty.address.line2stringNoDeliver 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.citystringNoDeliver to city. The common name of the city, town or village, where the deliver to address is located.
shipToParty.address.statestringNoDeliver to country subdivision. The subdivision of a country.
shipToParty.address.countrystringNoDeliver to country code. A code that identifies the country.
shipToParty.address.postalCodestringNoDeliver to post code. The identifier for an addressable group of properties according to the relevant postal service.
paymentMeansObject ArrayNoFor instances where the payment means need to be explicitly stated.
paymentMeans.refstringNoRemittance 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.codestringYes

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.ibanstringNoIBAN 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.numberstringNoPayment 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.namestringNoPayment account name
The name of the payment account, at a payment service provider, to which payment should be made.
paymentMeans.account.branchstringNoThe branch identifier for the payment service provider where a payment account is located.
paymentMeans.card.panstringNoPayment 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.
paymentMeans.card.networkstringNoCard network like Visa or Mastercard
paymentMeans.card.holderNamestringNoPayment card holder name
The name of the payment card holder.
attachmentsObject ArrayNoArray of attachment objects
attachment.namestringYesFile Name
attachment.contentTypestringYesFile 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.datastringYesBase64 encoded file content with a maximum size of 1MB
notesstringNoAny applicable or additional not

Example CSV files

Invoice - UAE.csv