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
Property | Description |
---|---|
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
Initialize Commerce SDK and receive an
ECLAccountInterface
instance named account.Create a money object by specifying a currency code and an amount.
ECLMoney amount = new ECLMoney(ECLCurrencyCode.USD, 300L);
Add the unique transaction identifier of the authorized transaction and create a transaction reference.
String originalTxnId = "abc123"; ECLTransactionInterface transaction = account.getTransactionProcessor().createPreAuthDeleteTransactionWithTotal(amount, originalTxnId);
Create a card tender instance.
ECLCardTenderInterface tender = account.getTransactionProcessor().createCardTender();
Objective-C
Initialize Commerce SDK and receive an
ECLAccountInterface
instance named account.Create a money object by specifying a currency code and an amount.
ECLMoney *amount = [[ECLMoney alloc] initWithMinorUnits:300 withCurrencyCode:ECLCurrencyCode_USD];
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];
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);