Jordan

Credit note

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 CreditNote {
  // ...all generic credit note fields
  lines: InvoiceLine[];
  invoiceRefs: string[],
  // ...everything from recipient
  recipient: {
    taxIdType: JordanTaxIDTypes;
    isPerson: boolean;
    contact: {
      email?: string;
      phone?: string;
    }
  },
  customInfo: {
    jor: {
      invoiceSubType: 'LocalGeneralSalesInvoice';
      creditReason: string;
      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

NameTypeRequiredDescription
invoiceRefsstringYesAn array of existing invoices
lines[].descriptionstringYesDescription of the goods or service
lines[].unitstringYesA value from an enumerated list as outlined on Units of Measure
lines[].quantitynumberYesQuantity of the good or service
lines[].itemCodestringYesProduct unique identifier (e.g., barcode)
lines[].vat.typestringYesA value from an enumerated list of types:
"fixed"
"percent"
lines[].vat.codestringYesA value from an enumerated list as outlined on VAT code classification
lines[].vat.amountnumberYesLine item Tax amount when lines[].vat.type = 'percent' Can be one of 0, 4, 8 or 16
lines[].additionalTaxes.codestringConditionalRequired when adding additional taxes. A value from an enumerated list as outlined on VAT code classification
lines[].additionalTaxes.typestringConditionalRequired when adding additional taxes. A value from an enumerated list of types:
"fixed"
"percent"
lines[].additionalTaxes.amountstringConditionalRequired when adding additional taxes and lines[].additionalTaxes.type = 'fixed. Additional tax amount
lines[].additionalTaxes.percentstringConditionalRequired when adding additional taxes and lines[].additionalTaxes.type = 'percentage. Additional tax amount
lines[].vat.exemptReasonstringConditionalIf the line VAT amount is 0, an exemption reason is required.
lines[].vat.exemptReasonCodestringConditionalIf 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.amountnumberYesUnit price of the good or service
recipient.contact.emailstringNoRecipient email address
recipient.contact.phonestringNoRecipient phone number
recipient.taxIdTypestringYesA value from an enumerated list as outlined on Jordan Tax ID types
recipient.isPersonbooleanYes
  • true:* recipient.taxIdType = 'NAT'
  • false:* recipient.taxIdType not 'NAT'
customInfo.jor.invoiceSubTypestringYesHere 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.creditReasonstringYesReason for credit.
customInfo.jor.paymnetMeans.codestringYesHere 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