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

# TransactionItem Subobject

A line-item in a Transaction. Line items may be goods sold, sales tax, or other charges or credits. All line-items added together should add up to the total Transaction amount.

| Data Members | Data Type | Description |
| - | - | - |
| `autoBillItemVid` | string | Vindicia's unique identifier for the associated `AutoBillItem`. |
| `brTaxCategory` | string | The Brazilian tax category for this item. |
| `campaignCode` | string | Campaign code redeemed on this Transaction. To apply a Campaign, use this field to pass in a valid Coupon or Promotion code. **Note:** This data member will not be returned. |
| `campaignDescription` | string | Description for the Campaign used to discount this transaction, if any. |
| `campaignId` | string | **Read only**. The unique identifier for a Campaign applied to this Transaction. This is a read-only field returned by Subscribe for informational purposes. Values sent in with a SOAP call will be ignored. |
| `discount` | decimal | **Read only**. A field describing the discount amount on this transaction. |
| `indexNumber` | int | Unique index number for this item. Index numbers start at 1, not 0. |
| `itemRefunds` | `TransactionItem RefundSummary` | Contains a summary of `Refunds` against a `TransactionItem`. - `amount`—Full or partial amount of the refund. - `taxAmount`—Full or partial amount of tax refunded. - `taxOnly`—If set to `true`, Subscribe refunded only the tax portion of a TransactionItem. - `timestamp`—Timestamp when the refund was issued. - `refundID`—the `merchantRefundId` of the `Refund` object where the refund was issued. |
| `itemType` | `TransactionItem Type` | Contains one of the following values. If unspecified, the type will default to `Purchase`. - `Purchase` - `Credit` - `TaxableCredit` - `ModificationRefund` As of this release, passing in negative-amount Transaction items to affect an ad hoc custom discount is no longer supported. |
| `merchantAutoBillItemId` | string | Your identifier for the associated `AutoBillItem`. |
| `name` | string | A description of the item. For Subscribe-generated rebill transactions in which this `Transaction` item is derived from a `Product` or `BillingPlan` object used with an `AutoBill` object, this value maps to the `Product` or `BillingPlan` object’s `description` attribute. For `TransactionItems` which reflect Campaign discounts, this data member will be populated by Subscribe with the text "Discount for *description*," where *description* is the `description` data member for the `ProductDescription` subobject of the Product receiving the discount or the `BillingPlanDescription` data member of the Billing Plan receiving the discount. |
| `nameValues` | `NameValuePair` | **Optional**. An array of name‑value pairs the merchant wishes to associate with a Transaction item. `NameValues` associated with an AutoBill Item will automatically be populated on corresponding Transaction Items. See [The NameValuePair Object](The_NameValuePair_Object). |
| `price` | decimal | The item price, denominated by the currency data member of this `Transaction` object. `price` is omitted on rated items, because they do not have a fixed, per unit price but are dependent on the tier of the rate plan. |
| `quantity` | decimal | The number of items sold. If migrating `quantity` does not make sense, such as for a sales-tax line item, set `quantity` to `1`, not `0`. For rated items, this number can be a fraction. |
| `relatedTransactions` | string | List of `merchantTransactionIds` for all `Transactions` related to this item. If you have a credit resulting from the removal of an `AutoBillItem` or `BillingPlan`, `relatedTransactions` contains the list of all `Transactions` originally billed for the item within the timeframe covered by the credit. |
| `servicePeriodEndDate` | dateTime | The start date for the service provided by this `TransactionItem`. For standard AutoBills, these dates will coincide with the Billing Plan’s bill dates. For AutoBills which include Season Sets, or other variants, these dates might be the same for multiple Transactions. Blank indicates that the entitlement has no end date, and is valid forever, or that the Transaction resulted from a `Transaction.auth`, `capture`, or `migrate` call, in which case this value has no meaning. **Note:** Service period start and end dates may not coincide with Billing Dates. For example, with installment-like Billing Plans, the start and end dates of every transaction are the dates of the full installment period, regardless of when billing occurs. |
| `servicePeriod StartDate` | dateTime | The start date for the time period reflected by this `TransactionItem`. |
| `sku` | string | **Optional**. Your SKU or other tracking key for this item. For Subscribe-generated rebill transactions in which this transaction item is derived from a `Product` object used with an `AutoBill` object, this value maps to the `Product` object’s `merchantProductId` attribute. For `TransactionItems` which reflect Campaign discounts, this data member will be populated by Subscribe with the text "Discount formerchantProductId *merchantProductId*," where *merchantProductId* is the `merchantProductId` data member for the `Product` object receiving the discount. This data member will also be populated by Subscribe with the text "Discount for merchantBillingPlanId *merchantBillingPlanId*," where *merchantBillingPlanId* is the `merchantBillingPlanId` data member for the BillingPlan object receiving the discount. |
| `subtotal` | `decimal` | **Read only**.The subtotal of the values on the `TransactionItem`, excluding any discounts and taxes, if tax-exclusive. If tax is inclusive, for example a value-added tax (VAT), it will be included. |
| `tax` | `Tax()` | An array of `Tax` objects, which include the following data members: - `jurisdiction:`(string) the TransactionItem sku for the tax. - `name:`(string) the description for the tax. - `amount:`(decimal) the amount for the tax. - `externalTaxName:`The name for the tax or fee as provided by the tax service; corresponds to “Imposition” in Vertex and “TaxName” in Avatax. - `externalTaxCategory:`The category of tax or fee as provided by the tax service; corresponds to “ImpositionType” in Vertex and “TaxGroup” in Avatax. - `externalJurisdictionName:`The name of the tax jurisdiction for this tax or fee as provided by the tax service; corresponds to “Jurisdiction” in Vertex and “JurisName” in Avatax. - `taxRate:`The effective rate used to calculate this tax as provided by the tax service; corresponds to “EffectiveRate” in Vertex and “Rate” in Avatax. |
| `taxClassification` | string | A string that defines the tax classification for this `TransactionItem`. |
| `taxType` | string | This data member will be automatically populated by Subscribe with applied tax information for the `TransactionItem`. Possible values include `Inclusive Sales`, `Exclusive Sales`, `Inclusive Use`, and `Exclusive Use`. |
| `tokens` | `TokenAmount()` | An array of `TokenAmount` objects granted to the Account on this Transaction for purchasing this item (if Subscribe tokens are in use). Each object in the array specifies the quantity of a specific type of token. This is a read-only attribute when Subscribe returns the `TransactionItem` object to you in response to a call. See [Token Data Members](Token_Data_Members). |
| `total` | `decimal` | **Read only**.The total charge for the transaction, including discounts and taxes. Subscribe calculates `discount`, `subtotal`, and \`\`total. If you pass these in, they will be ignored. |
| **Parent topic:**[Transaction Subobjects](../topics/Transaction_Subobjects) | | |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.