<?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 Re: Refunding a Transaction without Locally-Stored CC Details in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64988#M38731</link>
    <description>&lt;P&gt;I wanted to follow up on this as I think I may have discovered the problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When this project was first testing its transactions, a CVV was not required as part of the checkout process. &amp;nbsp;Since a refund needs to pull from a settled transaction I was testing it against previously-settled items, and I wonder if they weren't transactions without a CVV to test against.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yesterday I created another sandbox transaction and waited until I received the Settled Transactions e-mail (today). &amp;nbsp;When I first attempted to run my two refund functions I received an error that a Duplicate Transaction was detected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Re-testing it a minute later and I got the expected results:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Transaction Response code : 1 Refund
SUCCESS: 60111300279
Code : 1
Description : This transaction has been approved.&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I'm going to continue testing to figure out what might have caused the duplicate notice but right now I'm operating under the assumption that the core problem was a lack of a CVV stored under&amp;nbsp;the Authorize.net details.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 06 Nov 2018 14:20:39 GMT</pubDate>
    <dc:creator>rkieru</dc:creator>
    <dc:date>2018-11-06T14:20:39Z</dc:date>
    <item>
      <title>Refunding a Transaction without Locally-Stored CC Details</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64964#M38713</link>
      <description>&lt;P&gt;The project I am working on does not store any credit card details locally. For all of their transactions they simply store details returned by Authorize.net: Key, ID, Amount. &amp;nbsp;I have been tasked with integrating a refund capability into their store (PHP).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;By all accounts I should be able to do this as long as the transactions are less than 120 days old:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.developer.authorize.net/t5/Integration-and-Testing/Refund-without-credit-card-information/td-p/56566" target="_blank"&gt;https://community.developer.authorize.net/t5/Integration-and-Testing/Refund-without-credit-card-information/td-p/56566&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The problem I am running into is that to refund a transaction I need to provide the&amp;nbsp;refundTransaction() function with the last 4 digits of the credit card, and the credit card expiration date. &amp;nbsp;The former is not a problem;&amp;nbsp;GetTransactionDetailsRequest() let's me pull a masked credit card number with the last 4 digits exposed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But the expiration date is entirely masked and when I try to use that value for the refund I get an error that the card has expired.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there any way to obtain the unmasked value? Or a way to process the refund in a manner that does not require this information?&lt;/P&gt;</description>
      <pubDate>Sat, 03 Nov 2018 13:42:13 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64964#M38713</guid>
      <dc:creator>rkieru</dc:creator>
      <dc:date>2018-11-03T13:42:13Z</dc:date>
    </item>
    <item>
      <title>Re: Refunding a Transaction without Locally-Stored CC Details</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64965#M38714</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26935"&gt;@rkieru&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A refund currently requires the masked card number to successfully process a refund.&amp;nbsp; If you first use getTransactionDetails with the transaction ID, the payment object will include the information you need.&amp;nbsp; Then simply submit the transaction id and masked card details.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Richard&lt;/P&gt;</description>
      <pubDate>Sat, 03 Nov 2018 16:01:48 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64965#M38714</guid>
      <dc:creator>RichardH</dc:creator>
      <dc:date>2018-11-03T16:01:48Z</dc:date>
    </item>
    <item>
      <title>Re: Refunding a Transaction without Locally-Stored CC Details</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64966#M38715</link>
      <description>&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/7546"&gt;@RichardH&lt;/a&gt;&amp;nbsp;- I believe that is what I am currently doing. &amp;nbsp;My code currently functions in the followin steps:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(1) Pull up the Transaction details via&amp;nbsp;&lt;SPAN&gt;getTransactionDetails with the ID from the initial transaction.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;(2) Store the status, amount charged, card number (partial mask) and expiration date (full mask) into a an array.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;(3) Pass that information along&amp;nbsp;with the Transaction ID and amount to refund to&amp;nbsp;refundTransaction()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The end result is that the masked expiration date causes the attempt to fail; the card is considered expired. &amp;nbsp;If I input any valid expiration date (ex. 1218) it processes successfully. &amp;nbsp;I am currently testing this in a sandbox environment using testing numbers (Visa:&amp;nbsp;4111111111111111) and am not sure if that might be a factor in why I'm getting a failed attempt.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 03 Nov 2018 16:15:56 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64966#M38715</guid>
      <dc:creator>rkieru</dc:creator>
      <dc:date>2018-11-03T16:15:56Z</dc:date>
    </item>
    <item>
      <title>Re: Refunding a Transaction without Locally-Stored CC Details</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64967#M38716</link>
      <description>&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26935"&gt;@rkieru&lt;/a&gt;&amp;nbsp;can you please show a sample request and response?&amp;nbsp; You should not including card details in the refund request.&amp;nbsp; See the API Live console example here:&amp;nbsp;&lt;A href="https://developer.authorize.net/api/reference/#payment-transactions-refund-a-transaction" target="_blank"&gt;https://developer.authorize.net/api/reference/#payment-transactions-refund-a-transaction&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 03 Nov 2018 16:20:19 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64967#M38716</guid>
      <dc:creator>RichardH</dc:creator>
      <dc:date>2018-11-03T16:20:19Z</dc:date>
    </item>
    <item>
      <title>Re: Refunding a Transaction without Locally-Stored CC Details</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64968#M38717</link>
      <description>&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/7546"&gt;@RichardH&lt;/a&gt;&amp;nbsp;I have uploaded the relevant code to the following location:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://codeshare.io/5NgYjJ" target="_blank"&gt;https://codeshare.io/5NgYjJ&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So in the sample code we have Sandbox Transaction ID #60107753969. &amp;nbsp;The&amp;nbsp;getRefundDetails() function would return something like the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;[status] =&amp;gt; settledSuccessfully
[amount] =&amp;gt; 45.32
[card] =&amp;gt; XXXX1111
[exp] =&amp;gt; XXXX&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;That information is then sent to&amp;nbsp;refundTransaction() so that&amp;nbsp;setCardNumber() and&amp;nbsp;setExpirationDate() have the necessary information. &amp;nbsp;I grab 'status' and 'amount' for other verification purposes (Like checking the transaction is valid, or that the amount we're refunding doesn't exceed the original transaction amount).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;When the Expiration Date is XXXX I get the following output:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Transaction Failed &lt;BR /&gt;Error code : 8 &lt;BR /&gt;Error message : The credit card has expired.&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;But if I set the Expiration Date to 1218 I get a different result:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Transaction Response code : 1 &lt;BR /&gt;Refund SUCCESS: 60111190246 &lt;BR /&gt;Code : 1 &lt;BR /&gt;Description : This transaction has been approved.&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Which triggers a merchant email receipt&amp;nbsp;to the email associated to my devleoper account letting me know that the transaction was processed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;========= ORDER INFORMATION =========
Invoice : 
Description : Goods or Services
Amount : 2.23 (USD)
Payment Method: Visa xxxx1111
Transaction Type: Credit

============== Line Items ==============

============== RESULTS ==============
Response : This transaction has been approved.
Auth Code : 
Transaction ID : 60111190246&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 03 Nov 2018 16:34:46 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64968#M38717</guid>
      <dc:creator>rkieru</dc:creator>
      <dc:date>2018-11-03T16:34:46Z</dc:date>
    </item>
    <item>
      <title>Re: Refunding a Transaction without Locally-Stored CC Details</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64969#M38718</link>
      <description>&lt;P&gt;Hmmm.... (scratchhead)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'll need to check on this, but it may be until Monday before I've got an answer.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Richard&lt;/P&gt;</description>
      <pubDate>Sat, 03 Nov 2018 17:06:50 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64969#M38718</guid>
      <dc:creator>RichardH</dc:creator>
      <dc:date>2018-11-03T17:06:50Z</dc:date>
    </item>
    <item>
      <title>Re: Refunding a Transaction without Locally-Stored CC Details</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64988#M38731</link>
      <description>&lt;P&gt;I wanted to follow up on this as I think I may have discovered the problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When this project was first testing its transactions, a CVV was not required as part of the checkout process. &amp;nbsp;Since a refund needs to pull from a settled transaction I was testing it against previously-settled items, and I wonder if they weren't transactions without a CVV to test against.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yesterday I created another sandbox transaction and waited until I received the Settled Transactions e-mail (today). &amp;nbsp;When I first attempted to run my two refund functions I received an error that a Duplicate Transaction was detected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Re-testing it a minute later and I got the expected results:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Transaction Response code : 1 Refund
SUCCESS: 60111300279
Code : 1
Description : This transaction has been approved.&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I'm going to continue testing to figure out what might have caused the duplicate notice but right now I'm operating under the assumption that the core problem was a lack of a CVV stored under&amp;nbsp;the Authorize.net details.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Nov 2018 14:20:39 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Refunding-a-Transaction-without-Locally-Stored-CC-Details/m-p/64988#M38731</guid>
      <dc:creator>rkieru</dc:creator>
      <dc:date>2018-11-06T14:20:39Z</dc:date>
    </item>
  </channel>
</rss>

