> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slm.m1amdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Account.transfer

Customers often create multiple accounts on merchant sites. Because these accounts are essentially duplicates, you might receive a request from a customer to consolidate the billing for two accounts that customer has with you. Use the transfer method to consolidate billing for two accounts held by a single customer.

The `transfer` call merges the contents and related objects of two `Account` objects, and returns the target account with the merged content.

The `transfer` method:

* Transfers the payment methods, chargebacks, tax exemptions, `AutoBill` objects, activities, token grants and deductions, transactions, and name – value pairs associated with the source account into the target account.
* Strips all of the above contents from the source account, which will, however, continue to exist in Subscribe with some basic attributes.
* Creates two name – value pairs with the names:
  * `VIN_MERCHANT_CUSTOMER_ID_UPDATED_FROM` and
  * `VIN_MERCHANT_CUSTOMER_ID_UPDATED_DATE` and in each of the `AutoBill` objects transferred, thus specifying the original `merchantAccountId` value associated with the `AutoBill` object and the date on which the ID was transferred.

The two `Accounts` specified as input must exist prior to the `transfer` call, or an error will be returned.

## Input

*srd*: sparse response description, a SOAP string (which must be a JSON object), in which you specify the elements you want returned.This parameter enables the calling system to constrain a `method` call to return only components you specify. This gives you greater control over returned content, and improves response time within the Vindicia platform by reducing the processing needed for the call.

Some fields are required, either practically or in the WSDL, and will be returned regardless of the *srd*. A null *srd* returns the complete response.

*targetAccount*: the `Account` object into which you wish to transfer all content from the source account.

*sourceAccount*: the `Account` object whose content you wish to transfer to the target account.

## Output

*return*: an object of type `Return` that indicates the success or failure of the call.

*mergedAccount*: the account that contains the merged content of the target and source accounts.

## Returns

In addition to those listed in [The Return Object](The_Return_Object), this call returns:

| Return Code | Return String |
| - | - |
| `400` | One of the following: - `No match found for target account.` - `No match found for source account.` - `Unable to transfer account.` |

## Example

```

$targetAcct = new Account();

// Reference an existing account into which the contents will be
// merged

$targetAcct->setMerchantAccountId('9876-5432');

$sourceAcct = new Account();

// Reference an existing account from which we want to transfer
// contents

$sourceAcct->setMerchantAccountId('4932-5301');

// make the SOAP call to retrieve tokens
$response = $targetAcct->transfer($sourceAcct); 

if($response['returnCode']==200) {
   $mergedAcct = $response['mergedAccount'];
   // process or verify contents of the merged account here
}
```

**Parent topic:**[Account Methods](../topics/Account_Methods)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.