Return Funds to a Customer
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:
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.
# BluePay Ruby 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 partially refund the
# customer for $1.75 of the $3.00.
# If using TEST mode, odd dollar amounts will return
# an approval and even dollar amounts will return a decline.
ACCOUNT_ID = "Merchant's Account ID"
SECRET_KEY = "Merchant's Secret Key"
MODE = "TEST"
payment = BluePay.new(
address1: "123 Test St.",
address2: "Apt #500",
email: "[email protected]"
cc_number: "4111111111111111", # Customer Credit Card Number
cc_expiration: "1215", # Card Expiration Date: MMYY
cvv2: "123" # Card CVV2
payment.sale(amount: "3.00") # Sale Amount: $3.00
# Makes the API Request for processing the sale
# If transaction was approved..
payment_return = BluePay.new(
# Creates a refund transaction against previous sale
trans_id: payment.get_trans_id, # id of previous transaction to refund
amount: "1.75" # partial refund of $1.75
# Makes the API Request to process refund
# Reads the response from BluePay
puts "TRANSACTION STATUS: " + payment_return.get_status
puts "TRANSACTION MESSAGE: " + payment_return.get_message
puts "TRANSACTION ID: " + payment_return.get_trans_id
puts "AVS RESPONSE: " + payment_return.get_avs_code
puts "CVV2 RESPONSE: " + payment_return.get_cvv2_code
puts "MASKED PAYMENT ACCOUNT: " + payment_return.get_masked_account
puts "CARD TYPE: " + payment_return.get_card_type
puts "AUTH CODE: " + payment_return.get_auth_code