-
Notifications
You must be signed in to change notification settings - Fork 37
Class ZugferdQuickDescriptor
Class representing the base class of all document descriptors.
Creating them in a simple and common way in EN16931 profile
This class is slightly inspired by the invoicedescriptor of the
https://github.com/stephanstapel/ZUGFeRD-csharp project
This class contains only basic functionality
Creates a new ZugferdDocumentBuilder with profile EN16931
public static function doCreateNew(): \ZugferdQuickDescriptor
{
}
Returns a value of type \ZugferdQuickDescriptor
Create a new invoice
public function doCreateInvoice(
string $invoiceNo,
DateTime $invoiceDate,
string $currency,
?string $invoiceNoReference = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
invoiceNo | string | ❌ | BT-1, From MINIMUM The document no issued by the seller |
invoiceDate | DateTime | ❌ | BT-2, From MINIMUM Date of invoice. The date when the document was issued by the seller |
currency | string | ❌ | BT-5, From MINIMUM Code for the invoice currency |
invoiceNoReference | string | ✔️ | BT-83, From BASIC WL Intended use for payment |
Returns a value of type \ZugferdQuickDescriptor
Create a new credit memo
public function doCreateCreditMemo(
string $creditMemoNo,
DateTime $invoiceDate,
string $currency,
string $creditMemoNoReference = '',
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
creditMemoNo | string | ❌ | BT-1, From MINIMUM The document no issued by the seller |
invoiceDate | DateTime | ❌ | BT-2, From MINIMUM Date of invoice. The date when the document was issued by the seller |
currency | string | ❌ | BT-5, From MINIMUM Code for the invoice currency |
creditMemoNoReference | string | ❌ | BT-83, From BASIC WL Intended use for refund. If null the number of the credit memo is used |
Returns a value of type \ZugferdQuickDescriptor
Add a payment term
public function doSetPaymentTerms(string $description, ?DateTime $dueDate = null): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
description | string | ❌ | _BT-20, From BASIC WL A text description of the payment terms that apply to the payment amount due (including a description of possible penalties). Note: This element can contain multiple lines and multiple conditions. |
dueDate | DateTime | ✔️ | BT-9, From BASIC WL The date by which payment is due Note: The payment due date reflects the net payment due date. In the case of partial payments, this indicates the first due date of a net payment. The corresponding description of more complex payment terms can be given in BT-20. |
Returns a value of type \ZugferdQuickDescriptor
Set payment means to "direct debit"
If $isSEPA is true code 31 wil be useed for payment means code.
If $isSEPA is false code 59 wil be useed for payment means code.
public function doSetPaymentMeansForDebitTransfer(bool $isSEPA, string $buyerIban): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
isSEPA | bool | ❌ | BT-81, From BASIC WL The expected or used means of payment, expressed as a code. The entries from the UNTDID 4461 code list must be used. A distinction should be made between SEPA and non-SEPA payments as well as between credit payments, direct debits, card payments and other means of payment In particular, the following codes can be used: |
buyerIban | string | ❌ | BT-91, From BASIC WL The account to be debited by the direct debit |
Returns a value of type \ZugferdQuickDescriptor
Set payment means to "credit transfer"
If $isSEPA is true code 58 wil be useed for payment means code.
If $isSEPA is false code 30 wil be useed for payment means code.
public function doSetPaymentMeansForCreditTransfer(
bool $isSEPA,
string $payeeIban,
?string $payeeAccountName = null,
?string $payeePropId = null,
?string $payeeBic = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
isSEPA | bool | ❌ | BT-81, From BASIC WL The expected or used means of payment, expressed as a code. The entries from the UNTDID 4461 code list must be used. A distinction should be made between SEPA and non-SEPA payments as well as between credit payments, direct debits, card payments and other means of payment In particular, the following codes can be used: |
payeeIban | string | ❌ | BT-84, From BASIC WL A unique identifier for the financial account held with a payment service provider to which the payment should be made |
payeeAccountName | string | ✔️ | BT-85, From BASIC WL The name of the payment account held with a payment service provider to which the payment should be made |
payeePropId | string | ✔️ | BT-BT-84-0, From BASIC WL National account number (not for SEPA) |
payeeBic | string | ✔️ | BT-86, From EN 16931 An identifier for the payment service provider with which the payment account is held |
Returns a value of type \ZugferdQuickDescriptor
Set payment means to "Bank Card"
public function doSetPaymentMeansForBankCard(
string $cardType,
string $cardId,
string $cardHolderName,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
cardType | string | ❌ | The type of the card |
cardId | string | ❌ | BT-87, From EN 16931 The primary account number (PAN) to which the card used for payment belongs. In accordance with card payment security standards, an invoice should never contain a full payment card master account number. The following specification of the PCI Security Standards Council currently applies: The first 6 and last 4 digits at most are to be displayed |
cardHolderName | string | ❌ | BT-88, From EN 16931 Name of the payment card holder |
Returns a value of type \ZugferdQuickDescriptor
Set payment means to "Credit Card"
public function doSetPaymentMeansForCreditCard(
string $cardType,
string $cardId,
string $cardHolderName,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
cardType | string | ❌ | The type of the card |
cardId | string | ❌ | BT-87, From EN 16931 The primary account number (PAN) to which the card used for payment belongs. In accordance with card payment security standards, an invoice should never contain a full payment card master account number. The following specification of the PCI Security Standards Council currently applies: The first 6 and last 4 digits at most are to be displayed |
cardHolderName | string | ❌ | BT-88, From EN 16931 Name of the payment card holder |
Returns a value of type \ZugferdQuickDescriptor
Set payment means to "Debit Card"
public function doSetPaymentMeansForDebitCard(
string $cardType,
string $cardId,
string $cardHolderName,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
cardType | string | ❌ | The type of the card |
cardId | string | ❌ | BT-87, From EN 16931 The primary account number (PAN) to which the card used for payment belongs. In accordance with card payment security standards, an invoice should never contain a full payment card master account number. The following specification of the PCI Security Standards Council currently applies: The first 6 and last 4 digits at most are to be displayed |
cardHolderName | string | ❌ | BT-88, From EN 16931 Name of the payment card holder |
Returns a value of type \ZugferdQuickDescriptor
Add note to the document
public function doAddNote(
string $note,
?string $subjectCode = null,
?string $contentCode = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
note | string | ❌ | BT-22, From BASIC WL A free text containing unstructured information that is relevant to the invoice as a whole |
subjectCode | string | ✔️ | BT-21, From BASIC WL The qualification of the free text for the invoice from BT-22 |
contentCode | string | ✔️ | BT-X-5, From EXTENDED A code to classify the content of the free text of the invoice |
Returns a value of type \ZugferdQuickDescriptor
Set details of the related buyer order
public function doSetBuyerOrderReferenceDocument(string $orderNo, DateTime $orderDate): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
orderNo | string | ❌ | BT-13, From MINIMUM An identifier issued by the buyer for a referenced order (order number) |
orderDate | DateTime | ❌ | BT-X-147, From EXTENDED Date of order |
Returns a value of type \ZugferdQuickDescriptor
Set information about billing documents that provide evidence of claims made in the bill
Notes
- The documents justifying the invoice can be used to reference a document number, which should be
known to the recipient, as well as an external document (referenced by a URL) or an embedded document (such
as a timesheet as a PDF file). The option of linking to an external document is e.g. required when it comes
to large attachments and / or sensitive information, e.g. for personal services, which must be separated
from the bill
public function doAddAdditionalReferencedDocument(
string $issuerAssignedID,
?DateTime $issueDateTime = null,
?string $typeCode = null,
?string $name = null,
?string $referenceTypeCode = null,
?string $filename = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
issuerAssignedID | string | ❌ | BT-122, From EN 16931 The identifier of the tender or lot to which the invoice relates, or an identifier specified by the seller for an object on which the invoice is based, or an identifier of the document on which the invoice is based. |
issueDateTime | DateTime | ✔️ | BT-X-149, From EXTENDED Document date |
typeCode | string | ✔️ |
BT-122-0, From EN 16931 Type of referenced document (See codelist UNTDID 1001) - Code 916 "reference paper" is used to reference the identification of the document on which the invoice is based - Code 50 "Price / sales catalog response" is used to reference the tender or the lot - Code 130 "invoice data sheet" is used to reference an identifier for an object specified by the seller. |
name | string | ✔️ | BT-123, From EN 16931 A description of the document, e.g. Hourly billing, usage or consumption report, etc. |
referenceTypeCode | string | ✔️ | The identifier for the identification scheme of the identifier of the item invoiced. If it is not clear to the recipient which scheme is used for the identifier, an identifier of the scheme should be used, which must be selected from UNTDID 1153 in accordance with the code list entries. |
filename | string | ✔️ | BT-125, From EN 16931 Contains a file name of an attachment document embedded as a binary object |
Returns a value of type \ZugferdQuickDescriptor
Set detailed information on the associated delivery note
public function doSetDeliveryNoteReferenceDocument(
string $deliveryNoteNo,
DateTime $deliveryNoteDate,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
deliveryNoteNo | string | ❌ | BT-X-202, From EXTENDED Delivery slip number |
deliveryNoteDate | DateTime | ❌ | BT-X-203, From EXTENDED Delivery slip date |
Returns a value of type \ZugferdQuickDescriptor
Set a Reference to the previous invoice
Note: To be used if:
- a previous invoice is corrected
- reference is made to previous partial invoices from a final invoice
- Reference is made to previous invoices for advance payments from a final invoice
public function doSetInvoiceReferencedDocument(string $id, ?DateTime $issueDateTime = null): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
id | string | ❌ | BT-25, From BASIC WL The identification of an invoice previously sent by the seller |
issueDateTime | DateTime | ✔️ | BT-26, From BASIC WL Date of the previous invoice |
Returns a value of type \ZugferdQuickDescriptor
Set Details of a project reference
public function doSetSpecifiedProcuringProject(string $id, string $name): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
id | string | ❌ | BT-11, From EN 16931 The identifier of the project to which the invoice relates |
name | string | ❌ | BT-11-0, From EN 16931 The name of the project to which the invoice relates |
Returns a value of type \ZugferdQuickDescriptor
Set detailed information on the actual delivery
public function doSetSupplyChainEvent(?DateTime $date): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
date | DateTime | ✔️ | BT-72, From BASIC WL Actual delivery time |
Returns a value of type \ZugferdQuickDescriptor
Detailed information about the buyer (service recipient)
public function doSetBuyer(
string $name,
string $postcode,
string $city,
string $street,
string $country,
?string $buyerReference = null,
?string $id = null,
?string $globalID = null,
?string $globalIDscheme = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
name | string | ❌ | BT-44, From MINIMUM The full name of the buyer |
postcode | string | ❌ | BT-53, From BASIC WL Identifier for a group of properties, such as a zip code |
city | string | ❌ | BT-52, From BASIC WL Usual name of the city or municipality in which the buyers address is located |
street | string | ❌ | BT-50, From BASIC WL The main line in the buyers address. This is usually the street name and house number or the post office box |
country | string | ❌ | BT-55, From BASIC WL Code used to identify the country. If no tax agent is specified, this is the country in which the sales tax is due. The lists of approved countries are maintained by the EN ISO 3166-1 Maintenance Agency “Codes for the representation of names of countries and their subdivisions” |
buyerReference | string | ✔️ | BT-10, From MINIMUM An identifier assigned by the buyer and used for internal routing |
id | string | ✔️ | BT-46, From BASIC WL An identifier of the buyer. In many systems, buyer identification is key information. Multiple buyer IDs can be assigned or specified. They can be differentiated by using different identification schemes. If no scheme is given, it should be known to the buyer and buyer, e.g. a previously exchanged, seller-assigned identifier of the buyer |
globalID | string | ✔️ | BT-46-0, From BASIC WL The buyers's identifier identification scheme is an identifier uniquely assigned to a buyer by a global registration organization. |
globalIDscheme | string | ✔️ | BT-46-1, From BASIC WL If the identifier is used for the identification scheme, it must be selected from the entries in the list published by the ISO / IEC 6523 Maintenance Agency. |
Returns a value of type \ZugferdQuickDescriptor
Set contact of the buyer party
public function doSetBuyerContact(
string $name,
?string $orgunit = null,
?string $emailAddress = null,
?string $phoneno = null,
?string $faxno = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
name | string | ❌ | BT-56, From EN 16931 Contact point for a legal entity, such as a personal name of the contact person |
orgunit | string | ✔️ | BT-56-0, From EN 16931 Contact point for a legal entity, such as a name of the department or office |
emailAddress | string | ✔️ | BT-58, From EN 16931 An e-mail address of the contact point |
phoneno | string | ✔️ | BT-57, From EN 16931 A telephone number for the contact point |
faxno | string | ✔️ | BT-X-115, From EXTENDED A fax number of the contact point |
Returns a value of type \ZugferdQuickDescriptor
Add detailed information on the buyers's tax information
The local identification (defined by the buyers's address) of the buyers for tax purposes or a reference that enables the buyers
to indicate his reporting status for tax purposes The sales tax identification number of the buyers
Note: This information may affect how the buyer the invoice settled (such as in relation to social security contributions). So
e.g. In some countries, if the buyers is not reported for tax, the buyer will withhold the tax amount and pay it on behalf of the
buyers. Sales tax number with a prefixed country code. A supplier registered as subject to VAT must provide his sales tax
identification number, unless he uses a tax agent.
public function doAddBuyerTaxRegistration(string $no, string $schemeID): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
no | string | ❌ | BT-48-0, From BASIC WL Type of tax number (FC = Tax number, VA = Sales tax identification number) |
schemeID | string | ❌ | BT-48, From BASIC WL Tax number or sales tax identification number |
Returns a value of type \ZugferdQuickDescriptor
Set Buyers electronic communication information
public function doSetBuyerElectronicCommunication(string $uri, string $uriScheme = 'EM'): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
uri | string | ❌ | BT-49, From BASIC WL Specifies the buyer's electronic address to which the invoice is sent |
uriScheme | string | ❌ | BT-49-1, From BASIC WL The identifier for the identification scheme of the buyer's electronic address (Default: EM) |
Returns a value of type \ZugferdQuickDescriptor
Detailed information about the seller (=service provider)
public function doSetSeller(
string $name,
string $postcode,
string $city,
string $street,
string $country,
?string $id = null,
?string $globalID = null,
?string $globalIDscheme = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
name | string | ❌ | BT-27, From MINIMUM The full formal name under which the seller is registered in the National Register of Legal Entities, Taxable Person or otherwise acting as person(s) |
postcode | string | ❌ | BT-38, From BASIC WL Identifier for a group of properties, such as a zip code |
city | string | ❌ | BT-37, From BASIC WL Usual name of the city or municipality in which the seller's address is located |
street | string | ❌ | BT-35, From BASIC WL The main line in the sellers address. This is usually the street name and house number or the post office box |
country | string | ❌ | BT-40, From MINIMUM Code used to identify the country. If no tax agent is specified, this is the country in which the sales tax is due. The lists of approved countries are maintained by the EN ISO 3166-1 Maintenance Agency “Codes for the representation of names of countries and their subdivisions” |
id | string | ✔️ | BT-29, From BASIC WL An identifier of the seller. In many systems, seller identification is key information. Multiple seller IDs can be assigned or specified. They can be differentiated by using different identification schemes. If no scheme is given, it should be known to the buyer and seller, e.g. a previously exchanged, buyer-assigned identifier of the seller |
globalID | string | ✔️ | BT-29/BT-29-0, From BASIC WL The seller's identifier identification scheme is an identifier uniquely assigned to a seller by a global registration organization. |
globalIDscheme | string | ✔️ | BT-29-1, From BASIC WL If the identifier is used for the identification scheme, it must be selected from the entries in the list published by the ISO / IEC 6523 Maintenance Agency. |
Returns a value of type \ZugferdQuickDescriptor
Set contact of the seller party
public function doSetSellerContact(
string $name,
?string $orgunit = null,
?string $emailAddress = null,
?string $phoneno = null,
?string $faxno = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
name | string | ❌ | BT-41, From EN 16931 Such as personal name, name of contact person or department or office |
orgunit | string | ✔️ | BT-41-0, From EN 16931 If a contact person is specified, either the name or the department must be transmitted. |
emailAddress | string | ✔️ | BT-43, From EN 16931 An e-mail address of the contact point |
phoneno | string | ✔️ | BT-42, From EN 16931 A telephone number for the contact point |
faxno | string | ✔️ | BT-X-107, From EXTENDED A fax number of the contact point |
Returns a value of type \ZugferdQuickDescriptor
Add detailed information on the seller's tax information
The local identification (defined by the seller's address) of the seller for tax purposes or a reference that enables the seller
to indicate his reporting status for tax purposes The sales tax identification number of the seller
Note: This information may affect how the buyer the invoice settled (such as in relation to social security contributions). So
e.g. In some countries, if the seller is not reported for tax, the buyer will withhold the tax amount and pay it on behalf of the
seller. Sales tax number with a prefixed country code. A supplier registered as subject to VAT must provide his sales tax
identification number, unless he uses a tax agent.
public function doAddSellerTaxRegistration(string $no, string $schemeID): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
no | string | ❌ | BT-31/32, From MINIMUM/EN 16931 Tax number of the seller or sales tax identification number of the seller |
schemeID | string | ❌ | BT-31-0/BT-32-0, From MINIMUM/EN 16931 Type of tax number of the seller (FC = Tax number, VA = Sales tax identification number) |
Returns a value of type \ZugferdQuickDescriptor
Set Sellers electronic communication information
public function doSetSellerElectronicCommunication(string $uri, string $uriScheme = 'EM'): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
uri | string | ❌ | BT-34, From BASIC WL Specifies the electronic address of the seller to which the response to the invoice can be sent at application level |
uriScheme | string | ❌ | BT-34-1, From BASIC WL The identifier for the identification scheme of the seller's electronic address (Default: EM) |
Returns a value of type \ZugferdQuickDescriptor
Caution
Deprecated 1.0.75
Add a new text position
public function doAddTradeLineCommentItem(string $lineId, string $comment): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
lineId | string | ❌ | BT-126, From BASIC Identification of the invoice item |
comment | string | ❌ | BT-127, From BASIC A free text that contains unstructured information that is relevant to the invoice item |
Returns a value of type \ZugferdQuickDescriptor
Adds a new position (line) to document
public function doAddTradeLineItem(
string $lineId,
string $productName,
float $unitPrice,
float $quantity,
string $unitCode,
float $allowanceChargeAmount,
string $allowanceChargeReason,
string $taxCategoryCode,
string $taxTypeCode,
float $taxPercent,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
lineId | string | ❌ | BT-126, From BASIC Identification of the invoice item |
productName | string | ❌ | BT-153, From BASIC A name of the item (item name) |
unitPrice | float | ❌ | BT-146, From BASIC Net price of the item |
quantity | float | ❌ | BT-129, From BASIC The quantity of individual items (goods or services) billed in the relevant line |
unitCode | string | ❌ | BT-130, From BASIC The unit of measure applicable to the amount billed |
allowanceChargeAmount | float | ❌ | BT-136/BT-141, From BASIC The surcharge/discount amount excluding sales tax |
allowanceChargeReason | string | ❌ | BT-139/BT-144, From BASIC The reason given in text form for the invoice item discount/surcharge |
taxCategoryCode | string | ❌ | BT-151, From BASIC Coded description of a sales tax category |
taxTypeCode | string | ❌ | BT-151-0, From BASIC In EN 16931 only the tax type “sales tax” with the code “VAT” is supported. Should other types of tax be specified, such as an insurance tax or a mineral oil tax the EXTENDED profile must be used. The code for the tax type must then be taken from the code list UNTDID 5153. |
taxPercent | float | ❌ | BT-152, From BASIC The VAT rate applicable to the item invoiced and expressed as a percentage. Note: The code of the sales tax category and the category-specific sales tax rate must correspond to one another. The value to be given is the percentage. For example, the value 20 is given for 20% (and not 0.2) |
Returns a value of type \ZugferdQuickDescriptor
Add detailed information on the free text on the position
public function doSetDocumentPositionNote(string $content): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
content | string | ❌ | BT-127, From BASIC A free text that contains unstructured information that is relevant to the invoice item |
Returns a value of type \ZugferdQuickDescriptor
Adds a new position (line) to document with a surcharge amount
public function doAddTradeLineItemWithSurcharge(
string $lineId,
string $productName,
float $unitPrice,
float $chargeAmount,
string $chargeReason,
float $quantity,
string $unitCode,
string $taxCategoryCode,
string $taxTypeCode,
float $taxPercent,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
lineId | string | ❌ | BT-126, From BASIC Identification of the invoice item |
productName | string | ❌ | BT-153, From BASIC A name of the item (item name) |
unitPrice | float | ❌ | BT-146, From BASIC Net price of the item |
chargeAmount | float | ❌ | BT-136/BT-141, From BASIC The surcharge amount excluding sales tax |
chargeReason | string | ❌ | BT-139/BT-144, From BASIC The reason given in text form for the invoice item surcharge |
quantity | float | ❌ | BT-129, From BASIC The quantity of individual items (goods or services) billed in the relevant line |
unitCode | string | ❌ | BT-130, From BASIC The unit of measure applicable to the amount billed |
taxCategoryCode | string | ❌ | BT-151, From BASIC Coded description of a sales tax category |
taxTypeCode | string | ❌ | BT-151-0, From BASIC In EN 16931 only the tax type “sales tax” with the code “VAT” is supported. Should other types of tax be specified, such as an insurance tax or a mineral oil tax the EXTENDED profile must be used. The code for the tax type must then be taken from the code list UNTDID 5153. |
taxPercent | float | ❌ | BT-152, From BASIC The VAT rate applicable to the item invoiced and expressed as a percentage. Note: The code of the sales tax category and the category-specific sales tax rate must correspond to one another. The value to be given is the percentage. For example, the value 20 is given for 20% (and not 0.2) |
Returns a value of type \ZugferdQuickDescriptor
Adds a new position (line) to document with a discount amount
public function doAddTradeLineItemWithDiscount(
string $lineId,
string $productName,
float $unitPrice,
float $discountAmount,
string $discountReason,
float $quantity,
string $unitCode,
string $taxCategoryCode,
string $taxTypeCode,
float $taxPercent,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
lineId | string | ❌ | BT-126, From BASIC Identification of the invoice item |
productName | string | ❌ | BT-153, From BASIC A name of the item (item name) |
unitPrice | float | ❌ | BT-146, From BASIC Net price of the item |
discountAmount | float | ❌ | BT-136/BT-141, From BASIC The discount amount excluding sales tax |
discountReason | string | ❌ | BT-139/BT-144, From BASIC The reason given in text form for the invoice item discount |
quantity | float | ❌ | BT-129, From BASIC The quantity of individual items (goods or services) billed in the relevant line |
unitCode | string | ❌ | BT-130, From BASIC The unit of measure applicable to the amount billed |
taxCategoryCode | string | ❌ | BT-151, From BASIC Coded description of a sales tax category |
taxTypeCode | string | ❌ | BT-151-0, From BASIC In EN 16931 only the tax type “sales tax” with the code “VAT” is supported. Should other types of tax be specified, such as an insurance tax or a mineral oil tax the EXTENDED profile must be used. The code for the tax type must then be taken from the code list UNTDID 5153. |
taxPercent | float | ❌ | BT-152, From BASIC The VAT rate applicable to the item invoiced and expressed as a percentage. Note: The code of the sales tax category and the category-specific sales tax rate must correspond to one another. The value to be given is the percentage. For example, the value 20 is given for 20% (and not 0.2) |
Returns a value of type \ZugferdQuickDescriptor
Add a logistical service fees (On document level)
public function doAddLogisticsServiceCharge(
float $amount,
string $description,
string $taxTypeCode,
string $taxCategoryCode,
float $taxPercent,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
amount | float | ❌ | BT-X-272, From EXTENDED Amount of the service fee |
description | string | ❌ | BT-X-271, From EXTENDED Identification of the service fee |
taxTypeCode | string | ❌ | BT-X-273-0, From EXTENDED Code of the Tax type. Note: Fixed value = "VAT" |
taxCategoryCode | string | ❌ | BT-X-273, From EXTENDED Code of the VAT category |
taxPercent | float | ❌ | BT-X-274, From EXTENDED The sales tax rate, expressed as the percentage applicable to the sales tax category in question. Note: The code of the sales tax category and the category-specific sales tax rate must correspond to one another. The value to be given is the percentage. For example, the value 20 is given for 20% (and not 0.2) |
Returns a value of type \ZugferdQuickDescriptor
Add information about surcharges and charges applicable to the bill as a whole, Deductions,
such as for withheld taxes may also be specified in this group
public function doAddTradeAllowanceCharge(
float $actualAmount,
string $reason,
string $taxCategoryCode,
string $taxTypeCode,
float $taxPercent,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
actualAmount | float | ❌ | BT-92/BT-99, From BASIC WL Amount of the surcharge or discount at document level |
reason | string | ❌ | BT-97/BT-104, From BASIC WL The reason given in text form for the surcharge or discount at document level |
taxCategoryCode | string | ❌ | BT-95/BT-102, From BASIC WL A coded indication of which sales tax category applies to the surcharge or deduction at document level |
taxTypeCode | string | ❌ | BT-95-0/BT-102-0, From BASIC WL Code for the VAT category of the surcharge or charge at document level. Note: Fixed value = "VAT" |
taxPercent | float | ❌ | BT-96/BT-103, From BASIC WL VAT rate for the surcharge or discount on document level. Note: The code of the sales tax category and the category-specific sales tax rate must correspond to one another. The value to be given is the percentage. For example, the value 20 is given for 20% (and not 0.2) |
Returns a value of type \ZugferdQuickDescriptor
Add a VAT breakdown (at document level)
public function doAddApplicableTradeTax(
float $basisAmount,
float $percent,
string $categoryCode,
?string $typeCode = null,
?float $allowanceChargeBasisAmount = null,
?string $exemptionReasonCode = null,
?string $exemptionReason = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
basisAmount | float | ❌ | BT-116, From BASIC WL Tax base amount, Each sales tax breakdown must show a category-specific tax base amount. |
percent | float | ❌ | BT-119, From BASIC WL The sales tax rate, expressed as the percentage applicable to the sales tax category in question. Note: The code of the sales tax category and the category-specific sales tax rate must correspond to one another. The value to be given is the percentage. For example, the value 20 is given for 20% (and not 0.2) |
categoryCode | string | ❌ | BT-118, From BASIC WL Coded description of a sales tax category |
typeCode | string | ✔️ | BT-118-0, From BASIC WL Coded description of a sales tax category. Note: Fixed value = "VAT" |
allowanceChargeBasisAmount | float | ✔️ | BT-X-263, From EXTENDED Total amount Additions and deductions to the tax rate at document level |
exemptionReasonCode | string | ✔️ | BT-121, From BASIC WL Reason given in code form for the exemption of the amount from VAT. Note: Code list issued and maintained by the Connecting Europe Facility. |
exemptionReason | string | ✔️ | BT-120, From BASIC WL Reason for tax exemption (free text) |
Returns a value of type \ZugferdQuickDescriptor
Add a VAT breakdown (at document level)
public function doAddApplicableTradeTax2(
float $basisAmount,
float $calculatedAmount,
string $categoryCode,
?string $typeCode = null,
?float $allowanceChargeBasisAmount = null,
?string $exemptionReasonCode = null,
?string $exemptionReason = null,
): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
basisAmount | float | ❌ | BT-116, From BASIC WL Tax base amount, Each sales tax breakdown must show a category-specific tax base amount. |
calculatedAmount | float | ❌ | BT-117, From BASIC WL The total amount to be paid for the relevant VAT category. Note: Calculated by multiplying the amount to be taxed according to the sales tax category by the sales tax rate applicable for the sales tax category concerned |
categoryCode | string | ❌ | BT-118, From BASIC WL Coded description of a sales tax category |
typeCode | string | ✔️ | BT-118-0, From BASIC WL Coded description of a sales tax category. Note: Fixed value = "VAT" |
allowanceChargeBasisAmount | float | ✔️ | BT-X-263, From EXTENDED Total amount Additions and deductions to the tax rate at document level |
exemptionReasonCode | string | ✔️ | BT-121, From BASIC WL Reason given in code form for the exemption of the amount from VAT. Note: Code list issued and maintained by the Connecting Europe Facility. |
exemptionReason | string | ✔️ | BT-120, From BASIC WL Reason for tax exemption (free text) |
Returns a value of type \ZugferdQuickDescriptor
Sets the prepaid amount
public function doSetPrepaidAmount(float $totalPrepaidAmount = 0.0): \ZugferdQuickDescriptor
{
}
Name | Type | Allows Null | Description |
---|---|---|---|
totalPrepaidAmount | float | ❌ | BT-113, From BASIC WL Prepayment amount |
Returns a value of type \ZugferdQuickDescriptor