Payment account migration to a new MerchantID

This page focuses on alternative payment methods (APM´s).

It is possible - if configured for a merchant - to copy an already existing payment account from one MerchantID to another merchantID.

Copy an existing account to a new MerchantID

In the initiatePayment call the merchant has to include the merchant and shop of the transaction, called TargetMerchant and TargetShop below. In addition, include the SourceMerchant, SourceUser and PaymentAccountID in the request.

Field

Description

PaymentAccountReferenceMerchantID

MerchantID from which the payment account should be copied

PaymentAccountReferenceUserID

UserID on above Merchant

PaymentAccountID

PaymentAccountID of the payment account that should be copied.
The new payment account will be created on the target merchant with the same paymentaccountID.

In order to copy a user´s payment account, send the following initiatePaymentRequest:

<initiatePaymentRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                        xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<merchantID>TargetMerchant</merchantID>
	<shopID>TargetShop</merchantID>
	<merchantTransactionID>da010381-9d05-417c-85f1-0cad2c68c1f7</merchantTransactionID>
	<paymentMethodID>136</paymentMethodID>
	<amount currencyCode="USD">15.00</amount>
	<userID>TargetUser</userID>
	<userIP>127.0.0.1</userIP>
	<userSessionID>10379a77-b48d-4169-b102-df594ef4f377</userSessionID>
	<creationTypeID>1</creationTypeID>
	<specificPaymentData>
		<data xsi:type="keyStringValuePair">
			<key>PaymentDescription</key>
			<value>815d542b-78b8-4902-b429-8d4b5b8b6168</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>PaymentDescriptionLanguageCode</key>
			<value>en</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>PaymentAccountReferenceMerchantID</key>
			<value>SourceMerchant</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>PaymentAccountReferenceUserID</key>
			<value>SourceUser</value>
		</data>
	</specificPaymentData>
	<paymentAccountID>PaymentAccountID</paymentAccountID>
</initiatePaymentRequest>

Placeholders

Remark

TargetMerchant

The merchant to which the account is copied and which will initiate the payment
Should be passed in the **merchantID **field of the request.

TargetShop

The shop which will initiate the payment
Should be passed in the **shopID **field of the request.

TargetUser

The user (userID) to which the account will be copied
Should be passed in the **userID **field of the request.

SourceMerchant

The merchant from which the account is copied.
Should be placed in the field PaymentAccountReferenceMerchantID.

SourceUser

The user at the SourceMerchant.
Should be placed into the field PaymentAccountReferenceUserID.

PaymentAccountID

The PaymentAccountID of the original account.
It will be copied over to the TargetMerchant with the same ID.

In order to create a transaction for the user on another merchant and copy the original account, make sure to pass the original SourceMerchant, SourceUser and _PaymentAccountID _in the request.

If a change to the account was done at the TargetMerchant, or any additional merchants where the initial _SourceMerchant _and SourceUser was referenced, the change is synched to all linked accounts.

It is vital to reference the correct merchant and accounts in the fields PaymentAccountReferenceMerchantID and PaymentAccountReferenceUserID. It is recommended to ideally reference the initial SourceMerchant and SourceUser. This is necessary so that the copying and linking of accounts is performed correctly.

Once the account has been copied to the TargetMerchant and TargetUser, this account can be addressed as any other account on that merchant. Passing the fields PaymentAccountReferenceMerchantID and PaymentAccountReferenceUserID is not necessary on followup payment on that merchant (on the TargetMerchant).

Using the correct details, a payment account is copied from a user on merchant #1 to a user on merchant #2, and subsequently from merchant #2 to merchant #3.
Once the account is copied it can be treated as every other payment account. it can be updated with any subsequent initiatePayment request. Only the initial request that copies the account over to a new merchant is restricted to not be able to update as well.

If a new payment account is created for a user on merchant #4, it can be copied to merchant #5. For this, an initiatePaymentRequest on merchant #5 should include the fields PaymentAccountReferenceMerchantID and PaymentAccountReferenceUserID and the PaymentAccountID from merchant #4.

If an additional merchant (#6) & associated user should be linked, it is important to realize on which group of merchants the account was used:

  • if the account was used on merchant #4 and #5, it should be copied by setting PaymentAccountReferenceMerchantID to merchant 4, PaymentAccountReferenceUserID to the merchants user and including the user´s PaymentAccountID in the request.
    The account on merchant #4 and #5 is certainly a different account than the account on merchant #1, #2, #3.
  • If the account was used on merchant #1, #2 and #3, the PaymentAccountReferenceMerchantID should be set ideally to merchant #1, PaymentAccountReferenceUserID should be set to the merchant´s user and the user´s PaymentAccountID should be passed in the request.

The value of the PaymentAccountID is different on merchant #1, #2 and #3 than on merchant #4 and #5.

Failing to provide the correct PaymentAccountID will result in an error "PaymentAccount not found".
Be sure if include the payment account from merchant #1 when referencing merchant #1 and it´s user.


  • should be copied or the account used on merchant #1, #2 and #3. Ideally set PaymentAccountReferenceMerchantID to merchant #1 respectively merchant #4 and PaymentAccountReferenceUserID to the user on the respective merchant.