See also the Transaction response object.
If you do not use the
options().submitForSettlement() option with
Transaction.sale(), then you will have to explicitly submit the transaction for settlement. If you only want to settle a portion of the total authorization amount, you can specify the amount to settle.
Result<Transaction> result = gateway.transaction().submitForPartialSettlement( "parent_auth_transaction_id", new BigDecimal("35.00") );
This method allows you to submit multiple settlements against the same authorization, which is helpful if you send physical goods to customers in multiple shipments. You can create a parent authorization for an entire order amount, and when you’re ready to send each portion of the order, you can charge the customer for that portion in a separate child transaction.
The transaction ID of the parent authorization. You can only submit transactions that have a status of
SETTLEMENT_PENDING for partial settlement.
An amount to submit for partial settlement against the parent authorization transaction. This amount to be partially settled must be greater than 0. You can make multiple partial settlement calls as long as the cumulative amount to be partially settled is less than or equal to the amount authorized by the parent transaction. You can't settle more than the authorized amount unless your industry and processor support settlement adjustment (settling a certain percentage over the authorized amount); contact us for details.
Multiple partial settlements are supported for most credit and debit card transactions – including those processed via Android Pay and Apple Pay – as well as PayPal transactions.
For details on submitting PayPal transactions for partial settlement, see
Transaction.submitForPartialSettlement() in the reference.
- Each partial settlement will create a new child transaction in the gateway with the same details as the original transaction, but with the amount specified in the
- Once a child transaction is created, the parent will move to a
SETTLEMENT_PENDINGstatus, whereas the child will move from
- The parent transaction will move to
SETTLEDwhen either of the following is true:
- All child transactions are
SETTLEDand the cumulative amount submitted for settlement across all child transactions is equal to the amount authorized on the parent transaction.
- The original authorization is
EXPIREDand there are one or more
SETTLEDchild transactions associated with the parent transaction.
- All child transactions are
- Once the parent moves to the
SETTLEDstatus, no further settlements can be created on that transaction.
- Merchants processing on First Data can issue refunds for child transactions only, whereas merchants on Chase can issue refunds against the parent transaction as well.
- A refund on a child transaction can be only up to the amount settled on the child.
- A refund on a parent transaction (for Chase merchants) can be only up to the amount authorized on the parent.
- Refunds can be issued only when the transaction has fully settled and is in a
- A parent transaction in a
SETTLEMENT_PENDINGstate may not be voided.
- The parent and child transactions will appear linked in the Control Panel as Authorized Transaction and Settlement Transaction ID, respectively.
- The parent transaction will show the child transaction(s) under the Settlement Information section on the transaction search in the Control Panel. Similarly, the child transactions will show the parent for authorization information.