Jordan

Invoice

Changes to generic fields

  • recipient.address.line1 is required.
  • recipient.address.city is required.
  • recipient.address.country is required.
  • recipient.address.postalCode is required.
  • organisation.address.state is required.
type Invoice {
  // ...all generic invoice fields
  lines: InvoiceLine[];
  // ...everything from recipient
  recipient: {
    taxIdType: JordanTaxIDTypes;
    isPerson: boolean;
    contact: {
      email?: string;
      phone?: string;
    },
    contract: {
      authority: string;
      reference: string;
      type: string;
      customerCode: string;
      companyRegNumber: string;
    }
  },
  customInfo: {
    jor: {
      invoiceSubType: 'LocalGeneralSalesInvoice';
      paymentMeans: {
        code: string;
      }
    }
  }
}

type InvoiceLine {
  description: string;
  unit: Unit;
  itemCode: string;
  quantity?: number;
  vat: {
    type: 'fixed' | 'percent';
    code: TaxCode;
    // If type='percent, amount can be one of:
    amount: 0 | 4 | 8 | 16;
    // ...other line item vat fields
    exemptReason?: string;
    exemptReasonCode?: JordanExemptionReasonCodes;
  };
  price: {
    amount: number;
  };
  additionalTaxes: [{
    code: string;
    type: string;
    percent: string;
    amount: string;
  }];
}

Field information

Name

Type

Required

Description

lines[].description

string

Yes

Description of the goods or service

lines[].unit

string

Yes

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

lines[].itemCode

string

Yes

Product unique identifier (e.g., barcode)

lines[].quantity

number

Yes

Quantity of the good or service

lines[].vat.type

string

Yes

A value from an enumerated list of types:
"fixed"
"percent"

lines[].vat.code

string

Yes

A value from an enumerated list as outlined on VAT code classification

lines[].vat.amount

number

Yes

Line item Tax amount when lines[].vat.type = 'percent' Can be one of 0, 4, 8 or 16

lines[].additionalTaxes.code

string

Conditional

Required when adding additional taxes. A value from an enumerated list as outlined on VAT code classification

lines[].additionalTaxes.type

string

Conditional

Required when adding additional taxes. A value from an enumerated list of types:
"fixed"
"percent"

lines[].additionalTaxes.amount

string

Conditional

Required when adding additional taxes and lines[].additionalTaxes.type = 'fixed. Additional tax amount

lines[].additionalTaxes.percent

string

Conditional

Required when adding additional taxes and lines[].additionalTaxes.type = 'percentage. Additional tax amount

lines[].vat.exemptReason

string

Conditional

If the line VAT amount is 0, an exemption reason is required.

lines[].vat.exemptReasonCode

string

Conditional

If the line VAT amount is 0, a value is required. Here are the possible values:

  • *JO-Zero-Rated:**Zero rated - The good or service is exempted
    • Out-Of-Tax:* Out of tax - The good or service is a zero rating tax

lines[].price.amount

number

Yes

Unit price of the good or service

recipient.contact.email

string

No

Recipient email address

recipient.contact.phone

string

No

Recipient phone number

recipient.contract.authority

string

No

Recipient contract authority

recipient.contract.reference

string

No

Recipient contract reference

recipient.contract.type

string

No

Recipient contract type

recipient.contract.customerCode

string

No

Recipient contract customer code

recipient.contract.companyRegNumber

string

No

Recipient contract company registration number

recipient.taxIdType

string

Yes

A value from an enumerated list as outlined on Jordan Tax ID types

recipient.isPerson

boolean

Yes

  • true:* recipient.taxIdType = 'NAT'
  • false:* recipient.taxIdType not 'NAT'

customInfo.jor.invoiceSubType

string

Yes

Here are the possible values:
LocalGeneralSalesInvoice: Local – General Sales Tax Invoice - currently only supported value

  • ExportIncomeBill:* Export – Income Bill
  • ExportGeneralSalesInvoice:* Export – General Sales Tax Invoice
  • AreaDevGeneralSalesInvoice:* Development Area – General Sales Tax Invoice
  • LocalSpecialSalesInvoice:* Local – Special Sales Tax Invoice
  • ExportSpecialSalesInvoice:* Export – Special Sales Tax Invoice
  • AreaDevSpecialSalesInvoice:* Development Area – Special Sales Tax Invoice

customInfo.jor.paymnetMeans.code

string

Yes

Here are the possible values:

  • 1* = Instrument not defined
  • 10* = In cash
  • 30* = Credit Transfer
  • 42* = Payment to bank account
  • 48* = Bank card
  • ZZZ* = Mutually defined