Broadleaf Microservices
  • v1.0.0-latest-prod

Braintree Refund Transaction

Prerequisites

Before performing a Refund transaction with the Braintree gateway, you’ll first need to set up your environment as described in the Environment Setup Guide.

Executing a Refund Transaction

@RequiredArgsConstructor
public class Refund {

 private final BraintreeTransactionService braintreeTransactionService;

 public void performRefund() {
        MonetaryAmount transactionTotal = Monetary.getDefaultAmountFactory().setNumber(amount).create();
        PaymentRequest paymentRequest = new PaymentRequest()
		        .additionalField("TRANSACTION_ID", transactionId) // The Braintree transaction id gathered from the Authorize transaction.
		        .transactionTotal(transactionTotal);

		paymentResponse.isSuccessful();
		paymentResponse.getGatewayResponseCode(); // The Braintree response code
		paymentResponse.getFailureType(); // Failure type in case the transaction was not successful.
	   	paymentResponse.getRawResponse(); // Braintree raw response stored as a JSON object.
		paymentResponse.getGatewayTransactionId(); // gatewayTransaction Id from Braintree.
		paymentResponse.getGatewayTransactionType(); // Braintree gateway transaction type.
		paymentResponse.getResponseMap().get("TRANSACTION_ID"); // Braintree transaction Id.
	   	paymentResponse.getResponseMap().get("TRANSACTION_STATUS"); // Braintree transaction status.
	}
}

To set additional fields in the PaymentRequest, use method

PaymentRequest.additionalField(key, value)

To get values from responseMap, use

PaymentResponse.getResponseMap().get(key, value)

To get the transaction reference ID from response:

PaymentResponse.getTransactionReferenceId()

To get the Broadleaf Payment ID from the response:

PaymentResponse.getPaymentId()