Initiate Transfer Action

Transfer an asset or multiple assets from one account to another.

Keep these considerations in mind when you use this invocable action.

  • This action generates 2 quotes or 2 orders.
  • One transaction is considered the source, which is used to calculate the reduction amount of the transfer. The other transaction is the target, which is used to calculate the new amount on the target account.
  • The quantity on the source is negative, which reduces the existing asset’s quantity. The quantity on the target is positive, which creates a new asset on the target account.
  • You can change the quantity on the source or the target, but the quantities must be equal and opposite. For example, the source quote line can have a quantity value as -5, and the target quote line can have a quantity value 5. If you change the source value to -10, you must update the target value to 10. You must update quotes or orders manually.
  • The transfer is complete after the orders are assetized.

This action is available in API version 65.0 and later.

Supported REST HTTP Methods 

URI: /services/data/v68.0/actions/standard/initiateTransfer

Formats: JSON, XML

HTTP Methods: POST

Authentication: Authorization: Bearer TOKEN

Where TOKEN is a placeholder for your OAuth access token.

Inputs 

InputTypeDescription
outputRecordTypestringRequired. Specifies either a quote or order record type that’s being transferred.
shouldSkipPricingbooleanIndicates whether to skip pricing at the time of asset transfer ( true ) or not ( false ).
targetAccountIdstringRequired. The ID of the target account where the asset is transferred.
targetContractIdstringThe ID of the target contract that’s associated with the asset that’s being transferred.
transferDatedatetimeRequired. The date of the asset transfer.
transferRecordsApex-definedRequired. A collection of Apex connectapi__TransferRecordInputRepresentation records that contain details about the assets to be transferred. See ConnectApi.TransferRecordInputRepresentation.

Outputs 

OutputTypeDescription
assetTransferSourceIdidThe ID of the quote or order that’s related to the source account used to start the transfer.
assetTransferTargetIdidThe ID of the quote or order that’s related to the target account used to start the transfer.
requestIdentifieridThe request ID can be used to track the async request.

Example 

POST

Here’s a sample input to call this invocable action.

1{
2  "inputs": [
3    {
4      "transferRecords": [
5        {
6          "assetId": "02ixx0000004HZbAAM",
7          "transferQuantity": 1
8        }
9      ],
10      "transferDate": "2025-10-21T00:00:00.000Z",
11      "targetAccountId": "001xx000003GbeXAAS",
12      "targetContractId": "800DU0000000lZlYAI",
13      "outputRecordType": "Quote"
14    }
15  ]
16}

Here’s a sample input to call this invocable action from Apex code.

1ConnectApi.TransferRecordInputRepresentation transferRecord = new ConnectApi.TransferRecordInputRepresentation();
2transferRecord.assetId = '02ixx0000004HHjAAM';
3transferRecord.transferQuantity = 1;
4List<ConnectApi.TransferRecordInputRepresentation> transferRecords = new List<ConnectApi.TransferRecordInputRepresentation>();
5transferRecords.add(transferRecord);
6
7Invocable.Action action = Invocable.Action.createStandardAction('initiateTransfer');
8action.setInvocationParameter('transferRecords', transferRecords);
9action.setInvocationParameter('targetAccountId', '001xx000003GYiHAAW');
10action.setInvocationParameter('transferDate', '2025-03-01T00:00:00.000Z');
11action.setInvocationParameter('outputRecordType', 'Quote');
12List<Invocable.Action.Result> results = action.invoke();
13System.assertEquals(true, results[0].isSuccess());
14Assert.isNotNull(results[0].getOutputParameters().get('assetTransferSourceId'));

Here’s a sample response when you call this action.

1[
2  {
3    "actionName": "initiateTransfer",
4    "errors": null,
5    "invocationId": null,
6    "isSuccess": true,
7    "outcome": null,
8    "outputValues": {
9      "assetTransferSourceId": "0Q0DU0000006SYF0A2",
10      "assetTransferTargetId": "0Q0DU0000006SYE0A2"
11    },
12    "sortOrder": -1,
13    "version": 1
14  }
15]