Return Funds to a Customer: Java

This code steps you through the process of refunding payments that have been made on settled transactions.

There are three outcomes when processing credit card transactions:

  1. Approved
  2. Declined
  3. Error

Refunds can only be run on 'Approved' transactions that have been settled. 'Declined' transactions cannot be refunded. As a result, in order to test the refund process, you must first pass an odd dollar amount. This will return the transaction with an 'Approved' status. Then, you can test a refund for the transaction.

An error could result from a variety of conditions such as missing data, invalid card numbers, and expiration dates provided in invalid formats.

The following sample code calls a routine from our Code Library.
Or, download via GitHub

* BluePay Java Sample code.
* This code sample runs a $3.00 Credit Card Sale transaction
* against a customer using test payment information. If
* approved, a 2nd transaction is run to refund the customer
* for $1.75.
* If using TEST mode, odd dollar amounts will return
* an approval and even dollar amounts will return a decline.

package transactions;
import bluepay.*;
import java.util.HashMap;

public class Return_Funds {

  public static void main(String[] args) {

    String ACCOUNT_ID = "Merchant's Account ID Here";
    String SECRET_KEY = "Merchant's Secret Key Here";
    String MODE = "TEST";

    BluePay payment = new BluePay(

    // Set Customer Information
    HashMap<String, String> customerParams = new HashMap<>();
    customerParams.put("firstName", "Bob");
    customerParams.put("lastName", "Tester");
    customerParams.put("address1", "123 Test St.");
    customerParams.put("address2", "Apt #500");
    customerParams.put("city", "Testville");
    customerParams.put("state", "IL");
    customerParams.put("zip", "54321");
    customerParams.put("country", "USA");
    customerParams.put("phone", "123-123-12345");
    customerParams.put("email", "[email protected]");

    // Set Credit Card Information
    HashMap<String, String> ccParams = new HashMap<>();
    ccParams.put("cardNumber", "4111111111111111");
    ccParams.put("expirationDate", "1225");
    ccParams.put("cvv2", "123");

    // Sets sale amount: $3.00
    HashMap<String, String> saleParams = new HashMap<>();
    saleParams.put("amount", "3.00");;
    // Makes the API Request with BluePay
    try {
    } catch (Exception ex) {
      System.out.println("Exception: " + ex.toString());
    // If transaction was successful reads the responses from BluePay
    if (payment.isSuccessful()) {

      // Creates a refund transaction against previous sale
      BluePay paymentRefund = new BluePay(
      // Attempts to refund above Sale transaction
      HashMap<String, String> refundParams = new HashMap<>();
      refundParams.put("amount", "1.75");  // partial refund of $1.75
      refundParams.put("transactionID", payment.getTransID()); // id of previous transaction to refund

      // Makes the API Request to process refund
      try {
      } catch (Exception ex) {
        System.out.println("Exception: " + ex.toString());

      // Reads the response from BluePay
      System.out.println("Transaction Status: " + paymentRefund.getStatus());
      System.out.println("Transaction Message: " + paymentRefund.getMessage());
      System.out.println("Transaction ID: " + paymentRefund.getTransID());
      System.out.println("AVS Result: " + paymentRefund.getAVS());
      System.out.println("CVV2: " + paymentRefund.getCVV2());
      System.out.println("Masked Payment Account: " + paymentRefund.getMaskedPaymentAccount());
      System.out.println("Card Type: " + paymentRefund.getCardType());   
      System.out.println("Authorization Code: " + paymentRefund.getAuthCode());
    } else {
      System.out.println("Error: " + payment.getMessage());
Can’t find what you’re
looking for? We can help.

Contact 800-350-2684 for Integration Support.

  • Microsoft Gold Partner Badge
  • 2018 American Business Awards Gold Stevie® Winner Badge for Best Payment and Electronic Commerce Solution
  • 2018 CNP Awards Customer Choice Winner Badge for Best E-Commerce Platform/Gateway
  • Best in Biz Awards 2018 Silver Winner Badge for Business Development Department of the Year
  • TSG Gateway Awards 2019 BluePay
BluePay Processing, LLC is a registered ISO of Wells Fargo Bank, N.A., Concord, CA, 94524 U.S.A.
BluePay Canada ULC, is a Registered ISO/MSP of Peoples Trust Company, Vancouver, Canada.