Models

Self Billing Invoice to send

Self billing invoice to send to a recipient

Properties

NameTypeRequiredDescription
invoiceNumberstringYesThe number the seller assigned to the invoice. Example: "INV-2024-001"
issueDatestring | nullNoIf not provided, the issue date will be the current date. Example: "2024-03-20". Format: date
dueDatestring | nullNoIf not provided, the due date will be 1 month from the issue date. Example: "2024-04-20". Format: date
notestring | nullNoA free text note about the invoice as a whole. Example: "Thank you for your business"
buyerReferencestring | nullNoA reference the buyer asked you to put on the invoice so they can route it internally (BT-10). If neither this nor purchaseOrderReference is provided, the invoice number is used. For a German public authority addressed by its Leitweg-ID (recipient scheme 0204), this must be that Leitweg-ID: it is filled in when left out, and a different value is refused. Example: "CC-4120"
purchaseOrderReferencestring | nullNoThe buyer's purchase order number (BT-13), written to the order reference. Example: "4500012345"
salesOrderReferencestring | nullNoA reference to a related sales order. Example: "SO-2024-001"
despatchReferencestring | nullNoA reference to a related despatch advice document (e.g. packing slip). Example: "DE-2024-001"
sellerobjectYes
buyerPartynullNo
deliveryDeliverynullNo
paymentMeansobject[] | nullNoOptional payment information. For most invoices, this should be provided. For prepaid invoices, this could be omitted
paymentTermsPayment TermsnullNo
linesobject[]YesThe invoice lines. At least one line is required. Min items: 1
discountsobject[] | nullNoOptional global discounts
surchargesobject[] | nullNoOptional global surcharges
totalsTotalsnullNo
vatProvided VAT totalsVAT totals auto calculationnull
attachmentsobject[] | nullNoOptional attachments to the invoice
currencyobjectNoThe currency of the invoice. Defaults to EUR. Default: EUR. Example: "EUR"
countrySpecificCountry Specific BillingnullNo

seller properties

NameTypeRequiredDescription
vatNumberstring | nullNoThe VAT number including its country prefix, for example BE0123456789. Example: "BE1234567894"
enterpriseNumberSchemeEnterprise Number SchemenullNo
enterpriseNumberstring | nullNoThe national registration number without a country prefix, paired with enterpriseNumberScheme. Example: "1234567894"
namestringYesThe registered name of the party. Example: "Example Company"
streetstringYesThe street name and number of the party's address. Example: "Example Street 1"
street2string | nullNoAn extra address line, for example a suite or a building name. Example: "Suite 100"
citystringYesThe city of the party's address. Example: "Brussels"
postalZonestringYesThe postal code of the party's address. Example: "1000"
countrystringYesThe country of the party's address, as an ISO 3166-1 alpha-2 code. Example: "BE"
emailstring | nullNoThe email address of the party. If not provided, the email address will not be included in the document. Example: "email@example.com"
phonestring | nullNoThe phone number of the party. Must contain at least 3 digits. If not provided, the phone number will not be included in the document. Example: "887 654 321"

seller.enterpriseNumberScheme (One of)

buyer (One of)

Party:

NameTypeRequiredDescription
vatNumberstring | nullNoThe VAT number including its country prefix, for example BE0123456789. Example: "BE1234567894"
enterpriseNumberSchemeEnterprise Number SchemenullNo
enterpriseNumberstring | nullNoThe national registration number without a country prefix, paired with enterpriseNumberScheme. Example: "1234567894"
namestringYesThe registered name of the party. Example: "Example Company"
streetstringYesThe street name and number of the party's address. Example: "Example Street 1"
street2string | nullNoAn extra address line, for example a suite or a building name. Example: "Suite 100"
citystringYesThe city of the party's address. Example: "Brussels"
postalZonestringYesThe postal code of the party's address. Example: "1000"
countrystringYesThe country of the party's address, as an ISO 3166-1 alpha-2 code. Example: "BE"
emailstring | nullNoThe email address of the party. If not provided, the email address will not be included in the document. Example: "email@example.com"
phonestring | nullNoThe phone number of the party. Must contain at least 3 digits. If not provided, the phone number will not be included in the document. Example: "887 654 321"

buyer.enterpriseNumberScheme (One of)

delivery (One of)

Delivery:

NameTypeRequiredDescription
datestring | nullNoThe date of the delivery. Example: "2025-03-20". Format: date
locationIdentifierLocation IdentifiernullNo
locationobjectNo
recipientNamestringNoThe name of the party to which the goods and services are delivered. Example: "Company Ltd."

delivery.locationIdentifier (One of)

Location Identifier:

The identifier of a delivery location within a registered scheme. Schemes can be found here.

NameTypeRequiredDescription
schemestringYesExample: "0088"
identifierstringYesExample: "123456789"

delivery.location properties

NameTypeRequiredDescription
citystring | nullNoExample: "Brussels"
countrystringYesExample: "BE"
postalZonestring | nullNoExample: "1000"
streetstring | nullNoExample: "Example Street 1"
street2string | nullNoExample: "Suite 100"

paymentMeans properties

NameTypeRequiredDescription
namestring | nullNoThe name of the payment means. Example: "Credit Transfer"
paymentMethodcash | credit_transfer | debit_transfer | bank_card | credit_card | debit_card | sepa_credit_transfer | sepa_direct_debit | otherNoHow the invoice is to be paid. Defaults to credit_transfer. Accepted values: cash, credit_transfer, debit_transfer, bank_card, credit_card, debit_card, sepa_credit_transfer, sepa_direct_debit, other. Default: credit_transfer. Example: "credit_transfer". Values: cash, credit_transfer, debit_transfer, bank_card, credit_card, debit_card, sepa_credit_transfer, sepa_direct_debit, other
referencestringNoThe payment reference the buyer should quote when paying, such as a structured communication. Default: ``. Example: "INV-2026-001"
ibanstring | nullNoThe account the payment is to be made to, usually an IBAN. A credit transfer needs one. Leave it out when there is no account to pay into, as with a direct debit or a card payment. Example: "BE1234567890"
financialInstitutionBranchstring | nullNoAn identifier for the payment service provider where a payment account is located. Such as a BIC or a national clearing code where required

paymentTerms (One of)

Payment Terms:

Optional payment terms.

NameTypeRequiredDescription
notestringYesThe payment terms as free text. Example: "Net 30"

lines properties

NameTypeRequiredDescription
idstring | nullNoA line number. If not provided, it will be calculated automatically. Example: "1"
namestringNoThe name of the item or service being billed. Default: ``. Example: "Consulting Services"
descriptionstring | nullNoA longer description of the item or service. Example: "Professional consulting services"
notestring | nullNoA textual note that gives unstructured information that is relevant to this line
buyersIdstring | nullNoThe item identifier of the item as defined by the buyer. Example: "CS-001"
sellersIdstring | nullNoThe item identifier of the item as defined by the seller. This is typically a product code or SKU. Example: "CS-001"
standardIdStandard IdnullNo
documentReferencestring | nullNoA reference to a related document, mostly used to refer to a related invoice. Example: "INV-2024-001"
orderLineReferencestring | nullNoA reference to a related order line
commodityClassificationsobject[] | nullNoOptional commodity classifications
additionalItemPropertiesobject[] | nullNoOptional additional item properties
originCountrystring | nullNoThe country of origin of the item. Example: "BE"
quantitystringNoThe number of units billed on this line, expressed in unitCode. Default: 1.00. Example: "21.00"
unitCodestringNoRecommended unit codes can be found here. Default: C62. Example: "HUR"
netPriceAmountstringYesThe price of one unit excluding VAT, after any discount that is already reflected in the price. Example: "12.40"
baseQuantitystring | nullNoThe number of units to which the price refers. When greater than 1, the price is for a batch/pack of this size. The actual unit price is netPriceAmount / baseQuantity. Example: "1"
discountsobject[] | nullNoOptional discounts for the line
surchargesobject[] | nullNoOptional surcharges for the line
netAmountstring | nullNoThe total net amount of the line: quantity * netPriceAmount. Rounded to 2 decimal places. If not provided, it will be calculated automatically. Example: "21.00"
vatobjectYes

lines.standardId (One of)

Standard Id:

The standard identifier of the item based on a registered scheme. Schemes can be found here.

NameTypeRequiredDescription
schemestringYesExample: "0160"
identifierstringYesExample: "10986700"

lines.commodityClassifications properties

NameTypeRequiredDescription
schemestring (enum)YesThe scheme of the item classification code. Can be found here. Example: "SN". Values: AA, AB, AC, AD, AE, AF, AG, AH, AI, AJ, AK, AL, AM, AN, AO, AP, AQ, AR, AS, AT, AU, AV, AW, AX, AY, AZ, BA, BB, BC, BD, BE, BF, BG, BH, BI, BJ, BK, BL, BM, BN, BO, BP, BQ, BR, BS, BT, BU, BV, BW, BX, BY, BZ, CC, CG, CL, CR, CV, DR, DW, EC, EF, EMD, EN, FS, GB, GMN, GN, GS, HS, IB, IN, IS, IT, IZ, MA, MF, MN, MP, NB, ON, PD, PL, PO, PV, QS, RC, RN, RU, RY, SA, SG, SK, SN, SRS, SRT, SRU, SRV, SRW, SRX, SRY, SRZ, SS, SSA, SSB, SSC, SSD, SSE, SSF, SSG, SSH, SSI, SSJ, SSK, SSL, SSM, SSN, SSO, SSP, SSQ, SSR, SSS, SST, SSU, SSV, SSW, SSX, SSY, SSZ, ST, STA, STB, STC, STD, STE, STF, STG, STH, STI, STJ, STK, STL, STM, STN, STO, STP, STQ, STR, STS, STT, STU, STV, STW, STX, STY, STZ, SUA, SUB, SUC, SUD, SUE, SUF, SUG, SUH, SUI, SUJ, SUK, SUL, SUM, TG, TSN, TSO, TSP, TSQ, TSR, TSS, TST, TSU, UA, UP, VN, VP, VS, VX, ZZZ, PPI
schemeVersionstring | nullNo
valuestringYesThe value of the item classification code. Example: "123456"

lines.additionalItemProperties properties

NameTypeRequiredDescription
namestringYesExample: "Color"
valuestringYesExample: "Red"

lines.discounts properties

NameTypeRequiredDescription
reasonCodestring | nullNoThe reason code for the discount. This must be one of the codes in the UNCL5189 subset code list. For example, 95 for regular discounts. Either reason or reasonCode must be provided. Example: "95"
reasonstring | nullNoThe reason for the discount. This is a free text field. Either reason or reasonCode must be provided. Example: "Discount"
amountstringYesDecimal number as a string with 2 decimal places. Example: "21.00"

lines.surcharges properties

NameTypeRequiredDescription
reasonCodestring | nullNoThe reason code for the surcharge. This must be one of the codes in the UNCL7161 subset code list. For example, FC for freight services. Either reason or reasonCode must be provided. Example: "FC"
reasonstring | nullNoThe reason for the surcharge. This is a free text field. Either reason or reasonCode must be provided. Example: "Freight services"
amountstringYesDecimal number as a string with 2 decimal places. Example: "21.00"

lines.vat properties

NameTypeRequiredDescription
categoryobjectNoDefault: S
percentagestringYesThe VAT rate as a percentage, for example 21.00. Example: "21.00"

discounts properties

NameTypeRequiredDescription
reasonCodestring | nullNoThe reason code for the discount. This must be one of the codes in the UNCL5189 subset code list. For example, 95 for regular discounts. Either reason or reasonCode must be provided. Example: "95"
reasonstring | nullNoThe reason for the discount. This is a free text field. Either reason or reasonCode must be provided. Example: "Discount"
amountstringYesDecimal number as a string with 2 decimal places. Example: "21.00"
vatobjectYes

discounts.vat properties

NameTypeRequiredDescription
categoryobjectNoDefault: S
percentagestringYesThe VAT rate as a percentage, for example 21.00. Example: "21.00"

surcharges properties

NameTypeRequiredDescription
reasonCodestring | nullNoThe reason code for the surcharge. This must be one of the codes in the UNCL7161 subset code list. For example, FC for freight services. Either reason or reasonCode must be provided. Example: "FC"
reasonstring | nullNoThe reason for the surcharge. This is a free text field. Either reason or reasonCode must be provided. Example: "Freight services"
amountstringYesDecimal number as a string with 2 decimal places. Example: "21.00"
vatobjectYes

surcharges.vat properties

NameTypeRequiredDescription
categoryobjectNoDefault: S
percentagestringYesThe VAT rate as a percentage, for example 21.00. Example: "21.00"

totals (One of)

Totals:

If not provided, the totals will be calculated from the document lines.

NameTypeRequiredDescription
linesAmountstring | nullNoThe tax exclusive total amount of all lines. Rounded to 2 decimal places. Example: "21.00"
discountAmountstring | nullNoThe tax exclusive total amount of all discounts. If not provided, this will be calculated automatically. Example: "21.00"
surchargeAmountstring | nullNoThe tax exclusive total amount of all surcharges. If not provided, this will be calculated automatically. Example: "21.00"
taxExclusiveAmountstringYesThe tax exclusive total amount of all lines, discounts and surcharges. Rounded to 2 decimal places. Example: "21.00"
taxInclusiveAmountstringYesThe tax inclusive total amount of all lines, discounts and surcharges. Rounded to 2 decimal places. Example: "21.00"
payableAmountstring | nullNoThe amount to be paid. If not provided, this will be taxInclusiveAmount. Can be used in combination with paidAmount to indicate partial payment or payment rounding. Rounded to 2 decimal places. Example: "21.00"
paidAmountstring | nullNoThe amount paid. If not provided, this will be taxInclusiveAmount - payableAmount. Can be used in combination with payableAmount to indicate partial payment or payment rounding. Rounded to 2 decimal places. Example: "21.00"

vat (Any of)

Provided VAT totals:

NameTypeRequiredDescription
totalVatAmountstringYesThe total VAT amount of the document, the sum of the VAT amounts of all subtotals. Example: "21.00"
subtotalsobject[]YesOne entry for every combination of VAT category and rate used in the document

vat.subtotals properties

NameTypeRequiredDescription
taxableAmountstringYesThe total amount in this VAT category and rate that the VAT is calculated on. Example: "21.00"
vatAmountstringYesThe VAT amount for this VAT category and rate. Example: "21.00"
categoryAE | E | S | Z | G | O | K | L | M | BYesVAT category code. All codes can be found here. When sending regular invoices, you should most often use the S category. When sending an invoice to another EU country, use the AE category for VAT Reverse Charge. In those cases, it is still recommended to include a note in the invoice explaining that the VAT Reverse Charge applies. Example: "S". Values: AE, E, S, Z, G, O, K, L, M, B
percentagestringYesThe VAT rate as a percentage, for example 21.00. Example: "21.00"
exemptionReasonCodestring | nullNoIf the invoice is exempt from VAT, this (or exemptionReason) is required. The exemption reason code identifier must belong to the CEF VATEX code list found here
exemptionReasonstring | nullNoIf the invoice is exempt from VAT, this (or exemptionReasonCode) is required. The exemption reason must be a textual statement of the reason why the amount is exempt from VAT or why no VAT is charged

VAT totals auto calculation:

Recommand will automatically calculate the VAT totals based on the document lines. For invoices that are exempt from VAT, you can provide the exemption reason or reason code here to inform the recipient of the reason why the amount is exempt from VAT.

NameTypeRequiredDescription
exemptionReasonCodestring | nullNoIf the invoice is exempt from VAT, this (or exemptionReason) is required. The exemption reason code identifier must belong to the CEF VATEX code list found here
exemptionReasonstring | nullNoIf the invoice is exempt from VAT, this (or exemptionReasonCode) is required. The exemption reason must be a textual statement of the reason why the amount is exempt from VAT or why no VAT is charged

attachments properties

NameTypeRequiredDescription
idstringYesAn identifier for the attachment within the document. Example: "ATT-001"
mimeCodestringNoMIME type of the document (e.g. application/pdf, text/csv, image/png). Default: application/pdf. Example: "application/pdf"
filenamestringYesFilename for an embedded attachment. This is included in the Peppol XML only when embeddedDocument is provided. For URL-only attachments, the document contains an external reference and the filename is not embedded. Example: "contract.pdf"
descriptionstring | nullNoA short description of what the attachment contains. Example: "Signed contract"
embeddedDocumentstring | nullNoThe contents of the attachment, base64 encoded. Provide this or url
urlstring | nullNoA link to the attachment, for when the contents are not embedded. Provide this or embeddedDocument. Example: "https://example.com/contract.pdf"

countrySpecific (One of)

Used by