Peppol

Invoice

Changes to generic fields

type Invoice {
  // ...all generic invoice fields
  dueDate: string;
  salesOrderRef?: string;
  purchaseOrderRef?: string;
  lines: [
    { 
      // ...other line item fields
      unit: UnitsOfMeasure;
      vat:{
        code: VatCodeUNTDID;
      }
    }
  ];
  sender?: {
    // ...other sender fields 
    taxRepresentative?:{
      name:string;
			taxId: string;
      address: {
        country: string;
      }
    }
  };
  recipient:{
    peppolId: {
      endpointId: string;
    };
    taxRepresentative?:{
      name:string;
			taxId: string;
      address: {
        country: string;
      }
    }
  };
  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;
      bic: string;
      number: string;
      name: string;
      bankName: string;
      branch: string;
    };
    card: {
      pan: string;
      network: string;
      holderName: string;
    };
    directDebit: {
      id: string;
      schemeId: string;
      url: string;
      ref: string;
    };
    other: {};
  }];
  attachments?: Attachment[];
  notes?: string;
};

type 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

due

string (ISO 8601 date)

No

Deprecated in favour of "dueDate"

dueDate

string (ISO 8601 date)

Yes

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 as outlined on VAT code classification (UNTDID 5305)

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.

recipient.address.country

string

Yes

Two-or three-letter country code ISO 3166

recipient.address.postalCode

string

Yes

ZIP or postal code

recipient.peppolId.endpointId

string

Yes

Peppol ID of the recipient

recipient.taxRepresentative

Object

No

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

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

No

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

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.

paymentMeans.account.bic

string

No

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

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.

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.bankName

string

No

Bank name
The name of the bank 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.

paymentMeans.directDebit.id

string

No

Mandate reference identifier
Unique identifier assigned by the Payee for referencing the direct debit mandate. Used in order to pre-notify the Buyer of a SEPA direct debit.

paymentMeans.directDebit.schemeId

string

No

Debited account identifier
The account to be debited by the direct debit.

paymentMeans.other

string

No

Other payment means details

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

notes

string

No

Any applicable or additional notes


Example CSV file

Invoice - Peppol.csv