cancel
Showing results for 
Search instead for 
Did you mean: 

Cards Declined After Expired Authorization

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.

mlp473
Member
3 REPLIES 3

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 ?

 

 

 

rajvpate
Administrator Administrator
Administrator

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...

 

rajvpate
Administrator Administrator
Administrator

 @rajvpate 

  • authorization hold on a card not present transaction expires in 72 hours
  • Transaction date must be within 7 days of the Authorization date
  • Issuer typically allow transaction to proceed within 30 days, however, after 7 days the authorization is invalid. The transaction will qualify for the worst rate possible (invalid/no authorization) and merchant is at risk of a chargeback.
Christine
Payment Gateway and Merchant Services Consultant