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.
$result = $gateway->transaction()->submitForSettlement('the_transaction_id');
if ($result->success) {
$settledTransaction = $result->transaction;
} else {
print_r($result->errors);
}
If the transaction can't be found, you'll receive a Braintree_Exception_NotFound
exception.
Arguments
transactionId
required, string
The unique transaction identifier. You can only submit transactions that have a status of authorized
for settlement.
amount
String
An amount to submit for settlement. Must be greater than 0. 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.
If you settle an amount that is less than what was authorized, the transaction object will return the amount settled.
Additional Parameters
'descriptor'
Dynamic descriptors are not enabled on all accounts by default. If you receive a validation error of 92203
or if your dynamic descriptors are not displaying as expected, please contact us.
Dynamic descriptors are sent on a per-transaction basis and define what will appear on your customers' credit card statements for a specific purchase. The clearer the description of your product, the less likely customers will issue chargebacks due to confusion or non-recognition.
See the dynamic descriptor example for additional information.
Examples
Specifying settlement amount
If you want to settle for an amount that is different from the total authorization amount, you can specify the amount to settle. If you do not specify, the entire amount will be settled.
Authorization adjustments
For eligible merchants, authorization adjustments occur automatically when you submit for settlement for an amount greater or less than the original authorized amount.
Each adjustment attempt is recorded as an adjustment detail, which is returned on the transaction response object. Adjustment details allow you to determine decline responses and track the overall success rate of auth adjustments.
You can account for real-time decline responses in the form of validation errors.
If you have questions regarding auth adjustment eligibility or functionality, please contact us for details.
$result = $gateway->transaction()->submitForSettlement('the_transaction_id', '35.00');
Specifying order ID
You can pass additional information about a transaction by adding the orderId
when submitting the transaction for settlement.
$result = $gateway->transaction()->submitForSettlement('transactionId', null, [
'orderId' => 'orderId'
]);
if ($result->success) {
// See $result->transaction for details
} else {
// Handle errors
}