<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Auth only transaction succeeds on expired credit card in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Auth-only-transaction-succeeds-on-expired-credit-card/m-p/90268#M56789</link>
    <description>&lt;P&gt;I am having issue finding a good way to verify whether or not Credit Card is expired using Authorize.net payment gateway.&lt;/P&gt;&lt;P&gt;I used ValidateCustomerPaymentProfileRequest API as documented here -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.authorize.net/api/reference/index.html#customer-profiles-validate-customer-payment-profile" target="_blank" rel="nofollow noopener noreferrer"&gt;https://developer.authorize.net/api/reference/index.html#customer-profiles-validate-customer-payment-profile&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and this only validates the existence of payment profile i believe. Does not validate the credit card expiry.&lt;/P&gt;&lt;P&gt;I tried to do a Auth only transaction using CreateTransactionController as documented here -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.authorize.net/api/reference/index.html#payment-transactions-authorize-a-credit-card" target="_blank" rel="nofollow noopener noreferrer"&gt;https://developer.authorize.net/api/reference/index.html#payment-transactions-authorize-a-credit-card&lt;/A&gt;. AuthOnly transaction is allowed on a expired credit card as well, the transaction succeeds.&lt;/P&gt;&lt;P&gt;I also tried using GetCustomerPaymentProfileController as documented here&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile" target="_blank" rel="nofollow noopener noreferrer"&gt;https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to get the expiration date so i can manually verify but in response i get XXXX, mmdd isnt visible in the response.&lt;/P&gt;&lt;P&gt;This shouldnt be this complicated. Can someone point me to right direction ? I noticed while testing that expired credit card also succeeds and thats when i started testing with ValidateCustomerPaymentProfileRequest and GetCustomerPaymentProfileController to verify. Even the CreateTransactionController to create Auth only transaction succeeds which leaves me surprised.&lt;/P&gt;&lt;P&gt;I did file a support case and i was asked to post here&lt;/P&gt;&lt;P&gt;Here is a snippet of AuthOnly transaction i use&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;// Step 2: Create the transaction request for authOnly
    $transactionRequestType = new AnetAPI\TransactionRequestType();
    $transactionRequestType-&amp;gt;setTransactionType("authOnlyTransaction");
    $transactionRequestType-&amp;gt;setAmount("0.01");  // Small transaction amount

    // Associate the payment profile
    $paymentProfile = new AnetAPI\CustomerProfilePaymentType();
    $paymentProfile-&amp;gt;setCustomerProfileId($profile['customer_profile_id']);
    $paymentProfile-&amp;gt;setPaymentProfile(new AnetAPI\PaymentProfileType());
    $paymentProfile-&amp;gt;getPaymentProfile()-&amp;gt;setPaymentProfileId($profile['customer_payment_profile_id']);
    $transactionRequestType-&amp;gt;setProfile($paymentProfile);&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With this code, i would expect that AuthOnly transaction on expired credit card would fail. I see a success response and i see the transaction on the Authorize.net as well.&lt;/P&gt;</description>
    <pubDate>Tue, 17 Sep 2024 17:57:37 GMT</pubDate>
    <dc:creator>rockyr1</dc:creator>
    <dc:date>2024-09-17T17:57:37Z</dc:date>
    <item>
      <title>Auth only transaction succeeds on expired credit card</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Auth-only-transaction-succeeds-on-expired-credit-card/m-p/90268#M56789</link>
      <description>&lt;P&gt;I am having issue finding a good way to verify whether or not Credit Card is expired using Authorize.net payment gateway.&lt;/P&gt;&lt;P&gt;I used ValidateCustomerPaymentProfileRequest API as documented here -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.authorize.net/api/reference/index.html#customer-profiles-validate-customer-payment-profile" target="_blank" rel="nofollow noopener noreferrer"&gt;https://developer.authorize.net/api/reference/index.html#customer-profiles-validate-customer-payment-profile&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and this only validates the existence of payment profile i believe. Does not validate the credit card expiry.&lt;/P&gt;&lt;P&gt;I tried to do a Auth only transaction using CreateTransactionController as documented here -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.authorize.net/api/reference/index.html#payment-transactions-authorize-a-credit-card" target="_blank" rel="nofollow noopener noreferrer"&gt;https://developer.authorize.net/api/reference/index.html#payment-transactions-authorize-a-credit-card&lt;/A&gt;. AuthOnly transaction is allowed on a expired credit card as well, the transaction succeeds.&lt;/P&gt;&lt;P&gt;I also tried using GetCustomerPaymentProfileController as documented here&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile" target="_blank" rel="nofollow noopener noreferrer"&gt;https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to get the expiration date so i can manually verify but in response i get XXXX, mmdd isnt visible in the response.&lt;/P&gt;&lt;P&gt;This shouldnt be this complicated. Can someone point me to right direction ? I noticed while testing that expired credit card also succeeds and thats when i started testing with ValidateCustomerPaymentProfileRequest and GetCustomerPaymentProfileController to verify. Even the CreateTransactionController to create Auth only transaction succeeds which leaves me surprised.&lt;/P&gt;&lt;P&gt;I did file a support case and i was asked to post here&lt;/P&gt;&lt;P&gt;Here is a snippet of AuthOnly transaction i use&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;// Step 2: Create the transaction request for authOnly
    $transactionRequestType = new AnetAPI\TransactionRequestType();
    $transactionRequestType-&amp;gt;setTransactionType("authOnlyTransaction");
    $transactionRequestType-&amp;gt;setAmount("0.01");  // Small transaction amount

    // Associate the payment profile
    $paymentProfile = new AnetAPI\CustomerProfilePaymentType();
    $paymentProfile-&amp;gt;setCustomerProfileId($profile['customer_profile_id']);
    $paymentProfile-&amp;gt;setPaymentProfile(new AnetAPI\PaymentProfileType());
    $paymentProfile-&amp;gt;getPaymentProfile()-&amp;gt;setPaymentProfileId($profile['customer_payment_profile_id']);
    $transactionRequestType-&amp;gt;setProfile($paymentProfile);&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With this code, i would expect that AuthOnly transaction on expired credit card would fail. I see a success response and i see the transaction on the Authorize.net as well.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Sep 2024 17:57:37 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Auth-only-transaction-succeeds-on-expired-credit-card/m-p/90268#M56789</guid>
      <dc:creator>rockyr1</dc:creator>
      <dc:date>2024-09-17T17:57:37Z</dc:date>
    </item>
  </channel>
</rss>

