We are having an issue for a client where we Authorize a credit card first and then upon capture (days later) the card is declined. I need to find a way to reduce the chances of a card being declined when we go to capture a few days later.
I would like to check to see if an Authorization has expired via the API. Is this possible to do with Authorize.net?
If we are able to check on the current status frequently, I am thinking we can re-authorize when the first authorization expires which will bridge the gap and increase the chances of a successful capture. Please let me know.
12-20-2017 02:28 PM
Hi @mlp473
The authorization on a card is usually valid for 30 days. The time the auth is valid for also depends on the bank that issued the card.
Is is possible in your scenario to capture before 30 days ?
12-20-2017 02:55 PM
If you need to check the transactionStatus there is the GetTransactionDetails API that you can use which shows the transactionStatus. Here is the response I got from Sandbox env:
<?xml version="1.0" encoding="UTF-8"?>
<getTransactionDetailsResponse xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<messages>
<resultCode>Ok</resultCode>
<message>
<code>I00001</code>
<text>Successful.</text>
</message>
</messages>
<transaction>
<transId>12345</transId>
<refTransId>12345</refTransId>
<splitTenderId>12345</splitTenderId>
<submitTimeUTC>2010-08-30T17:49:20.757Z</submitTimeUTC>
<submitTimeLocal>2010-08-30T13:49:20.757</submitTimeLocal>
<transactionType>authOnlyTransaction</transactionType>
<transactionStatus>settledSuccessfully</transactionStatus>
<responseCode>1</responseCode>
<responseReasonCode>1</responseReasonCode>
<responseReasonDescription>Approval</responseReasonDescription>
<authCode>000000</authCode>
<AVSResponse>X</AVSResponse>
<cardCodeResponse>M</cardCodeResponse>
<CAVVResponse>2</CAVVResponse>
<FDSFilterAction>authAndHold</FDSFilterAction>
<FDSFilters>
<FDSFilter>
<name>Hourly Velocity Filter</name>
<action>authAndHold</action>
</FDSFilter>
<FDSFilter>
<name>Amount Filter</name>
<action>report</action>
</FDSFilter>
</FDSFilters>
<batch>
<batchId>12345</batchId>
<settlementTimeUTC>2010-08-30T17:49:20.757Z</settlementTimeUTC>
<settlementTimeLocal>2010-08-30T13:49:20.757</settlementTimeLocal>
<settlementState>settledSuccessfully</settlementState>
</batch>
<order>
<invoiceNumber>INV00001</invoiceNumber>
<description>some description</description>
<purchaseOrderNumber>PO000001</purchaseOrderNumber>
</order>
<requestedAmount>5.00</requestedAmount>
<authAmount>2.00</authAmount>
<settleAmount>2.00</settleAmount>
<tax>
<amount>1.00</amount>
<name>WA state sales tax</name>
<description>Washington state sales tax</description>
</tax>
<shipping>
<amount>2.00</amount>
<name>ground based shipping</name>
<description>Ground based 5 to 10 day shipping</description>
</shipping>
<duty>
<amount>1.00</amount>
</duty>
<lineItems>
<lineItem>
<itemId>ITEM00001</itemId>
<name>name of item sold</name>
<description>Description of item sold</description>
<quantity>1</quantity>
<unitPrice>6.95</unitPrice>
<taxable>true</taxable>
</lineItem>
<lineItem>
<itemId>ITEM00001</itemId>
<name>name of item sold</name>
<description>Description of item sold</description>
<quantity>1</quantity>
<unitPrice>6.95</unitPrice>
<taxable>true</taxable>
</lineItem>
</lineItems>
<prepaidBalanceRemaining>30.00</prepaidBalanceRemaining>
<taxExempt>false</taxExempt>
<payment>
<!-- either creditCard or bankAccount will be here -->
<creditCard>
<cardNumber>XXXX1111</cardNumber>
<expirationDate>XXXX</expirationDate>
<cardType>Visa</cardType>
</creditCard>
<!--<bankAccount>
<routingNumber>XXXX0000</routingNumber>
<accountNumber>XXXX0000</accountNumber>
<nameOnAccount>John Doe</nameOnAccount>
<echeckType>WEB</echeckType>
</bankAccount>-->
</payment>
<customer>
<type>individual</type>
<id>ABC00001</id>
<email>mark@example.com</email>
</customer>
<billTo>
<firstName>John</firstName>
<lastName>Doe</lastName>
<company />
<address>123 Main St.</address>
<city>Bellevue</city>
<state>WA</state>
<zip>98004</zip>
<country>USA</country>
<phoneNumber>000-000-0000</phoneNumber>
<faxNumber />
</billTo>
<shipTo>
<firstName>John</firstName>
<lastName>Doe</lastName>
<company />
<address>123 Main St.</address>
<city>Bellevue</city>
<state>WA</state>
<zip>98004</zip>
<country>USA</country>
</shipTo>
<recurringBilling>false</recurringBilling>
<customerIP>0.0.0.0</customerIP>
<subscription>
<id>145521</id>
<payNum>1</payNum>
<marketType>eCommerce</marketType>
<product>Card Not Present</product>
<returnedItems>
<returnedItem>
<id>2148878904</id>
<dateUTC>2014-05-12T21:22:44Z</dateUTC>
<dateLocal>2014-05-12T14:22:44</dateLocal>
<code>R02</code>
<description>Account Closed</description>
</returnedItem>
</returnedItems>
<solution>
<id>A1000004</id>
<name>Shopping Cart</name>
</solution>
<mobileDeviceId>2354578983274523978</mobileDeviceId>
</subscription>
<profile>
<customerProfileId>1806660050</customerProfileId>
<customerPaymentProfileId>1805324550</customerPaymentProfileId>
</profile>
</transaction>
</getTransactionDetailsResponse>
The possible transactionStatus values are listed here: https://developer.authorize.net/api/reference/index.html#transaction-reporting-get-transaction-detai...
12-26-2017 08:59 AM
02-22-2018 07:39 AM - edited 02-22-2018 07:41 AM