# Transaction lines

Source: https://developer.avalara.com/vat-erp/transactions/transaction-lines/

To accurately calculate tax, you must provide details about what is being sold. There are various options that you can provide (refer to the [LineItemModel API](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)), but at minimum we require you to send the fields below on a single line item.

-   `number`: AvaTax automatically numbers lines on your invoice starting with 1. If you prefer to use your own line numbers, specify them in this value.

-   `quantity`: This specifies the quantity of goods or services being sold. This value doesn't affect any totals; to determine the price-per-each, divide the `amount` value by the `quantity` value. If you don't provide a `quantity`, AvaTax assumes a value of `1`. Although this field is optional, keep in mind that some taxes are affected by dollar-amount thresholds and caps per item. AvaTax uses the `quantity` and `amount` values to calculate this correctly. We strongly recommend providing the correct `quantity` for each line. In addition, the `quantity` must be a positive value.

-   `amount`: This specifies the total price of goods or services for this line item. This is the total, fully extended value. For example, if you specify a `quantity` of 2 and an `amount` of 10 on a sales document, this means that you sold two $5 items for a total price of $10. The `amount` can be a positive value for sales transactions or a negative value for refund transactions. The `amount` can also be 0.

-   `taxCode`: This specifies the type of good or service that being sold. If you omit a `taxCode` value, AvaTax defaults to treating the item as taxable Tangible Personal Property using the tax code `P0000000`.

-   `addresses`: Each invoice line can have its own custom addresses. If we make one sale that includes multiple separate shipments, we attach the correct address to each line. If the `addresses` field on a line is null or missing, the line will be assumed to use the `addresses` from the document level; but if the value is non-null, the line will have its own custom `addresses` and won't inherit any `addresses` from the document level.