<?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 Basic CIM questions in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/23979#M12883</link>
    <description>&lt;P&gt;I've been reading some of the other posts here on the forum regarding CIM but still have some questions:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) Am I correct in thinking that I should have only one CustomerProfile for each for each of my customers?&amp;nbsp; Does the authorize.net system prevent me from using a single merchantCustomerID more than once?&amp;nbsp; There was a post on here that referred to a duplicate profile error returned by the authorize.net API but I have seen no information to tell me under what circumstances that would occur.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2) Is a credit card or bank account number required when creating a CustomerProfile? The CIM documentation neglects to explicitly specify if this information is required, optional, or conditional.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3) Is it possible to look up an authorize.net customer profile using merchantCustomerId?&amp;nbsp; Looking at GetCustomerProfile, this does not appear to the case.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4) While I find the PDF documentation for CIM linked &lt;A href="http://developer.authorize.net/api/cim/" target="_self"&gt;here&lt;/A&gt; to be pretty useful, it is pretty narrowly focused on the inputs and outputs of the API.&amp;nbsp; Is there a more general source of documentation to show the ins and outs of CIM -- perhaps an overview or tutorial-based documentation?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;5) What is the difference between SOAP and XML guides?&amp;nbsp; If I'm using the PHP code provided by authorize.net, do I even care?&amp;nbsp; From what I can tell, there is no way for me to specify whether I use SOAP or XML.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;6) Where does one specify the web service location when setting up one's PHP code?&amp;nbsp; The documentation refers to Production, Test, and WSDL variants without describing why one would choose one or the other.&amp;nbsp; Additionally, all urls contain 'soap' in them, suggesting they might be inappropriate for an XML implementation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;7) In some of the AIM code examples, I see definition of such constants as AUTHORIZENET_API_LOGIN_ID,&amp;nbsp; AUTHORIZENET_TRANSACTION_KEY, and&amp;nbsp;AUTHORIZENET_SANDBOX.&amp;nbsp; Is defining these in one's own code the proper approach to configuring the authorize.net PHP code?&amp;nbsp; Are there other such constants?&amp;nbsp; Where is this configuration documented? &amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 04 Mar 2012 21:16:49 GMT</pubDate>
    <dc:creator>sneakyimp</dc:creator>
    <dc:date>2012-03-04T21:16:49Z</dc:date>
    <item>
      <title>Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/23979#M12883</link>
      <description>&lt;P&gt;I've been reading some of the other posts here on the forum regarding CIM but still have some questions:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) Am I correct in thinking that I should have only one CustomerProfile for each for each of my customers?&amp;nbsp; Does the authorize.net system prevent me from using a single merchantCustomerID more than once?&amp;nbsp; There was a post on here that referred to a duplicate profile error returned by the authorize.net API but I have seen no information to tell me under what circumstances that would occur.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2) Is a credit card or bank account number required when creating a CustomerProfile? The CIM documentation neglects to explicitly specify if this information is required, optional, or conditional.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3) Is it possible to look up an authorize.net customer profile using merchantCustomerId?&amp;nbsp; Looking at GetCustomerProfile, this does not appear to the case.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4) While I find the PDF documentation for CIM linked &lt;A href="http://developer.authorize.net/api/cim/" target="_self"&gt;here&lt;/A&gt; to be pretty useful, it is pretty narrowly focused on the inputs and outputs of the API.&amp;nbsp; Is there a more general source of documentation to show the ins and outs of CIM -- perhaps an overview or tutorial-based documentation?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;5) What is the difference between SOAP and XML guides?&amp;nbsp; If I'm using the PHP code provided by authorize.net, do I even care?&amp;nbsp; From what I can tell, there is no way for me to specify whether I use SOAP or XML.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;6) Where does one specify the web service location when setting up one's PHP code?&amp;nbsp; The documentation refers to Production, Test, and WSDL variants without describing why one would choose one or the other.&amp;nbsp; Additionally, all urls contain 'soap' in them, suggesting they might be inappropriate for an XML implementation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;7) In some of the AIM code examples, I see definition of such constants as AUTHORIZENET_API_LOGIN_ID,&amp;nbsp; AUTHORIZENET_TRANSACTION_KEY, and&amp;nbsp;AUTHORIZENET_SANDBOX.&amp;nbsp; Is defining these in one's own code the proper approach to configuring the authorize.net PHP code?&amp;nbsp; Are there other such constants?&amp;nbsp; Where is this configuration documented? &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Mar 2012 21:16:49 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/23979#M12883</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-03-04T21:16:49Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/23983#M12885</link>
      <description>&lt;P&gt;1) Depends on how you set up your system. If you have users on your site and associate a customer ID with each user as you create it, then obviously you don't have to worry about duplicate profiles unless the user signs up more than once. If you don't have user profiles, then you might have more than one customer profile per person depending on what info they put in. Shouldn't matter much from a payment perspective, however, since each instance of the person will work equally well so long as the billing info is good. Look in the pdf documentation for the words "Duplicate Profile Verification" and you'll get a list of fields that determine dupes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2) No. You can create a profile with very little info - either an email, merchant customer ID, or description. Billing profiles can be assigned separately.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3) Not as far as I know. You should associate lookup values with profile ID's in your own database.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4) If you're using PHP, you can get a fairly good overview by looking at the CIM.markdown file in the doc folder of the SDK. Note that this is for regular CIM - if using hosted CIM to avoid PCI requirements, you'll need to look in the documentation to find out how to do that, or try to reverse-engineer the demo application.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;5) No idea. I use the XML guide.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;6) If you're using the PHP API, the URL's are set in the AuthorizeNetCim.php file in the lib folder. No need to mess with them, however, since the API chooses where to send the transaction depending on whether you set sandbox mode or not. I always set it at the class level, something like this (for a developer / sandbox account):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;$request = new AuthorizeNetCIM;
$request-&amp;gt;setSandbox(true);&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;Always use your account in live mode, incidently - test mode isn't as good at simulating things.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;7) It's generally bad practice (in my opinion) to set those in the overall config. I always use a fresh, totally unconfigured SDK, and set things at the transaction level. To add to the above:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;$request = new AuthorizeNetCIM(
    'login_id', 'transaction_key');
$request-&amp;gt;setSandbox(true);

// or...

$request = new AuthorizeNetCIM(
    $GLOBALS['_login_id'], $GLOBALS['_transaction_key']);
$request-&amp;gt;setSandbox(true);

// Where the globals are set in some master settings file for your site, separate from the SDK.&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;The best illustration of all the options is in the AIM.markdown file in your doc folder. It shows all the variants.&lt;/P&gt;</description>
      <pubDate>Sun, 04 Mar 2012 22:22:38 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/23983#M12885</guid>
      <dc:creator>TJPride</dc:creator>
      <dc:date>2012-03-04T22:22:38Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24629#M13195</link>
      <description>&lt;P&gt;OK thanks so much for the response!&amp;nbsp; For some reason I was not notified.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have made some progress.&amp;nbsp; The markdown files are somewhat useful (and I've been reading some of the source) but I still wonder how certain things work.&amp;nbsp; There are a few test cases I expect to deal with.&amp;nbsp; NOTE that I am using CIM exclusively here via the PHP API:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) A customer has no existing customer profile or payment profiles at authorize.net.&lt;/P&gt;&lt;P&gt;In this situation, I look at my records for a given user and there are *NO* id's stored for any customer profiles or payment profiles at authorize.net.&amp;nbsp; I therefore need to create them both.&amp;nbsp; I assume in this case that I can more or less construct a AuthorizeNetCustomer object with nested&amp;nbsp;AuthorizeNetPaymentProfile (assigned like so:&amp;nbsp;$customerProfile-&amp;gt;paymentProfiles[] = $paymentProfile;) as detailed in the markdown file and then call the api thusly:&lt;/P&gt;&lt;PRE&gt;$request = new AuthorizeNetCIM(MY_API_LOGIN, MY_API_TRANSACTION_KEY);
$request-&amp;gt;setSandbox(MY_SANDBOX_VALUE);
$request-&amp;gt;setLogFile(MY_LOG_LOCATION);

$response = $request-&amp;gt;createCustomerProfile($customerProfile);&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Q1: What methods of the $response object are valid for this particular request?&amp;nbsp; I see two different methods defined in the $response class for both getting a customer profile id and for getting a payment profile id:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $response-&amp;gt;getPaymentProfileId();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$response-&amp;gt;getCustomerPaymentProfileIds();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$response-&amp;gt;getCustomerProfileId();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$response-&amp;gt;getCustomerProfileIds();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2) Scenario 2 is where I have previously stored an authorizenet customer profile id in my system so I am guessing it's safe to assume this profile exists on the authorize.net system.&amp;nbsp; I am guessing that I must take care in my code to use the different request createCustomerPaymentProfile and supply the customer profile id I had stored before.&amp;nbsp; More questions come to mind&lt;/P&gt;&lt;P&gt;Q2: What would happen if I assembled a createCustomerProfile call just like I did in scenario 1.&amp;nbsp; Would it cause an error?&amp;nbsp; Or is authorize.net's gateway smart enough to know that I just want to attach a new payment profile to the existing customer profile?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Q3: Are there any circumstances under which authorize.net may have dropped a customer profile such that when I attempt createCustomerPaymentProfile there is an error?&amp;nbsp; How would I know this had happened?&amp;nbsp; The markdown documents don't show any error-handling examples.&lt;/P&gt;&lt;P&gt;Q4: Suppose a customer opted not to use an existing payment profile but instead wanted to enter a new card number but they mistakenly re-entered a cc number for which a payment profile already exists.&amp;nbsp; Will that cause an error?&amp;nbsp; Will the system permit an identical record?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Mar 2012 04:51:55 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24629#M13195</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-03-19T04:51:55Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24631#M13196</link>
      <description>&lt;P&gt;I'm also wondering a couple of other things:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Can one re-use a $request object after performing some other function?&amp;nbsp; E.g.:&lt;/P&gt;&lt;P&gt;// build $customerProfile object here&lt;/P&gt;&lt;P&gt;$response = $request-&amp;gt;createCustomerProfile($customerProfile);&lt;/P&gt;&lt;P&gt;// build $transaction object here and re-use $reqest object&lt;/P&gt;&lt;P&gt;$response = $request-&amp;gt;createCustomerProfileTransaction("AuthCapture", $transaction);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does that work or must we create a new $request object?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* The examples I've seen in the markdown files don't show any error checking for profile and payment profile and transaction requests.&amp;nbsp; Given that we're making a request via ssl across a network, it seems obvious that failure is a possibility for a variety of reasons.&amp;nbsp; Where might I find some examples of best practices here?&amp;nbsp; Do these functions throw exceptions when they fail?&amp;nbsp; Is there an error condition we can check for after they complete to make sure they were successful? What about response codes for createCustomerProfileTransactionRequest?&amp;nbsp; Does one use the same techniques shown in the AIM markdown?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$response = $request-&amp;gt;createCustomerProfileTransaction("AuthCapture", $transaction);&lt;BR /&gt;$response-&amp;gt;response_code;&lt;BR /&gt;$response-&amp;gt;response_subcode;&lt;BR /&gt;$response-&amp;gt;response_reason_code;&lt;BR /&gt;$response-&amp;gt;transaction_id;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Mar 2012 05:30:03 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24631#M13196</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-03-19T05:30:03Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24635#M13198</link>
      <description>&lt;P&gt;Probably these:&lt;/P&gt;&lt;P&gt;$response-&amp;gt;getCustomerProfileId();&lt;/P&gt;&lt;P&gt;$response-&amp;gt;getCustomerPaymentProfileIds();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could theoretically create the profile with more than one payment profile. There will, however, only ever be one customer profile in the response.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you try to create a profile for a customer who already has a profile, you get CIM error E00039 and the duplicate profile ID is returned. Just use that. Figuring out what to do with the duplicate profile is a more complicated issue, since there will already be a payment entry and it may not be the same as the one the customer entered the second time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Creating a profile can fail, just like any operation. Check for errors, proceed accordingly. Your best bet is to trigger some errors on purpose and do a print_r of the $response so you can see what you get back.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you don't want to deal with the hassle of managing payment or shipping profiles, just implement hosted CIM for those. Essentially, you'd use iframe popups hosted by Authorize.net, then update your page once the user is done using them and use getCustomerProfile to populate pulldowns with masked card numbers and so on so the user can choose which payment profile to pay with.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Overall, your best strategy is probably to call things and print_r($response). That'll make most things fairly obvious.&lt;/P&gt;</description>
      <pubDate>Mon, 19 Mar 2012 07:29:16 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24635#M13198</guid>
      <dc:creator>TJPride</dc:creator>
      <dc:date>2012-03-19T07:29:16Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24861#M13296</link>
      <description>&lt;P&gt;Thanks yet again for your helpful response.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately, I have been using print_r to see the response and I see that an AuthorizeNetCIM_Response is what comes back and this object has 3 member variables:&lt;/P&gt;&lt;P&gt;* xml - SimpleXMLElement object&lt;/P&gt;&lt;P&gt;* response - a lengthy string that appears to contain the raw xml of the response&lt;/P&gt;&lt;P&gt;* xpath_xml - another, separate SimpleXMLElement object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'd prefer, if possible, to use the PHP code provided by authorize.net to parse these objects and extract the data I need rather than attempting some misguided effort at parsing XML myself or trying to navigate these objects. I'm shocked that not one of the markdown documents in the 'doc' folder for CIM's PHP library even bothers to mention the word 'error'.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I see that this call:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $response = $request-&amp;gt;createCustomerProfile($customerProfile);&lt;/P&gt;&lt;P&gt;returns a response object where I can do the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;echo $response-&amp;gt;getResultCode()&lt;/P&gt;&lt;P&gt;* returns 'Ok' for successful attempt.&lt;/P&gt;&lt;P&gt;* returns 'Error' for unsuccessful attempt?&lt;/P&gt;&lt;P&gt;I find it surprising that the possible results of this function are not documented in the PHP source.&amp;nbsp; One must go to the raw API document to find it. Having looked at the PHP source, the functions $response-&amp;gt;isOK() and $response-&amp;gt;isError() just check $response-&amp;gt;getResultCode() to see if it is Ok or Error, respectively.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$response-&amp;gt;getCustomerProfileId();&lt;/P&gt;&lt;P&gt;* returns the authorize.net ID for the newly created profile as a string rather than a numeric value.&lt;/P&gt;&lt;P&gt;* populated on error?? not specified.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$response-&amp;gt;getCustomerPaymentProfileIds();&lt;/P&gt;&lt;P&gt;* although the name implies an array or collection of some kind, this also seems to return a single string containing the authorize.net id for a customer payment profile&lt;/P&gt;&lt;P&gt;* returns ??? if more than one profile is created?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've also tried to take the customer payment profile and create a transaction with it using more or less the same code in the markdown example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $transaction = new AuthorizeNetTransaction;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$transaction-&amp;gt;amount = MY_ANNUAL_SUBSCRIPTION_COST;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $transaction-&amp;gt;customerProfileId = $authorizenet_customer_profile_id;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$transaction-&amp;gt;customerPaymentProfileId = $authorizenet_payment_profile_id;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$lineItem&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = new AuthorizeNetLineItem;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//$lineItem-&amp;gt;itemId&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "4";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$lineItem-&amp;gt;name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "Annual Subscription to example.com";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$lineItem-&amp;gt;description = "An annual subscription to allow enhanced activities on example.com";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$lineItem-&amp;gt;quantity&amp;nbsp;&amp;nbsp;&amp;nbsp; = "1";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$lineItem-&amp;gt;unitPrice&amp;nbsp;&amp;nbsp; = MY_ANNUAL_SUBSCRIPTION_COST;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$transaction-&amp;gt;lineItems[] = $lineItem;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $response = $request-&amp;gt;createCustomerProfileTransaction("AuthCapture", $transaction);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_r($response);&lt;BR /&gt;&lt;BR /&gt;The result is an another triple-xml object that appears to have an error:&lt;/P&gt;&lt;P&gt;[code] =&amp;gt; E00003&lt;BR /&gt;[text] =&amp;gt; The element 'lineItems' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd' has invalid child element 'name' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd'. List of possible elements expected: 'itemId' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I don't understand why 'name' would cause a problem because it is explicitly mentioned in the api documentation and also used in the markdown examples.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, itemId is specified in the markdown examples but the documentation doesn't say what this is for -- is it a product id on my system?&amp;nbsp; Is it only meaningful in the context of one transaction?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any answers would be much appreciated.&amp;nbsp; I'm making progress but have been dramatically slowed down by the ad-hoc nature of the documentation.&lt;/P&gt;</description>
      <pubDate>Fri, 23 Mar 2012 04:06:47 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24861#M13296</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-03-23T04:06:47Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24869#M13300</link>
      <description>&lt;P&gt;The xml part of the response may be -named- xml, but should actually be nested arrays representing the xml after it's been parsed. I generally use that myself. Go ahead and do a print_r of your response, then view source on your page (so it nests properly) and copy and paste it here.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The profile ID obviously won't be populated unless one is created. I imagine you'll get an array back from getCustomerPaymentProfileIds() if there's more than one - just check the field type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Item ID is just whatever internal product code you decide to supply. Authorize.net doesn't care what it is. The specific error you're getting is a bug having to do with the fields being out of order, probably because itemId is expected but not being included. Finding the specific line of code that causes that might be a bit difficult, though.&lt;/P&gt;</description>
      <pubDate>Fri, 23 Mar 2012 06:41:47 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24869#M13300</guid>
      <dc:creator>TJPride</dc:creator>
      <dc:date>2012-03-23T06:41:47Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24941#M13332</link>
      <description>&lt;P&gt;Thank you so much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OK I think I'm starting to feel somewhat comfortable with the idea of handling these transaction responses.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm moving on to actually completing transactions.&amp;nbsp; My primary consideration is that I'd like to store details about each transaction on my system, but I am unsure what the nature of the responses are.&amp;nbsp; For instance, there's a whole comprehensive list of properties defined in the class AuthorizeNetResponse but I have no idea what the data format of these items is or how I might define my database table to accommodate these data values.&amp;nbsp; For example, what's the maximum length required for response_reason_text?&amp;nbsp; The response to a createCustomerProfileTransaction call is apparently an object of type&amp;nbsp;AuthorizeNetAIM_Response and I've checked the&amp;nbsp;&lt;A target="_blank" href="http://www.authorize.net/support/AIM_guide.pdf"&gt;AIM documentation&lt;/A&gt; but this document doesn't seem to describe any data types or values for the response elements.&amp;nbsp; Is there somewhere I can find out the data types/sizes for elements of a AuthorizeNetAIM_Response object (which inherits from AuthorizeNetResponse?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, how consistent can I expect the responses to be in data format?&amp;nbsp; I see that the constructor function for&amp;nbsp; AuthorizeNetAIM_Response accepts a $custom_fields parameter.&amp;nbsp; I reckon that if I want a comprehensive archive of all my transaction responses, I'll need to just log a text file as the responses may have extra data depending on circumstances?&lt;/P&gt;</description>
      <pubDate>Mon, 26 Mar 2012 00:09:54 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24941#M13332</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-03-26T00:09:54Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24943#M13333</link>
      <description>&lt;P&gt;Ah!&amp;nbsp; I see the docs do record information about how lengthy these fields are.&amp;nbsp; My mistake.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Still wondering how consistent gateway responses might be.&lt;/P&gt;</description>
      <pubDate>Mon, 26 Mar 2012 00:56:26 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24943#M13333</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-03-26T00:56:26Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24947#M13335</link>
      <description>&lt;P&gt;The CIM XML documentation should give you a pretty good idea of what's coming back. See the Responses -&amp;gt; CIM Responses section and also the Response Codes section.&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://www.authorize.net/support/CIM_XML_guide.pdf"&gt;http://www.authorize.net/support/CIM_XML_guide.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Personally, for logging purposes I just log print_r() output to a text file or to a TEXT field in my MySQL database (up to 65536 characters, variable-length). That way I don't really need to worry about what format the response is in.&lt;/P&gt;</description>
      <pubDate>Mon, 26 Mar 2012 01:25:36 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/24947#M13335</guid>
      <dc:creator>TJPride</dc:creator>
      <dc:date>2012-03-26T01:25:36Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25095#M13406</link>
      <description>&lt;P&gt;OK I finally have some transactions happening.&amp;nbsp; Lots of trial and erorr involved.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The problem I'm having now is that a comma is a really poor choice for delimiter -- or there's something wrong with the gateway's response.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I see that a CIM response ALWAYS constructs a response using a comma as a delimiter:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;class AuthorizeNetCIM_Response extends AuthorizeNetXMLResponse&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @return AuthorizeNetAIM_Response&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function getTransactionResponse()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // NOTE THE SECOND PARAMETER IS A COMMA&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new AuthorizeNetAIM_Response($this-&amp;gt;_getElementContents("directResponse"), ",", "", array());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;...&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's my understanding that one must tell the gateway with the outgoing request what delimiter to use so that when the response arrives, it is using the correct delimiters.&amp;nbsp; Is there some way to specify this using the PHP api?&amp;nbsp; As we see i the code sample above, the comma appears to be hard-wired for parsing CIM transaction results.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Mar 2012 22:12:14 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25095#M13406</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-03-28T22:12:14Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25103#M13410</link>
      <description>&lt;P&gt;I think the results come back as XML, and you should be able to access the parsed XML rather than going through the functions. directResponse is only one of the returned elements. Try doing a print_r() and exploring the structure.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EDIT: And yes, you can go into your control panel and change the delimiter with Settings -&amp;gt; Transaction Response Settings -&amp;gt; Direct Response, then edit the functions for the new delimiter. However, this may affect other API's as well, so keep that in mind.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Mar 2012 04:21:15 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25103#M13410</guid>
      <dc:creator>TJPride</dc:creator>
      <dc:date>2012-03-29T04:21:15Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25223#M13467</link>
      <description>&lt;P&gt;I suspect I will need to modify the PHP library files in order to effectively get a non-comma delimiter working, which bums me out a bit.&amp;nbsp;&amp;nbsp; I'll probably call tech support and let them know that someone should fix that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I truly appreciate your generous assistance here.&amp;nbsp; I have another fairly critical question.&amp;nbsp; I see that the gateway can return a response_code of 'held' and I'm wondering how to deal with a response like this.&amp;nbsp; I'm guessing that this might result when I attempt a transaction pending some kind of approval, but I totally unsure how I am to be notified of the held funds being delivered/released at a later time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do I need to also configure some other page so that authorize.net might deliver asynchronous events to my system?&amp;nbsp; I.e., something like a silent post form or something? Does authorize.net support asynchronous payment events with this PHP library?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;'&lt;/P&gt;</description>
      <pubDate>Sun, 01 Apr 2012 23:46:34 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25223#M13467</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-04-01T23:46:34Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25331#M13520</link>
      <description>&lt;P&gt;There is no specific functionality in the php SDK designed to let you change the delmiting character.&amp;nbsp; However, it is possible to pass the x_delim_char variable within the extraOptions tag which is exposed by the SDK.&amp;nbsp; In regards to your second question about asynchronous communication, this is not relevant to our CIM APIs.&lt;/P&gt;</description>
      <pubDate>Tue, 03 Apr 2012 22:35:16 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25331#M13520</guid>
      <dc:creator>Trevor</dc:creator>
      <dc:date>2012-04-03T22:35:16Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25333#M13521</link>
      <description>&lt;P&gt;I believe that passing any $extraOptions via the PHP SDK would likely cause a failure when your PHP library tries to parse any results from the gateway because your PHP code has no means by which you could change the expected delimiter. As you can see in my post from 3/28 above, the method getTransactionResponse of the class&amp;nbsp;AuthorizeNetCIM_Response has a hard-coded reference to the comma as a delimiter.&amp;nbsp; This seems like a pretty simple fix and would be very nice to have as commas frequently appear on my data -- especially addresses.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As for the need for asynchronous notifications, I believe it IS relevant to your CIM APIS because I have instantiated an AuthorizeNETCIM object:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $request = new AuthorizeNetCIM(AUTHORIZENET_API_LOGIN_ID, AUTHORIZENET_TRANSACTION_KEY);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have used that CIM object to create a transaction with a CIM customerProfile and customerPaymentProfile:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $response = $request-&amp;gt;createCustomerProfileTransaction("AuthCapture", $transaction);&lt;BR /&gt;&lt;BR /&gt;And when I extract the response of my CIM object:&lt;/P&gt;&lt;P&gt;$transactionResponse = $response-&amp;gt;getTransactionResponse();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then the response might yield a value of AuthorizeNetResponse::HELD.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If the result of this transaction is HELD, it is my guess that I will probably need to respond to some future event asynchronously, correct?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Apr 2012 22:56:22 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25333#M13521</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-04-03T22:56:22Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25415#M13562</link>
      <description>&lt;P&gt;Transactions that are "held" require a manual review by the merchant within their Authorize.Net account.&amp;nbsp; There is no API notification whether these transactions are manually approved or declined at a later time.&amp;nbsp; It is up to the merchant to make any necessary modificaiton in thier order management system or shopping cart after they have determined what action to take on the order.&lt;/P&gt;</description>
      <pubDate>Thu, 05 Apr 2012 21:02:09 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25415#M13562</guid>
      <dc:creator>Trevor</dc:creator>
      <dc:date>2012-04-05T21:02:09Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25667#M13685</link>
      <description>&lt;P&gt;Thanks for the clarification, Trevor.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Another question.&amp;nbsp; When i try to create a Customer Profile and the gateway returns error type E00039:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A duplicate record with ID 1234567 already exists&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is it safe for me to parse that error and use the other ID?&amp;nbsp; Can anyone think of any reason why this might compromise security?&amp;nbsp; Also, is the format of this error likely to change?&amp;nbsp; If I plan to parse it and the text is changed, I could end up with the wrong id.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 15 Apr 2012 00:41:31 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25667#M13685</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-04-15T00:41:31Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25687#M13693</link>
      <description>&lt;P&gt;This is a bit of an interesting question.&amp;nbsp; Our general policy is not to make any guarantees about the precise text for responses, but obviously this response is unique.&amp;nbsp; My expectation is that this this error text will never change, but there is always a possibility that changes to the API make a change unavoidable.&amp;nbsp; I can tell you that we always try to avoid any changes to our existing API behavior and we announce changes in advance if they have a chance of breaking existing implementations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With all of that being said, I cannot currently think of any reason that we would have a need to change this text.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2012 22:03:44 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25687#M13693</guid>
      <dc:creator>Trevor</dc:creator>
      <dc:date>2012-04-16T22:03:44Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25947#M13817</link>
      <description>&lt;P&gt;I'm pleased to report that I've made progress and am testing my form.&amp;nbsp; I'm still wondering how to respond to circumstances where my locally stored profile data is in conflict with the information stored by the gateway.&amp;nbsp; IN particular, these:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) Local data has no payment profiles stored for a user but gateway returns "E00039&amp;nbsp;A duplicate customer payment profile already exists." The gateway doesn't tell us what the profile id is so we can't delete it or fetch it or use it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2) Local data has a customerProfileId stored which the gateway doesn't recognize.&amp;nbsp; I'm guessing I should wipe all of my customer profile data (and payment profile data) and try to re-create them but I'm worried about the duplicate profile and duplicate payment profile errors.&lt;/P&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;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Apr 2012 19:02:12 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/25947#M13817</guid>
      <dc:creator>sneakyimp</dc:creator>
      <dc:date>2012-04-24T19:02:12Z</dc:date>
    </item>
    <item>
      <title>Re: Basic CIM questions</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/26039#M13863</link>
      <description>&lt;P&gt;When a "duplicate customer payment profile" message is returned, the simplest action is to run a "getCustomerProfileRequest" to update the list of payment profiles that you have on file for the customer.&amp;nbsp; This should avoid any sync issues between your database and what is in Authorize.Net.&lt;/P&gt;</description>
      <pubDate>Thu, 26 Apr 2012 21:57:08 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Basic-CIM-questions/m-p/26039#M13863</guid>
      <dc:creator>Trevor</dc:creator>
      <dc:date>2012-04-26T21:57:08Z</dc:date>
    </item>
  </channel>
</rss>

