> ## Documentation Index
> Fetch the complete documentation index at: https://developer.jtl-software.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SalesInvoice

> A sales invoice: the bill for the goods and services of one or more sales orders. A draft has no number and can be edited; a finalized invoice is binding and is changed only by cancelling it or by a correction. Line items are read with "QuerySalesInvoiceLineItemsBySalesInvoiceId". Payment state and amounts are read with "GetSalesInvoicePaymentBalance".



**Kind**: `object`

## Fields

**`id`**: `ID!`

The ID of the sales invoice.

---

**`number`**: `String`

The invoice number. Absent for a draft.

---

**`status`**: `SalesInvoiceStatus!`

Where the invoice stands: DRAFT, FINALIZED or CANCELLED.

---

**`isExternal`**: `Boolean!`

Whether the invoice was created outside the ERP and only recorded here.

---

**`invoiceDate`**: `DateTime!`

The invoice date.

---

**`valueDate`**: `DateTime!`

The date from which the payment term runs.

---

**`serviceDateFrom`**: `DateTime`

The start of the delivery or service period.

---

**`serviceDateTo`**: `DateTime`

The end of the delivery or service period.

---

**`createdAt`**: `DateTime!`

When the invoice was created.

---

**`createdBy`**: `ID`

The user who created the invoice.

---

**`createdByName`**: `String`

The name of the user who created the invoice.

---

**`companyId`**: `ID`

The company that issued the invoice.

---

**`companyName`**: `String`

The name of the company.

---

**`customerId`**: `ID`

The ID of the customer.

---

**`customerNumber`**: `String`

The customer number as recorded on the invoice.

---

**`customerGroupName`**: `String`

The name of the customer group as recorded on the invoice.

---

**`accountsReceivableNumber`**: `Int`

The accounts receivable number of the customer.

---

**`vatId`**: `String`

The VAT ID on the invoice.

---

**`salesChannelId`**: `ID!`

The sales channel the invoice belongs to. Tenant-local, composite identifier, not a UUID. Valid values are listed by the sales channel endpoint (GET).

---

**`salesChannelName`**: `String`

The name of the sales channel.

---

**`languageTag`**: `String`

The language of the invoice as BCP 47 language tag, for example de or de-AT: language subtag in lower case, region subtag in upper case. Wawi currently holds only the two-letter language subtag.

---

**`currencyCode`**: `String!`

The currency of the invoice as ISO 4217 code.

---

**`taxTreatment`**: `String!`

How the invoice is taxed, with the values of the tax treatment of the taxes API: TAXABLE, INTRA_COMMUNITY_DELIVERY, REVERSE_CHARGE or EXEMPT. New values can be added; treat an unknown value as unknown.

---

**`paymentMethodId`**: `ID`

The ID of the payment method.

---

**`paymentMethodName`**: `String`

The name of the payment method.

---

**`shippingMethodId`**: `ID`

The ID of the shipping method.

---

**`shippingMethodName`**: `String`

The name of the shipping method.

---

**`billingAddress`**: `SalesAddress!`

The billing address. A copy: changing the customer does not change it.

---

**`shipmentAddress`**: `SalesAddress!`

The address the goods are shipped to. A copy.

---

**`paymentTerms`**: `SalesInvoicePaymentTerms!`

The payment terms.

---

**`salesOrders`**: `[SalesInvoiceSalesOrderReference!]!`

The sales orders the invoice was created for.

---

**`externalSalesOrderNumber`**: `String`

The order number of the external system.

---

**`lastShippingDate`**: `DateTime`

The date of the last shipment of the goods.

---

**`note`**: `String`

An internal note on the invoice.

---

**`customerComment`**: `String`

A comment of the customer.

---

**`printText`**: `String`

A text printed on the invoice.

---

**`netTotal`**: `Decimal!`

The net total; never negated, so a normal invoice is not negative.

---

**`grossTotal`**: `Decimal!`

The gross total; never negated, so a normal invoice is not negative.

---

**`printedAt`**: `DateTime`

When the invoice was last printed.

---

**`mailedAt`**: `DateTime`

When the invoice was last sent by mail.

---

**`hasCorrection`**: `Boolean!`

Whether a correction of the invoice exists that is not cancelled.

---

**`correctionGrossTotal`**: `Decimal!`

The gross total of the corrections that are not cancelled.

---

**`isArchived`**: `Boolean!`

Whether the invoice is archived.

---

**`isDunningBlocked`**: `Boolean!`

Whether dunning is blocked for the invoice. It is changed with the dunning block of the invoice.

---

**`dunningLevel`**: `Int`

The current dunning level; absent when the invoice was not dunned.

---

**`dunnedAt`**: `DateTime`

When the invoice was last dunned.

---

**`salesInvoiceCancellationId`**: `ID`

The ID of the cancellation document. Only when the invoice is cancelled.

---

**`cancellationReasonId`**: `ID`

The ID of the cancellation reason, the same ID the cancel input takes; the reason is read by this ID from the cancellation reasons of sales invoices. Only when the invoice is cancelled; Wawi stores 0 when no reason was given, returned as null. The reason may have been deleted since (the cancellation keeps the ID), then the ID no longer resolves.

---

**`cancellationReason`**: `String`

The name of the cancellation reason. Only when the invoice is cancelled.

---

**`cancellationComment`**: `String`

The comment on the cancellation. Only when the invoice is cancelled.

---

**`cancelledBy`**: `ID`

The user who cancelled the invoice. Only when the invoice is cancelled.

---

**`cancelledByName`**: `String`

The name of the user who cancelled the invoice.

---

**`cancelledAt`**: `DateTime`

When the invoice was cancelled. Only when the invoice is cancelled.

