> ## 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.

# Transaction Data Members

The following table lists and describes the data members of the `Transaction` object.

| Data Member | Data Type | Description |
| - | - | - |
| `account` | `Account` | The `Account` object that represents the customer to which this `Transaction` object applies. See [Account Data Members](Account_Data_Members). |
| `amount` | decimal | **Required.** The monetary amount for this `Transaction` object, that is, the total cost of one or more line items purchased. When you process the transaction through Subscribe by calling `auth` or `authCapture`, Subscribe fills in this attribute based on the total of the line items (see the `TransactionItem` attributes) added to the transaction. When reporting the transaction to Vindicia, ensure that the transaction amount matches the total of the line items. For Subscribe-generated Transactions, this field is generated automatically. |
| `autoBillCycle` | int | The AutoBill Billing Cycle during which this Transaction occurred. |
| `billingPlanCycle` | int | The zero-based number of times the AutoBill has been billed for the current Billing Plan. One-time transactions will have the same value as the most recent recurring billing event, as determined by the AutoBill and its BillingPlan. **Note:** This data member will increment for free cycles. |
| `billingStatement Identifier` | string | The string that is displayed on a customer’s billing statement. For one-time transactions, Subscribe supports this value for only certain payment processors. Because this value and its format are constrained by your payment processor, consult with Vindicia Client Services before setting its value. If GlobalCollect, MeS, Chase Paymentech or Litle is your payment processor, see Appendix A: Custom Billing Statement Identifier Requirements in the Subscribe Programming Guide. |
| `currency` | string | The ISO 4217 currency code (see [www.xe.com/iso4217.htm\\](http://www.xe.com/iso4217.htm\\)) for this `Transaction` object. The default is USD. To determine the actual monetary value, set the values for both `amount` and `currency`. |
| `destPaymentMethod` | `PaymentMethod` | The payment method for deposits to a customer account for this `Transaction` object. This field is used to make outbound ECP payments or transfers. See [PaymentMethod Data Members](PaymentMethod_Data_Membe). |
| `divisionNumber` | string | The number of your division or group with your payment processor for this Transaction. Chase Paymentech refers to this number as the Division Number; Litle calls it the Report Group; MeS calls it the Profile ID. Do not specify this attribute for one-time transactions. If you subscribe to ChargeGuard, complete this field when reporting transactions to Subscribe. Subscribe will use this value to match the Transaction to the appropriate chargeback from the payment processor. |
| `ecpTransactionType` | `ECPTransactionType` | The ECP transaction mode for the `Transaction` object, for example, `Inbound` or `Outbound`. If this value is `Outbound` or `Transfer`, you must set a value for `destPaymentMethod`. Specify this attribute for ECP-based transactions only. |
| `mandate` | `Mandate` | Mandate used to authorize this transaction. See the [Mandate Subobject](Mandate_Subobject) for details. |
| `merchantAffiliateId` | string | **Optional**. Your unique identifier for the partner or affiliate who directed this `Transaction` object to you. Track this information if, for example, you pay a service fee to affiliates who generate business and revenue for you. To implement affiliate tracking, fill in this attribute when reporting or processing one-time Transactions through Subscribe. For recurring transactions, Subscribe fills in this attribute if it is specified in the corresponding `AutoBill` object. **Note:** use of the forward slash character (/) in merchant identifiers is not allowed. See [Merchant Identifiers](Merchant_Identifiers) for more information. |
| `merchantAffiliate SubId` | string | **Optional**. Your sub-ID for (and additional information on) the partner or affiliate who directed this Transaction to you. To implement affiliate tracking, fill in this attribute when reporting or processing one-time transactions through Subscribe. For recurring `Transactions`, Subscribe fills in this attribute if it is specified in the corresponding `AutoBill` object. **Note:** use of the forward slash character (/) in merchant identifiers is not allowed. See [Merchant Identifiers](Merchant_Identifiers) for more information. |
| `merchantTransactionId` | string | Your unique identifier for this `Transaction` object. Subscribe automatically generates this value for rebilling transactions with the prefix you specified during initial configuration. Vindicia recommends that this prefix differ from the one specified for `recurring` transactions. For real-time transactions that you authorize or capture by making a call to Subscribe, for example, with `Transaction.capture()`, you must fill in this attribute. If you are reporting this transaction to Vindicia for ChargeGuard only, ensure that this ID matches the order number you sent to the payment processor. That way, ChargeGuard can match this transaction with a chargeback received for this transaction from the processor. **Note:** use of the forward slash character (/) in merchant identifiers is not allowed. See [Merchant Identifiers](Merchant_Identifiers) for more information. |
| `nameValues` | `NameValuePair[]` | **Optional**. An array of name–value pairs, which are useful in tracking the associated `AutoBill` object. Subscribe provides the following name-value pairs for use with EDD/SEPA European Direct Debit payment methods: - Use name `vin:MandateFlag` and value `1` to associate the EDD/SEPA European Direct Debit Payment Method with the AutoBill. - Use name `vin:MandateVersion` and value `1.0.1`, to associate a mandate document of version 1.0.1 with the object. - Use name `vin:MandateID` to pass the Mandate ID field of the EDD/SEPA European Direct Debit Extension record to Chase Paymentech. - Use name `vin:MandateApprovalDate` to pass the Signature Date field of the EDD/SEPA European Direct Debit Extension Record to Chase Paymntech. - Use `vin:ValidateFullAmt` to pass whether full amount authorization needs to be done before charging. This must be enabled if the processor is Global Collect. `vin:PayPalNoShippingAddress`—if set to `1` passes the `NOSHIPPING=1` flag in the PayPal`ExpressCheckOut` request, masking the shipping address for customers buying digital goods. `paypal:NoCommitUserAction`—if set to `1`, removes the `useraction=commit` setting from the PayPall `ExpressCheckOut` request, resulting in a the PayPal checkout page showing **Agree to Continue** instead of **Agree and Pay**. Use this setting if you want to do additional checking after the customer exits this checkout page and final authorization doesn’t immediately follow. Subscribe supports this feature only for one-time transactions. `paypal:SuppressItems`—if set to `1`, suppresses display of line item details of a purchase during a PayPal `ExpressCheckOut` request. To prevent showing item detail and pricing, provide the name-value pairs: `paypal:SuppressItems` and `paypal:NoCommitUserAction`, both with a value of `1`, in AutoBill or Transaction objects. If you use Vindicia's legacy Tax engine or any variety of Avalara Tax service, you can use the `vin:NegativeAmountTaxClassification` data option on any Transaction (name = vin:NegativeAmountTaxClassification, value = *xyz*, where *xyz* is a tax class). This instructs Subscribe to calculate a negative tax amount on the part of the total that was paid for using currency credits. This is useful if the customer paid taxes when purchasing the currency credits. **Note:** All name-value pairs included with the Transaction-generating AutoBill will be automatically copied to the resultant `Transaction`. The following name-value pairs are automatically populated by Subscribe for AutoBill-generated Transactions: - `vin:AutoBillVID`—the VID of the AutoBill for which this Transaction was generated. - `vin:ignoreCredits`—if set to `true`, specifies that `Transaction.auth`, `Transaction.capture`, and `Transaction.authCapture` calls ignore Credits available on an Account to pay for a one-time purchase. If set to `false`, these calls will use available credits for the Transaction. (This name-value pair enables customers to make purchases, without using available Credits to pay for them.) - `vin:entifier`—your unique ID for the AutoBill for which this Transaction was generated. - `vin:RetryNumber` —the attempt number (in retry cycles) of the Transaction. - `vin:Type`—the type of Transaction. Subscribe will automatically populate this name-value pair with `value = modify` for Transactions resulting from `AutoBill.modify` call. See [The NameValuePair Object](The_NameValuePair_Object). If Global Collect is your payment processor, you can set `vin:recurring` to `1` to have Subscribe flag one-time-Transactions as recurring Transactions. Subscribe then passes the values: `orderID`, `EffortID`, and `AttemptID` to Global Collect, as set by you in the `vin:orderID`, `vin:EffortID`, and `vin:AttemptID` fields. You can send these name-value pairs on `transaction.auth()`, `transaction.capture()` and `transaction.authcapture()` calls for one-time transactions to indicate that those transactions should be flagged as recurring. |
| `note` | string | An optional description of the `Transaction` object. |
| `originalAmount` | decimal | In the event of a partial payment, this read-only field reflects the original amount of the Transaction, as a decimal value. |
| `paymentProcessor` | string | The payment processor for this `Transaction` object. This string will be available to you in the `Transaction` object Subscribe returns to you in response to your call. **Note:** If Subscribe handles the billing, do not fill in this field. |
| `paymentProcessor TransactionId` | string | The name Vindicia uses to identify a Subscribe Transaction to the associated payment processor. This is usually the Subscribe `transactionId`. In some cases however, due to the format requirements of some payment processors, Subscribe alters the Transaction name before sending it to the processor. In those cases, the name of a transaction in a report by the payment processor will differ from the name of the same transaction in a report by Vindicia. The `paymentProcessorTransactionId` data member enables you to reconcile the original Subscribe Transaction name with the altered Transaction name Subscribe sends to the payment processor, to identify the Transaction. |
| `preferredNotification Language` | string | The language (specified as an ISO language string) Subscribe uses in email notifications when creating a real-time (one-time) `Transaction` (see the [Transaction.authCapture](Transaction_authCapture) method), assuming that a template for this language and the email notification type have been uploaded to the Subscribe database as part of your configuration. This value overrides any language setting in the `Account` object for this transaction. |
| `previousMerchant TransactionId` | string | Your unique identifier for a previous transaction referenced by this `Transaction` object. |
| `salesTaxAddress` | `Address` | The corrected billing or shipping address Subscribe uses to calculate sales tax for this `Transaction` object. Subscribe fills it in automatically. This field is optional for migrated transactions. **Note:** If Subscribe calculates sales tax for you, leave this field empty. See [Address Data Members](Address_Data_Members). |
| `shippingAddress` | `Address` | **Optional**. The customer’s shipping address for this If Subscribe calculates sales tax for you, leave this field empty. object. For one-time transactions, Subscribe uses this address first to calculate taxes, if any, that are to be added to this transaction’s total. See [Address Data Members](Address_Data_Members). |
| `sourceIp` | string | **Optional**. The IP address from which this `Transaction` object originated. This attribute is required for reporting transactions for ChargeGuard, and for scoring transactions for risk screening. With this information, Subscribe can pinpoint the geographical location at which the transaction was made. For Subscribe-generated recurring transactions, this is the IP address specified on the corresponding `AutoBill` object. |
| `sourceMacAddress` | string | **Optional**. The Media Access Control (MAC) address of the customer computer or router, from which this `Transaction` object originated. This information can be useful in chargeback disputes. |
| `sourcePaymentMethod` | `PaymentMethod` | The payment method through which this `Transaction` object will deduct funds. Subscribe uses this payment method for actual billing. For one-time transactions, except for outbound ECP-based, specify this attribute. If the payment method is not already attached to the account for this `Transaction` object, Subscribe attaches it when saving this object in the database. To turn off this behavior, set the `PaymentMethod` object’s `active` attribute to `false`. For one-time transactions, if `shippingAddress` is not specified on the `Transaction` object, Subscribe uses the billing address specified on the payment method for calculating taxes, if any. For recurring transactions generated by Subscribe, this attribute is the `PaymentMethod` object associated with the corresponding `AutoBill` object. When reporting a transaction for ChargeGuard, partially mask the payment method’s data members, for added security See [PaymentMethod Data Members](PaymentMethod_Data_Membe). |
| `sourcePhoneNumber` | string | **Optional**. The phone number from which this `Transaction` object originated. This information may be useful in chargeback disputes. |
| `statusLog` | `TransactionStatus()` | An array of the statuses this `Transaction` object has gone through, with the first entry being the most recent status. Each `TransactionStatus` object contains a Subscribe enumerated status type (for example, `Authorized` or `Captured`) and the responses from the payment processor, depending on how Subscribe processed the `Transaction`. You need not specify this attribute when creating `Transaction` objects for risk screening. Because Subscribe sets this value for real-time (one-time) transactions, leave this field empty when creating a `Transaction` object to be processed through Subscribe. When your API call completes, Subscribe returns to you the `Transaction` object with this attribute filled in. Be sure to examine this attribute in the returned object to verify that the transaction has been approved by the payment processor. For recurring transactions, Subscribe sets this attribute when capturing the transaction with the payment processor. When reporting transactions for ChargeGuard, specify a value for this field. After status updates, report the transaction again and include the reason codes (`auth` codes or other return codes) received from the payment processor. The `authCodeDescription` (hard or soft failure) is based on either the payment provider definition or the merchant override for an `auth` code. It determines whether a transaction is treated as hard failure (D) or soft failure (R). See the [TransactionStatus Subobject](TransactionStatus_Subobj). |
| `taxExemptions` | `TaxExemption` | An array of tax exemptions to be applied by Subscribe to this `Transaction` object. Specify this attribute for one-time transactions for which Subscribe calculates and adds applicable taxes, if any, and adjusts the total transaction amounts accordingly. See the [TaxExemption Subobject](TaxExemption_Subobject). |
| `timestamp` | `dateTime` | A time stamp that specifies the date and time of when this transaction occurred. Subscribe sets this value for one-time and recurring transactions. Be sure to include this attribute in migrated transactions; otherwise, it defaults to the current time. |
| `transactionItems` | `TransactionItem` | A `Transaction` array that lists the line items that comprise this `Transaction` object. Each item is a separate data structure of type `TransactionItem`. For migrated transactions, Subscribe does not validate that the subitem amounts listed here add up to the total transaction amount (see the `amount` attribute). For one-time transactions, Subscribe adds the subitem amounts and sets this `Transaction` object’s amount attribute. Subscribe also adds applicable taxes, such as city tax and state tax, as subitems. For Subscribe-generated recurring transactions, this attribute consists of a `TransactionItem` that refers to the `Product` object on the corresponding `AutoBill` object and the applicable tax items. To add sales tax when migrating transactions, include the tax as a line item here. See the [TransactionItem Subobject](TransactionItem_Subobjec). |
| `userAgent` | string | **Optional**. Your customer’s user agent from whom this Transaction originated. |
| `verificationCode` | string | The response from a payment verification system, for example, Visa (VbV) or MasterCard SecureCode, for this `Transaction` object. If you report transactions to Vindicia for ChargeGuard, populate this field with the information on the payment verification performed while conducting this transaction. |
| `VID` | string | Vindicia’s unique identifier for this `Transaction` object. When creating a `Transaction` object, leave this field empty. Vindicia assigns it a VID when saving the object in the database and make the VID available in the `Transaction` object returned to you in response to your call. Afterwards, you can refer to the object by specifying either the VID or `merchantTransactionId`. **Note:** In the absence of an existing VID or `merchantTransactionId`, Vindicia treats a `Transaction` object as a new object for any API call, and assigns the object a new VID. |
| `originalActivityDate` | string:dateTime | The date of the original transaction attempt for the governing AutoBill that spawned the transaction—null for one-time transactions or any transaction not part of an AutoBill. |
| `retryNumber` | string | The number of retry attempts to bill for this transaction. This index begins with 0 for the initial attempt to charge for a particular billing. A value of 1 indicates the first retry, 3 indicates the third retry, and so on. For one-time transactions, this value is null. |
| `autobillVID` | string | The Vindicia Record ID (or VID) of the AutoBill that "owns" the transaction—null for one-time transactions or any transaction not associated with an AutoBill. |
| `entifier` | string | The merchant-specified identifier of the AutoBill that "owns" the transaction—null for one-time transactions. |
| **Parent topic:**[The Transaction Object](../topics/The_Transaction_Object) | | |


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