cancel
Showing results for 
Search instead for 
Did you mean: 

Customer profile is not presented in GetTransactionList and GetTransactionDetails responses

On March 4th, 2017 new Enhanced Customer Profile Reporting, was announced with declaration:

The GetTransactionList, GetUnsettledTransactionList and GetTransactionDetails APIs will now return the customer profile and payment profile IDs used to create a transaction.

  

Documentation was updated, but this features seem not to be implemented. Also there are some other discrepancy in documentation and real API response.

 

Get Transaction List:

Important: <profile/> field is not presented in <transaction/>.

More: <marketType/> field described in documentation as a digit from 0 to 2, which stands for eCommerce, MOTO or retail accordingly. But in response this field presented as a string value, e.g. <marketType>eCommerce<marketType/> instead of <marketType>0<marketType/>.

 

Here is a listing from the 'Try it' block (some data was masked as XXXX):

Request:

 

<getTransactionListRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
    <merchantAuthentication>
        <name><![CDATA[XXXX]]></name>
        <transactionKey>XXXX</transactionKey>
    </merchantAuthentication>
    <clientId><![CDATA[sdk-php-1.9.3]]></clientId>
    <refId><![CDATA[ref_591d75e507fcb]]></refId>
    <batchId><![CDATA[7125336]]></batchId>
    <paging>
      <limit>1000</limit>
      <offset>1</offset>
    </paging>
</getTransactionListRequest>

 

Response:

 

<?xml version="1.0" encoding="utf-8"?> 
<getTransactionListResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <refId>ref_591d75e507fcb</refId>
  <messages>
    <resultCode>Ok</resultCode>
    <message>
      <code>I00001</code>
      <text>Successful.</text>
    </message>
  </messages>
  <transactions>
    <transaction>
      <transId>60023782165</transId>
      <submitTimeUTC>2017-05-16T13:03:10Z</submitTimeUTC>
      <submitTimeLocal>2017-05-16T06:03:10</submitTimeLocal>
      <transactionStatus>settledSuccessfully</transactionStatus>
      <invoiceNumber>XXXX</invoiceNumber>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <accountType>XXXX</accountType>
      <accountNumber>XXXX</accountNumber>
      <settleAmount>100.00</settleAmount>
      <marketType>eCommerce</marketType><!-- 'eCommerce' instead of 0 -->
      <product>Card Not Present</product>
      <!-- <profile/> field is absent -->
    </transaction>
    <transaction>
      <transId>60023781849</transId>
      <submitTimeUTC>2017-05-16T12:55:15Z</submitTimeUTC>
      <submitTimeLocal>2017-05-16T05:55:15</submitTimeLocal>
      <transactionStatus>settledSuccessfully</transactionStatus>
      <invoiceNumber>XXXX</invoiceNumber>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <accountType>XXXX</accountType>
      <accountNumber>XXXX</accountNumber>
      <settleAmount>100.00</settleAmount>
      <marketType>eCommerce</marketType><!-- 'eCommerce' instead of 0 -->
      <product>Card Not Present</product>
      <!-- <profile/> field is absent -->
    </transaction>
    <transaction>
      <transId>60023769115</transId>
      <submitTimeUTC>2017-05-16T08:39:57Z</submitTimeUTC>
      <submitTimeLocal>2017-05-16T01:39:57</submitTimeLocal>
      <transactionStatus>settledSuccessfully</transactionStatus>
      <invoiceNumber>XXXX</invoiceNumber>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <accountType>XXXX</accountType>
      <accountNumber>XXXX</accountNumber>
      <settleAmount>33.33</settleAmount>
      <marketType>eCommerce</marketType><!-- 'eCommerce' instead of 0 -->
      <product>Card Not Present</product>
      <subscription>
        <id>4369712</id>
        <payNum>4</payNum>
      </subscription>
      <!-- <profile/> field is absent -->
    </transaction>
    <transaction>
      <transId>60023768796</transId>
      <submitTimeUTC>2017-05-16T08:39:50Z</submitTimeUTC>
      <submitTimeLocal>2017-05-16T01:39:50</submitTimeLocal>
      <transactionStatus>settledSuccessfully</transactionStatus>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <accountType>XXXX</accountType>
      <accountNumber>XXXX</accountNumber>
      <settleAmount>5833.33</settleAmount>
      <marketType>eCommerce</marketType><!-- 'eCommerce' instead of 0 -->
      <product>Card Not Present</product>
      <subscription>
        <id>4347118</id>
        <payNum>5</payNum>
      </subscription>
      <!-- <profile/> field is absent -->
    </transaction>
    <transaction>
      <transId>60023707281</transId>
      <submitTimeUTC>2017-05-15T08:39:27Z</submitTimeUTC>
      <submitTimeLocal>2017-05-15T01:39:27</submitTimeLocal>
      <transactionStatus>settledSuccessfully</transactionStatus>
      <invoiceNumber>XXXX</invoiceNumber>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <accountType>XXXX</accountType>
      <accountNumber>XXXX</accountNumber>
      <settleAmount>33.33</settleAmount>
      <marketType>eCommerce</marketType><!-- 'eCommerce' instead of 0 -->
      <product>Card Not Present</product>
      <subscription>
        <id>4388793</id>
        <payNum>3</payNum>
      </subscription>
      <!-- <profile/> field is absent -->
    </transaction>
    <transaction>
      <transId>60023706771</transId>
      <submitTimeUTC>2017-05-15T08:39:14Z</submitTimeUTC>
      <submitTimeLocal>2017-05-15T01:39:14</submitTimeLocal>
      <transactionStatus>settledSuccessfully</transactionStatus>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <accountType>XXXX</accountType>
      <accountNumber>XXXX</accountNumber>
      <settleAmount>166.66</settleAmount>
      <marketType>eCommerce</marketType><!-- 'eCommerce' instead of 0 -->
      <product>Card Not Present</product>
      <subscription>
        <id>4346594</id>
        <payNum>5</payNum>
      </subscription>
      <!-- <profile/> field is absent -->
    </transaction>
    <transaction>
      <transId>60023674635</transId>
      <submitTimeUTC>2017-05-14T08:43:30Z</submitTimeUTC>
      <submitTimeLocal>2017-05-14T01:43:30</submitTimeLocal>
      <transactionStatus>settledSuccessfully</transactionStatus>
      <invoiceNumber>XXXX</invoiceNumber>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <accountType>XXXX</accountType>
      <accountNumber>XXXX</accountNumber>
      <settleAmount>31.66</settleAmount>
      <marketType>eCommerce</marketType><!-- 'eCommerce' instead of 0 -->
      <product>Card Not Present</product>
      <subscription>
        <id>4367953</id>
        <payNum>4</payNum>
      </subscription>
      <!-- <profile/> field is absent -->
    </transaction>
  </transactions>
  <totalNumInResultSet>7</totalNumInResultSet>
</getTransactionListResponse>

 

Get Transaction Details:

Important: <profile/> field is not presented in <transaction/>;

<type/> field is not presented in <customer/>.

More: <authAmount/> and <settleAmount/> were moved out from the <order/> tag;

<accountType/> renamed to <cardType/>;

<marketType/> field described in documentation as a digit from 0 to 2, which stands for eCommerce, MOTO or retail accordingly. But in response this field presented as a string value, e.g. <marketType>eCommerce<marketType/> instead of <marketType>0<marketType/>.

 

Here is a listing from the 'Try it' block (some data was masked as XXXX):

Request:

<getTransactionDetailsRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <merchantAuthentication>
    <name><![CDATA[XXXX]]></name>
    <transactionKey>XXXX</transactionKey>
  </merchantAuthentication>
  <clientId><![CDATA[sdk-php-1.9.3]]></clientId>
  <refId><![CDATA[ref_591d6bf0d212a]]></refId>
  <transId><![CDATA[60023782165]]></transId>
</getTransactionDetailsRequest>

 

Response:

<?xml version="1.0" encoding="utf-8"?> 
<getTransactionDetailsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <refId>ref_591d6bf0d212a</refId>
  <messages>
    <resultCode>Ok</resultCode>
    <message>
      <code>I00001</code>
      <text>Successful.</text>
    </message>
  </messages>
  <transaction>
    <transId>60023782165</transId>
    <submitTimeUTC>2017-05-16T13:03:10.773Z</submitTimeUTC>
    <submitTimeLocal>2017-05-16T06:03:10.773</submitTimeLocal>
    <transactionType>authCaptureTransaction</transactionType>
    <transactionStatus>settledSuccessfully</transactionStatus>
    <responseCode>1</responseCode>
    <responseReasonCode>1</responseReasonCode>
    <responseReasonDescription>Approval</responseReasonDescription>
    <authCode>XXXX</authCode>
    <AVSResponse>Y</AVSResponse>
    <cardCodeResponse>P</cardCodeResponse>
    <batch>
      <batchId>7125336</batchId>
      <settlementTimeUTC>2017-05-17T01:33:29.257Z</settlementTimeUTC>
      <settlementTimeLocal>2017-05-16T18:33:29.257</settlementTimeLocal>
      <settlementState>settledSuccessfully</settlementState>
    </batch>
    <order>
      <invoiceNumber>XXXX</invoiceNumber>
      <description>XXXX</description>
      <!-- <authAmount/> field is absent -->
      <!-- <settleAmount/> field is absent -->
    </order>
    <authAmount>100.00</authAmount><!-- was moved out from the <order/> -->
    <settleAmount>100.00</settleAmount><!-- was moved out from the <order/> -->
    <taxExempt>false</taxExempt>
    <payment>
      <creditCard>
        <cardNumber>XXXX</cardNumber>
        <expirationDate>XXXX</expirationDate>
        <cardType>XXXX</cardType><!-- should be <accountType/> -->
      </creditCard>
    </payment>
    <customer>
      <!-- <type/> field is absent -->
      <id>XXXX</id>
      <email>XXXX</email>
    </customer>
    <billTo>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <address>XXXX</address>
      <city>XXXX</city>
      <state>XXXX</state>
      <zip>XXXX</zip>
      <country>XXXX</country>
      <phoneNumber>XXXX</phoneNumber>
    </billTo>
    <recurringBilling>false</recurringBilling>
    <customerIP>XXXX</customerIP>
    <product>Card Not Present</product>
    <marketType>eCommerce</marketType><!-- 'eCommerce' instead of 0 -->
    <!-- <profile/> field is absent -->
  </transaction>
  <clientId>sdk-php-1.9.3</clientId>
  <transrefId>ref_591af88d643b8</transrefId>
</getTransactionDetailsResponse>

 

kos
Member
1 ACCEPTED SOLUTION

Accepted Solutions

Thanks for the samples.

 

<createProfile>true</createProfile> is a shortcut to allow you to do two separate steps with one API call. It's creating a new transaction, then making a profile from an existing transaction (the existing transaction being the one it just did within this request).

 

The process of creating a profile from an existing transaction does not not associate that existing transaction to the profile that it creates. It's literally just creating a profile using the information that it has pulled out of that existing transaction. It's working as designed.

 

However, you're not the first one to assume that the transaction ID given would then be associated with the newly created profile. This same idea has already been posted onto our Ideas Forum where others can take a look, contribute feedback, and vote for new features.

 

Here's the specific idea post for that idea. That post links to an original thread with some workflow workarounds. I'd encourage you to look at that idea post and vote on it if you'd like to support that specific idea for improvement.

 

With regards to your previous documentation problems you've pointed out, we've got them fixed on our end, and are just waiting for them to get deployed to the production web site.

 

Thanks again!

 

 

View solution in original post

4 REPLIES 4

Hi @kos,

 

First off, thanks! Thank you so much for the detailed information. There's definitely a couple of things in there that we can fix in the documentation right away.

 

With regards to the <profile> element not coming back in your responses, I'm not able to duplicate. If I charge a profile, then retrieve transaction details for that transaction, I get the <profile> element correctly.

 

<?xml version="1.0" encoding="utf-8"?>
<getTransactionDetailsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
    <messages>
        <resultCode>Ok</resultCode>
        <message>
            <code>I00001</code>
            <text>Successful.</text>
        </message>
    </messages>
    <transaction>
        <transId>60023912678</transId>
        <submitTimeUTC>2017-05-18T17:36:34.35Z</submitTimeUTC>
        <submitTimeLocal>2017-05-18T11:36:34.35</submitTimeLocal>
        <transactionType>authOnlyTransaction</transactionType>
        <transactionStatus>authorizedPendingCapture</transactionStatus>
        <responseCode>1</responseCode>
        <responseReasonCode>1</responseReasonCode>
        <responseReasonDescription>Approval</responseReasonDescription>
        <authCode>YJOEIK</authCode>
        <AVSResponse>Y</AVSResponse>
        <cardCodeResponse>P</cardCodeResponse>
        <order>
            <invoiceNumber>INV-12345</invoiceNumber>
            <description>Product Description</description>
            <purchaseOrderNumber>456654</purchaseOrderNumber>
        </order>
        <authAmount>43.00</authAmount>
        <settleAmount>43.00</settleAmount>
        <tax>
            <amount>4.26</amount>
            <description>level2 tax</description>
        </tax>
        <shipping>
            <amount>4.26</amount>
            <description>level2 tax</description>
        </shipping>
        <duty>
            <amount>8.55</amount>
            <description>duty description</description>
        </duty>
        <lineItems>
            <lineItem>
                <itemId>1</itemId>
                <name>vase</name>
                <description>Cannes logo</description>
                <quantity>18.00000</quantity>
                <unitPrice>45.00</unitPrice>
                <taxable>false</taxable>
            </lineItem>
        </lineItems>
        <taxExempt>false</taxExempt>
        <payment>
            <creditCard>
                <cardNumber>XXXX0015</cardNumber>
                <expirationDate>XXXX</expirationDate>
                <cardType>MasterCard</cardType>
            </creditCard>
        </payment>
        <customer>
            <type>individual</type>
            <id>99999456654</id>
        </customer>
        <recurringBilling>false</recurringBilling>
        <customerIP>192.168.1.1</customerIP>
        <product>Card Not Present</product>
        <marketType>eCommerce</marketType>
        <profile>
            <customerProfileId>1811640796</customerProfileId>
            <customerPaymentProfileId>1806156096</customerPaymentProfileId>
        </profile>
    </transaction>
    <transrefId>123456</transrefId>
</getTransactionDetailsResponse>

 

Can you give me more information on the transactions in your example? Were they charged using a "Charge a profile" request, or some other way? Any steps you can give me to duplicate?

Aaron
All Star

Hi @Aaron,

 

Thank you for reply.

 

I have made some research and found out that transaction which was created for existed customer profile will have 'customerType' and 'profile' fields in response, but transaction with <createProfile>true</createProfile> will not link this transaction to the profile it creates.

 

Create Transaction for the new customer:

<?xml version="1.0" encoding="UTF-8"?>
<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <merchantAuthentication>
    <name><![CDATA[XXXX]]></name>
    <transactionKey>XXXX</transactionKey>
  </merchantAuthentication>
  <clientId><![CDATA[sdk-php-1.9.3]]></clientId>
  <refId><![CDATA[ref_591f15f4e5832]]></refId>
  <transactionRequest>
    <transactionType><![CDATA[authCaptureTransaction]]></transactionType>
    <amount>100</amount>
    <payment>
      <creditCard>
        <cardNumber>xxxx</cardNumber>
        <expirationDate>xxxx</expirationDate>
        <cardCode>xxxx</cardCode>
      </creditCard>
    </payment>
    <profile>
      <createProfile>true</createProfile>
    </profile>
    <order>
      <invoiceNumber><![CDATA[XXXX]]></invoiceNumber>
      <description><![CDATA[XXXX]]></description>
    </order>
    <customer>
      <type><![CDATA[individual]]></type>
      <id><![CDATA[79]]></id>
      <email><![CDATA[XXXX]]></email>
    </customer>
    <billTo>
      <firstName><![CDATA[XXXX]]></firstName>
      <lastName><![CDATA[XXXX]]></lastName>
      <address><![CDATA[XXXX]]></address>
      <city><![CDATA[XXXX]]></city>
      <state><![CDATA[XXXX]]></state>
      <zip><![CDATA[XXXX]]></zip>
      <country><![CDATA[XXXX]]></country>
      <phoneNumber><![CDATA[XXXX]]></phoneNumber>
      <email><![CDATA[XXXX]]></email>
    </billTo>
  </transactionRequest>
</createTransactionRequest>

Response to the Get Transaction Details call:

<?xml version="1.0" encoding="utf-8"?> 
<getTransactionDetailsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <messages>
    <resultCode>Ok</resultCode>
    <message>
      <code>I00001</code>
      <text>Successful.</text>
    </message>
  </messages>
  <transaction>
    <transId>40004410028</transId>
    <submitTimeUTC>2017-05-19T15:57:43.09Z</submitTimeUTC>
    <submitTimeLocal>2017-05-19T08:57:43.09</submitTimeLocal>
    <transactionType>authCaptureTransaction</transactionType>
    <transactionStatus>capturedPendingSettlement</transactionStatus>
    <responseCode>1</responseCode>
    <responseReasonCode>1</responseReasonCode>
    <responseReasonDescription>Approval</responseReasonDescription>
    <authCode>5DW8PT</authCode>
    <AVSResponse>Y</AVSResponse>
    <cardCodeResponse>P</cardCodeResponse>
    <order>
      <invoiceNumber>XXXX</invoiceNumber>
      <description>XXXX</description>
    </order>
    <authAmount>100.00</authAmount>
    <settleAmount>100.00</settleAmount>
    <taxExempt>false</taxExempt>
    <payment>
      <creditCard>
        <cardNumber>XXXX</cardNumber>
        <expirationDate>XXXX</expirationDate>
        <cardType>XXXX</cardType>
      </creditCard>
    </payment>
    <customer>
      <!-- <type> field is absent -->
      <id>79</id>
      <email>XXXX</email>
    </customer>
    <billTo>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <address>XXXX</address>
      <city>XXXX</city>
      <state>XXXX</state>
      <zip>XXXX</zip>
      <country>XXXX</country>
      <phoneNumber>XXXX</phoneNumber>
    </billTo>
    <recurringBilling>false</recurringBilling>
    <customerIP>XXXX</customerIP>
    <product>Card Not Present</product>
    <marketType>eCommerce</marketType>
    <!-- <profile/> field is absent -->
  </transaction>
  <clientId>sdk-php-1.9.3</clientId>
  <transrefId>ref_591f15f4e5832</transrefId>
</getTransactionDetailsResponse>

Create new transaction for the customer which was made by the previous one:

<?xml version="1.0" encoding="UTF-8"?>
<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <merchantAuthentication>
    <name><![CDATA[XXXX]]></name>
    <transactionKey>XXXX</transactionKey>
  </merchantAuthentication>
  <clientId><![CDATA[sdk-php-1.9.3]]></clientId>
  <refId><![CDATA[ref_591f1bf7e719a]]></refId>
  <transactionRequest>
    <transactionType><![CDATA[authCaptureTransaction]]></transactionType>
    <amount>200</amount>
    <profile>
      <customerProfileId><![CDATA[1501068509]]></customerProfileId>
      <paymentProfile>
        <paymentProfileId><![CDATA[1500626396]]></paymentProfileId>
      </paymentProfile>
    </profile>
    <order>
      <invoiceNumber><![CDATA[XXXX]]></invoiceNumber>
      <description><![CDATA[XXXX]]></description>
    </order>
  </transactionRequest>
</createTransactionRequest>

Response to the Get Transaction Details call:

<?xml version="1.0" encoding="utf-8"?> 
<getTransactionDetailsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <messages>
    <resultCode>Ok</resultCode>
    <message>
      <code>I00001</code>
      <text>Successful.</text>
    </message>
  </messages>
  <transaction>
    <transId>40004410427</transId>
    <submitTimeUTC>2017-05-19T16:23:20.723Z</submitTimeUTC>
    <submitTimeLocal>2017-05-19T09:23:20.723</submitTimeLocal>
    <transactionType>authCaptureTransaction</transactionType>
    <transactionStatus>capturedPendingSettlement</transactionStatus>
    <responseCode>1</responseCode>
    <responseReasonCode>1</responseReasonCode>
    <responseReasonDescription>Approval</responseReasonDescription>
    <authCode>SSJ6LR</authCode>
    <AVSResponse>Y</AVSResponse>
    <cardCodeResponse>P</cardCodeResponse>
    <order>
      <invoiceNumber>XXXX</invoiceNumber>
      <description>XXXX</description>
    </order>
    <authAmount>200.00</authAmount>
    <settleAmount>200.00</settleAmount>
    <taxExempt>false</taxExempt>
    <payment>
      <creditCard>
        <cardNumber>XXXX</cardNumber>
        <expirationDate>XXXX</expirationDate>
        <cardType>XXXX</cardType>
      </creditCard>
    </payment>
    <customer>
      <type>individual</type>
      <id>79</id>
      <email>XXXX</email>
    </customer>
    <billTo>
      <firstName>XXXX</firstName>
      <lastName>XXXX</lastName>
      <address>XXXX</address>
      <city>XXXX</city>
      <state>XXXX</state>
      <zip>XXXX</zip>
      <country>XXXX</country>
      <phoneNumber>XXXX</phoneNumber>
    </billTo>
    <recurringBilling>false</recurringBilling>
    <customerIP>XXXX</customerIP>
    <product>Card Not Present</product>
    <marketType>eCommerce</marketType>
    <profile>
      <customerProfileId>1501068509</customerProfileId>
      <customerPaymentProfileId>1500626396</customerPaymentProfileId>
    </profile>
  </transaction>
  <clientId>sdk-php-1.9.3</clientId>
  <transrefId>ref_591f1bf7e719a</transrefId>
</getTransactionDetailsResponse>

 

Thanks for the samples.

 

<createProfile>true</createProfile> is a shortcut to allow you to do two separate steps with one API call. It's creating a new transaction, then making a profile from an existing transaction (the existing transaction being the one it just did within this request).

 

The process of creating a profile from an existing transaction does not not associate that existing transaction to the profile that it creates. It's literally just creating a profile using the information that it has pulled out of that existing transaction. It's working as designed.

 

However, you're not the first one to assume that the transaction ID given would then be associated with the newly created profile. This same idea has already been posted onto our Ideas Forum where others can take a look, contribute feedback, and vote for new features.

 

Here's the specific idea post for that idea. That post links to an original thread with some workflow workarounds. I'd encourage you to look at that idea post and vote on it if you'd like to support that specific idea for improvement.

 

With regards to your previous documentation problems you've pointed out, we've got them fixed on our end, and are just waiting for them to get deployed to the production web site.

 

Thanks again!

 

 

Hi @Aaron,

 

Thank you so much for this great explanation. I've already implemented another way of transactions handling, now customer profile is created before createTransaction call is sent and profile is succesfully assigned to transaction as it should be.

 

To avoid long discussions on issue, whether customer should be associated with transaction, when <createProfile>true</createProfile> flag is set, or not (as for me, it shouldn't because <createProfile> declares that customer will be only created and nothing else), I suggest to implement additional flag, for instance:

<profile>
  <createProfile>true</createProfile>
  <associateWithTransaction>true</associateWithTransaction>
</profile>

This is another view of the same problem as you mentioned in your comment, so I've created a new idea post.

 

Thanks again for your help.