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;
exemptReason?: string;
}
}
];
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;
number?: string;
name: string;
branch: string;
};
card: {
pan: string;
network: string;
holderName: string;
};
directDebit: {
id: 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) |
lines[].vat.exemptReason | string | Conditional | If the line VAT amount is 0, an exemption reason is required. |
recipient.address.line1 | string | Yes | Address line 1 (Street address/PO Box/Company name). |
recipient.address.line2 | string | Yes | Address line 2 (Apartment/Suite/Unit/Building). |
recipient.address.city | string | Yes | City/District/Suburb/Town/Village. |
recipient.address.state | string | Yes | State/County/Province/Region. |
recipient.address.country | string | Yes | Three-letter country code (ISO 3166-1 alpha-3) |
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. This would be used instead of 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 Example: |
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.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/pdfimage/pngimage/jpegtext/csvapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/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 notes |