<?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: Error while adding new paymentProfile - {\&amp;quot;code\&amp;quot;:\&amp;quot;E00114\&amp;quot;,\&amp;quot;text\&amp;amp;qu in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Error-while-adding-new-paymentProfile-quot-code-quot-quot-E00114/m-p/69897#M42834</link>
    <description>&lt;P&gt;We were doing something wrong, by doing trial and error(via API) to determine if a customer exists or not.&lt;/P&gt;&lt;P&gt;So we tried to create a &lt;STRONG&gt;customerProfile&lt;/STRONG&gt;, w/ &lt;STRONG&gt;customerPaymentProfile&lt;/STRONG&gt; &amp;amp; this will throw error if &lt;STRONG&gt;customerProfile&lt;/STRONG&gt; already exist(if its a duplicate email). Whats good here, is that &lt;STRONG&gt;customerProfileId&lt;/STRONG&gt; will be returned w/ the error payload.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now we though of using &lt;STRONG&gt;customerProfileId&lt;/STRONG&gt; from error payload, to create a new payment profile for the customer, giving us some edge by reducing one DB call on our system.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The issue with our strategy, is that apparently, &lt;STRONG&gt;opaqueData will expire&lt;/STRONG&gt;, when we use it to create customerProfile(w/ payment profile) &lt;STRONG&gt;even though the request failed(duplicate user error)&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So resolution is to save customer info in our system, and check if it's a returning customer or not. If it is, then get customerProfileId from db, and create new customerPaymentProfile on authorize.net&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One could also create &lt;STRONG&gt;customerProfile&lt;/STRONG&gt; first, w/o the &lt;STRONG&gt;customerPaymentProfile&lt;/STRONG&gt;. if this transaction fails, then at least you &lt;STRONG&gt;haven't used the opaqueData yet&lt;/STRONG&gt; and you get the &lt;STRONG&gt;customerProfileId&lt;/STRONG&gt; w/o doing any query on your db. So when you try to create a new &lt;STRONG&gt;customerPaymentProfile&lt;/STRONG&gt;, you won't get error code E00114 since opaqueData isn't used yet.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;lessons learned the hard way for us, but hopefully it helps someone.&lt;/P&gt;</description>
    <pubDate>Wed, 04 Dec 2019 12:01:48 GMT</pubDate>
    <dc:creator>theorb</dc:creator>
    <dc:date>2019-12-04T12:01:48Z</dc:date>
    <item>
      <title>Error while adding new paymentProfile - {\"code\":\"E00114\",\"text\":\"Invalid OTS Token.\"}</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Error-while-adding-new-paymentProfile-quot-code-quot-quot-E00114/m-p/69872#M42811</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi, we're trying to add a new customerPaymentProfile for an existing customerProfile. we're patterning our code on the github example you provided&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A href="https://github.com/AuthorizeNet/sample-code-node/blob/master/CustomerProfiles/create-customer-payment-profile.js" target="_blank"&gt;https://github.com/AuthorizeNet/sample-code-node/blob/master/CustomerProfiles/create-customer-payment-profile.js&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the only difference is that, we don't pass CC details to our servers. instead, we pass opaqueData. on Initial customerProfile creation(with a single payment profile) it works w/c is good. but if we try to add a new paymentProfile(using a new opaqueData) we get the error mentioned on the subject. Can you please help us regarding this?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 02 Dec 2019 01:15:23 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Error-while-adding-new-paymentProfile-quot-code-quot-quot-E00114/m-p/69872#M42811</guid>
      <dc:creator>theorb</dc:creator>
      <dc:date>2019-12-02T01:15:23Z</dc:date>
    </item>
    <item>
      <title>Re: Error while adding new paymentProfile - {\"code\":\"E00114\",\"text\&amp;qu</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Error-while-adding-new-paymentProfile-quot-code-quot-quot-E00114/m-p/69892#M42829</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/7546"&gt;@RichardH&lt;/a&gt;&amp;nbsp;can you help us about this one please?&lt;/P&gt;</description>
      <pubDate>Wed, 04 Dec 2019 01:53:50 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Error-while-adding-new-paymentProfile-quot-code-quot-quot-E00114/m-p/69892#M42829</guid>
      <dc:creator>theorb</dc:creator>
      <dc:date>2019-12-04T01:53:50Z</dc:date>
    </item>
    <item>
      <title>Re: Error while adding new paymentProfile - {\"code\":\"E00114\",\"text\&amp;qu</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Error-while-adding-new-paymentProfile-quot-code-quot-quot-E00114/m-p/69897#M42834</link>
      <description>&lt;P&gt;We were doing something wrong, by doing trial and error(via API) to determine if a customer exists or not.&lt;/P&gt;&lt;P&gt;So we tried to create a &lt;STRONG&gt;customerProfile&lt;/STRONG&gt;, w/ &lt;STRONG&gt;customerPaymentProfile&lt;/STRONG&gt; &amp;amp; this will throw error if &lt;STRONG&gt;customerProfile&lt;/STRONG&gt; already exist(if its a duplicate email). Whats good here, is that &lt;STRONG&gt;customerProfileId&lt;/STRONG&gt; will be returned w/ the error payload.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now we though of using &lt;STRONG&gt;customerProfileId&lt;/STRONG&gt; from error payload, to create a new payment profile for the customer, giving us some edge by reducing one DB call on our system.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The issue with our strategy, is that apparently, &lt;STRONG&gt;opaqueData will expire&lt;/STRONG&gt;, when we use it to create customerProfile(w/ payment profile) &lt;STRONG&gt;even though the request failed(duplicate user error)&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So resolution is to save customer info in our system, and check if it's a returning customer or not. If it is, then get customerProfileId from db, and create new customerPaymentProfile on authorize.net&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One could also create &lt;STRONG&gt;customerProfile&lt;/STRONG&gt; first, w/o the &lt;STRONG&gt;customerPaymentProfile&lt;/STRONG&gt;. if this transaction fails, then at least you &lt;STRONG&gt;haven't used the opaqueData yet&lt;/STRONG&gt; and you get the &lt;STRONG&gt;customerProfileId&lt;/STRONG&gt; w/o doing any query on your db. So when you try to create a new &lt;STRONG&gt;customerPaymentProfile&lt;/STRONG&gt;, you won't get error code E00114 since opaqueData isn't used yet.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;lessons learned the hard way for us, but hopefully it helps someone.&lt;/P&gt;</description>
      <pubDate>Wed, 04 Dec 2019 12:01:48 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Error-while-adding-new-paymentProfile-quot-code-quot-quot-E00114/m-p/69897#M42834</guid>
      <dc:creator>theorb</dc:creator>
      <dc:date>2019-12-04T12:01:48Z</dc:date>
    </item>
  </channel>
</rss>

