Auth Only Reversal

This transaction deletes and reverses a previous Pre-Auth transaction. Reversals reduce the issuer’s hold on available balances when transactions are not completed, freeing up the cardholder’s open-to-buy amounts.

Code Samples

CWS

Request

PropertyDescription
method
string | required
startPaymentTransaction
requestId
string | required
Transaction Request ID
targetType
string | required
paymentGatewayConverge
parameters
JSONObject | required
All relevant parameters for Auth Only Reversal transactions.
paymentGatewayId
string | required
Payment Gateway ID
Unique identifier of the payment gateway as returned in the openPaymentGateway transaction response.
transactionType
string | required
Transaction Type
Valid value: PRE_AUTH_DELETE
originalTransId
string | required
Transaction ID
Unique transaction identifier of the pre-authorized transaction.
tenderType
string | required
Tender Type
Valid value: CARD

Example

Request
{
  "method" : "startPaymentTransaction",
  "requestId" : "1249221104",
  "targetType" : "paymentGatewayConverge",
  "version" : "1.0",
  "parameters" : {
    "paymentGatewayId" : "cb06a1de-d247-4bfd-8c3f-98db94e32c0d",
    "transactionType" : "PRE_AUTH_DELETE",
    "originalTransId" : "070316A15-D808755A-4283-4280-B4D6-5029D84F34B3",
    "tenderType" : "CARD",
  }
}
Response
{
  "requestId" : "1249221107",
  "statusDetails" : "REQUEST_ACCEPTED",
  "data" : {
    "paymentGatewayCommand" : {
      "completed" : true,
      "eventQueue" : [ ],
      "chanId" : "0441cbc3-e020-4725-8f76-9fab19e34ef1",
      "paymentTransactionData" : {
        "result" : "APPROVED",
        "authCode" : null,
        "date" : "Mon Mar 07 13:08:42 MST 2016",
        "cardEntryType" : "UNKNOWN",
        "resultMessage" : "APPROVED",
        "cardScheme" : "VISA",
        "amount" : {
          "currencyCode" : "USD",
          "value" : 0
        },
        "id" : "070316A15-D808755A-4283-4280-B4D6-5029D84F34B3",
        "transactionType" : "PRE_AUTH_DELETE",
        "approved" : "yes",
        "errors" : [  ],
        "maskedPan" : "******",
        "tenderType" : "CARD",
        "balanceDue" : {
          "currencyCode" : "UNKNOWN",
          "value" : 0
        }
      }
    }
  }
}

Java

  1. Initialize Commerce SDK and receive an ECLAccountInterface instance named account.

  2. Create a money object by specifying a currency code and an amount.

    ECLMoney amount = new ECLMoney(ECLCurrencyCode.USD, 300L);
    
  3. Add the unique transaction identifier of the authorized transaction and create a transaction reference.

    String originalTxnId = "abc123";
    ECLTransactionInterface transaction = account.getTransactionProcessor().createPreAuthDeleteTransactionWithTotal(amount, originalTxnId);
    
  4. Create a card tender instance.

    ECLCardTenderInterface tender = account.getTransactionProcessor().createCardTender();
    

Objective-C

  1. Initialize Commerce SDK and receive an ECLAccountInterface instance named account.

  2. Create a money object by specifying a currency code and an amount.

    ECLMoney *amount = [[ECLMoney alloc] initWithMinorUnits:300 withCurrencyCode:ECLCurrencyCode_USD];
    
  3. Add the unique transaction identifier of the authorized transaction and create a transaction protocol.

    NSString *originalTxnId = @"abc123";
    id<ECLTransactionProtocol> transaction = [[_account transactionProcessor] createPreAuthDeleteTransactionWithTotal:amount transactionID:originalTxnId];
    
  4. Create a card tender instance.

    id<ECLCardTenderProtocol> tender = [account.transactionProcessor createCardTender];
    

C#

Request

PaymentArgs bea = new PaymentArgs();

bea.transactionType = TransactionType.PRE_AUTH_DELETE;
bea.originalTransId = m_OriginalTransId;
bea.tenderType = TenderType.CARD;
bea.paymentGatewayId = m_PaymentGatewayId; 

m_CWS.StartPaymentTransaction(bea, MyNotifyCWSEvent, MyPaymentComplete);