Interface PaymentTransaction

All Superinterfaces:
AdditionalFields, MultiTenantCloneable<PaymentTransaction>, Serializable, Status
All Known Implementing Classes:
PaymentTransactionImpl

public interface PaymentTransaction extends Serializable, Status, AdditionalFields, MultiTenantCloneable<PaymentTransaction>

Used to store individual transactions about a particular payment. While an OrderPayment holds data like what the user might be paying with and the total amount they will be paying (like credit card and $10), a PaymentTransaction is more about what happens with that particular payment. Thus, PaymentTransactions do not make sense by themselves and ONLY make sense in the context of an OrderPayment.

For instance, the user might say they want to pay $10 but rather than capture the payment at order checkout, there might first be a transaction for PaymentTransactionType.AUTHORIZE and then when the item is shipped there is another PaymentTransaction for PaymentTransactionType.CAPTURE.

In the above case, this also implies that a PaymentTransaction can have a parent transaction (retrieved via getParentTransaction()). The parent transaction will only be set in the following cases:

For PaymentTransactionType.UNCONFIRMED, they will have children that will be either PaymentTransactionType.AUTHORIZE or PaymentTransactionType.AUTHORIZE_AND_CAPTURE.

*
Author:
Phillip Verheyden (phillipuniverse)