Warehouse transfers

Use warehouse transfers to transfer items between warehouses or to transfer items between bins in the same warehouse. When you post a warehouse transfer, Sage Intacct creates the underlying system transactions, which includes automatically propagating the costs of the items.

You cannot change the cost of the items when they move into the destination warehouse. For more information, see Warehouse transfers overview in the Sage Intacct Help Center.

List warehouse transfers

get/objects/inventory-control/warehouse-transfer

Returns a collection with a key, ID, and link for each warehouse transfer. This operation is mostly for use in testing; use query to find objects that meet certain criteria and specify the properties that are returned.

Permissions and other requirements
SubscriptionInventory Control
ConfigurationInventory Control is configured for warehouse transfers.
User typeBusiness, Warehouse
PermissionsList, View Warehouse transfers
SecurityOAuth2
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": [
    • {
      • "key": "12",
      • "id": "IC:0358:doc",
      • "href": "/objects/inventory-control/warehouse-transfer/12"
      },
    • {
      • "key": "13",
      • "id": "IC:0356:doc",
      • "href": "/objects/inventory-control/warehouse-transfer/13"
      },
    • {
      • "key": "14",
      • "id": "IC:0359:doc",
      • "href": "/objects/inventory-control/warehouse-transfer/14"
      }
    ],
  • "ia::meta": {
    • "totalCount": 3,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create a warehouse transfer

post/objects/inventory-control/warehouse-transfer

Creates a new warehouse transfer. Fields required to create a warehouse transfer depend on the type of transfer, immediate or inTransit. And lines within the transfer must include one or more matched pair with one outgoing and one incoming line.

Read field descriptions carefully to ensure all requirements are met.

Permissions and other requirements
SubscriptionInventory Control
ConfigurationInventory Control is configured for warehouse transfers.
User typeBusiness, Warehouse
PermissionsList, View, Add Warehouse transfers
SecurityOAuth2
Request
Request Body schema: application/json
required

Create a warehouse transfer

transactionDate
required
string <date>

The date of the transaction. For immediate transfers, the date is used as the transaction date for the system-generated transfer-out and transfer-in transactions.

Example: "2024-03-01"
transferType
required
string

Specify whether this is an immediate or in-transit transfer.

  • An immediate transfer does not accommodate for the time it takes to move inventory from one warehouse to another. With an immediate transfer, ONHAND quantities are decreased at the source warehouse (the from warehouse) and increased at the destination warehouse (the to warehouse) at the same time.
  • An inTransit transfer allows you to accommodate for the time it takes to move inventory between warehouses For example, warehouses may be across the city, across the country, or in different countries. While inventory is being moved, it's not in the ONHAND quantities at either the source warehouse (the from warehouse) or the destination warehouse (the to warehouse). Instead it's counted in the INTRANSIT quantity for the destination warehouse. For more information, see Warehouse transfers overview in the Sage Intacct Help Center.
Enum: "immediate" "inTransit"
Example: "immediate"
action
required
string

Sets the state that the transaction is in. If transferType is set to:

  • immediate, valid values are draft or post.
  • inTransit and you are using a POST operation to create a warehouse transfer, valid values are draft or transferOut.
  • inTransit and you are using a PATCH operation to update a warehouse transfer with a transferState of draft, valid values for the action field are draft or transferOut.
  • inTransit and you are using a PATCH operation to update a warehouse transfer with a transferState of inTransit, the only valid value for the action field is transferOut.

Note that you cannot use the action field to change the transferState of a transfer that is posted, and you cannot set an inTransit transfer back to draft.

Enum: "draft" "post" "transferIn" "transferOut"
Example: "draft"
description
string

Information about the warehouse transfer. The description is displayed in the Warehouse Transfer list.

Example: "transfer to 10001-F per SO-0007"
referenceNumber
string

Reference number for the transfer that might be useful in searches or reports. The number is displayed in system-generated transfer-out and transfer-in transactions.

Example: "SO-0007"
object

Exchange rate information for the transfer transaction.

outCurrency
string

Base currency of the warehouse from which items are to be transferred.

Example: "GBP"
inCurrency
string

Base currency of the warehouse to which items are to be transferred.

Example: "USD"
date
string <date>

Exchange rate date for the receiving warehouse. Should be the same date as the transactionDate.

Example: "2024-03-01"
rate
string <decimal-precision-10>

Exchange rate to use for the transaction. Do not provide a value in this field if the exchange rate typeID and typeName are set.

Example: "1.0000000000"
typeName
string

Name of the exchange rate type. If there are no custom exchange rates for the company, you can specify the Intacct Daily Rate. Do not provide a value in this field if rate is set.

Example: "Intacct Daily Rate"
outDate
string <date>

Estimated date that the shipment will leave the originating warehouse. This date is required when transferType is set to inTransit. This date cannot be earlier than the transactionDate.

Example: "2024-03-01"
inDate
string <date>

Estimated date that the shipment arrives at the receiving warehouse. This date is required when transferType is set to inTransit. This date cannot be earlier than the outDate.

Example: "2024-03-01"
object

Reference to the transfer-in inventory transfer document.

object

Reference to the in-transit inventory transfer document.

object

Reference to the transfer-out inventory transfer document.

Array of objects

Lines of the warehouse transfer document. Must be one or more matched pair with one outgoing and one incoming line. A combination of item, unit, and quantity are used to match each pair.

Array
required
object

Item included in the transfer.

required
object

Warehouse involved in the transfer.

transferDirection
required
string

Specifies whether the transfer in this line object represents the warehouse sending the inventory (outgoing) or the warehouse receiving the inventory (incoming).

Enum: "in" "out"
Example: "out"
required
object

Unit of measure for the item.

quantity
required
string <decimal-precision-10>

The quantity of the item to be transferred in the line unit.

Example: "1.0000"
memo
string

Information about the line that might be useful in the future.

Example: "transfer of item-0 Lot per SO-0007"
Array of objects

List of tracking details including serial number, aisle, bin, and row for the item.

object
object

The warehouse transfer that the line is included in.

object

Associated internal system transfer document.

object

Associated internal system document line.

Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "transactionDate": "2024-03-01",
  • "description": "transfer to 10001-F per SO-0009",
  • "referenceNumber": null,
  • "exchangeRate": {
    • "date": "null,",
    • "typeName": "Intacct Daily Rate",
    • "outCurrency": "USD",
    • "inCurrency": "USD"
    },
  • "transferType": "immediate",
  • "action": "draft",
  • "lines": [
    • {
      • "transferDirection": "out",
      • "item": {
        },
      • "warehouse": {
        },
      • "memo": "transfer of 0 Lot",
      • "quantity": "1",
      • "unit": {
        },
      • "trackingDetail": [
        ],
      • "dimensions": {
        }
      },
    • {
      • "transferDirection": "in",
      • "item": {
        },
      • "quantity": "1",
      • "unit": {
        },
      • "warehouse": {
        },
      • "trackingDetail": [
        ],
      • "dimensions": {
        }
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "19",
    • "href": "/objects/inventory-control/warehouse-transfer/19"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get a warehouse transfer

get/objects/inventory-control/warehouse-transfer/{key}

Returns detailed information for a specified warehouse transfer.

Permissions and other requirements
SubscriptionInventory Control
ConfigurationInventory Control is configured for warehouse transfers.
User typeBusiness, Warehouse
PermissionsList, View Warehouse transfers
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned unique key for the warehouse transfer.

Example: 19
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "key": "19",
    • "id": "IC:0360:doc",
    • "transactionDate": "2024-03-01",
    • "outDate": "2024-03-01",
    • "inDate": "2024-03-01",
    • "description": "transfer to 10001-F per SO-0009",
    • "referenceNumber": null,
    • "outDocument": {
      • "key": "350",
      • "id": "SYS-Warehouse Transfer Out-IC:0360:doc-Out",
      • "docid": "SYS-Warehouse Transfer Out-IC:0360:doc-Out",
      • "href": "/objects/inventory-control/document/350"
      },
    • "inDocument": {
      • "key": "351",
      • "id": "SYS-Warehouse Transfer In-IC:0360:doc-In",
      • "href": "/objects/inventory-control/document/351"
      },
    • "inTransitDocument": {
      • "key": null,
      • "id": null
      },
    • "audit": {
      • "createdDateTime": "2024-03-13T01:11:36Z",
      • "modifiedDateTime": "2024-03-13T01:11:36Z",
      • "createdByUser": {
        },
      • "createdBy": "1",
      • "modifiedByUser": {
        },
      • "modifiedBy": "1"
      },
    • "exchangeRate": {
      • "date": "2024-03-01",
      • "typeName": "Intacct Daily Rate",
      • "typeId": "-1",
      • "rate": "1.0000000000",
      • "outCurrency": "USD",
      • "inCurrency": "USD"
      },
    • "transferState": "draft",
    • "transferType": "immediate",
    • "entity": {
      • "key": null,
      • "id": null,
      • "name": null
      },
    • "lines": [
      • {
        },
      • {
        }
      ],
    • "href": "/objects/inventory-control/warehouse-transfer/19"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a warehouse transfer

patch/objects/inventory-control/warehouse-transfer/{key}

Updates an existing warehouse transfer by setting field values. Any field not provided remains unchanged.

For inTransit transfers, edit the transfer when the inventory arrives at the destination warehouse to increase ONHAND quantities and value.

Any warehouse transfer can be edited if the changes only affect inventory that still exists at the destination warehouse.

Permissions and other requirements
SubscriptionInventory Control
ConfigurationInventory Control is configured for warehouse transfers.
User typeBusiness, Warehouse
PermissionsList, View, Edit Warehouse transfers
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned unique key for the warehouse transfer.

Example: 19
Request Body schema: application/json
transactionDate
string <date>

The date of the transaction. For immediate transfers, the date is used as the transaction date for the system-generated transfer-out and transfer-in transactions.

Example: "2024-03-01"
description
string

Information about the warehouse transfer. The description is displayed in the Warehouse Transfer list.

Example: "transfer to 10001-F per SO-0007"
referenceNumber
string

Reference number for the transfer that might be useful in searches or reports. The number is displayed in system-generated transfer-out and transfer-in transactions.

Example: "SO-0007"
object

Exchange rate information for the transfer transaction.

outCurrency
string

Base currency of the warehouse from which items are to be transferred.

Example: "GBP"
inCurrency
string

Base currency of the warehouse to which items are to be transferred.

Example: "USD"
date
string <date>

Exchange rate date for the receiving warehouse. Should be the same date as the transactionDate.

Example: "2024-03-01"
rate
string <decimal-precision-10>

Exchange rate to use for the transaction. Do not provide a value in this field if the exchange rate typeID and typeName are set.

Example: "1.0000000000"
typeName
string

Name of the exchange rate type. If there are no custom exchange rates for the company, you can specify the Intacct Daily Rate. Do not provide a value in this field if rate is set.

Example: "Intacct Daily Rate"
transferType
string

Specify whether this is an immediate or in-transit transfer.

  • An immediate transfer does not accommodate for the time it takes to move inventory from one warehouse to another. With an immediate transfer, ONHAND quantities are decreased at the source warehouse (the from warehouse) and increased at the destination warehouse (the to warehouse) at the same time.
  • An inTransit transfer allows you to accommodate for the time it takes to move inventory between warehouses For example, warehouses may be across the city, across the country, or in different countries. While inventory is being moved, it's not in the ONHAND quantities at either the source warehouse (the from warehouse) or the destination warehouse (the to warehouse). Instead it's counted in the INTRANSIT quantity for the destination warehouse. For more information, see Warehouse transfers overview in the Sage Intacct Help Center.
Enum: "immediate" "inTransit"
Example: "immediate"
action
string

Sets the state that the transaction is in. If transferType is set to:

  • immediate, valid values are draft or post.
  • inTransit and you are using a POST operation to create a warehouse transfer, valid values are draft or transferOut.
  • inTransit and you are using a PATCH operation to update a warehouse transfer with a transferState of draft, valid values for the action field are draft or transferOut.
  • inTransit and you are using a PATCH operation to update a warehouse transfer with a transferState of inTransit, the only valid value for the action field is transferOut.

Note that you cannot use the action field to change the transferState of a transfer that is posted, and you cannot set an inTransit transfer back to draft.

Enum: "draft" "post" "transferIn" "transferOut"
Example: "draft"
outDate
string <date>

Estimated date that the shipment will leave the originating warehouse. This date is required when transferType is set to inTransit. This date cannot be earlier than the transactionDate.

Example: "2024-03-01"
inDate
string <date>

Estimated date that the shipment arrives at the receiving warehouse. This date is required when transferType is set to inTransit. This date cannot be earlier than the outDate.

Example: "2024-03-01"
object

Reference to the transfer-in inventory transfer document.

object

Reference to the in-transit inventory transfer document.

object

Reference to the transfer-out inventory transfer document.

Array of objects

Lines of the warehouse transfer document. Must be one or more matched pair with one outgoing and one incoming line. A combination of item, unit, and quantity are used to match each pair.

Array
transferDirection
string

Specifies whether the transfer in this line object represents the warehouse sending the inventory (outgoing) or the warehouse receiving the inventory (incoming).

Enum: "in" "out"
Example: "out"
object

Warehouse involved in the transfer.

object

Item included in the transfer.

object

Unit of measure for the item.

memo
string

Information about the line that might be useful in the future.

Example: "transfer of item-0 Lot per SO-0007"
Array of objects

List of tracking details including serial number, aisle, bin, and row for the item.

quantity
string <decimal-precision-10>

The quantity of the item to be transferred in the line unit.

Example: "1.0000"
object
object

The warehouse transfer that the line is included in.

object

Associated internal system transfer document.

object

Associated internal system document line.

Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "action": "transferIn",
  • "lines": [
    • {
      • "key": "59",
      • "transferDirection": "out",
      • "item": {
        },
      • "warehouse": {
        },
      • "quantity": "1",
      • "unit": {
        },
      • "trackingDetail": [
        ]
      },
    • {
      • "key": "60",
      • "transferDirection": "in",
      • "item": {
        },
      • "quantity": "1",
      • "unit": {
        },
      • "warehouse": {
        },
      • "trackingDetail": [
        ]
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "17",
    • "id": "IC:0358:doc",
    • "href": "/objects/inventory-control/warehouse-transfer/17"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a warehouse transfer

delete/objects/inventory-control/warehouse-transfer/{key}

Deletes a warehouse transfer. Warehouse transfers that are in draft or inTransit state can be deleted.

And, warehouse transfers that are in posted state can be deleted if the inventory that was transferred still exists at the destination warehouse.

Permissions and other requirements
SubscriptionInventory Control
ConfigurationInventory Control is configured for warehouse transfers.
User typeBusiness, Warehouse
PermissionsList, View, Delete Warehouse transfers
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned unique key for the warehouse transfer.

Example: 19
Responses
204

No Content

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "ia::error": {
      • "code": "invalidRequest",
      • "message": "A POST request requires a payload",
      • "errorId": "REST-1028",
      • "additionalInfo": {
        },
      • "supportId": "Kxi78%7EZuyXBDEGVHD2UmO1phYXDQAAAAo"
      }
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 0,
    • "totalError": 1
    }
}

Query warehouse transfers

post/services/core/query

Queries an object for filtered data.

SecurityOAuth2
Request
Request Body schema: application/json
object
string

Object type to query, in the form <application-name>/<object name>. For custom objects use platform-apps/nsp::<object-name>.

Example: "inventory-control/warehouse-transfer"
fields
Array of strings

List of fields to include in the response. Can be any combination of these:

  • The name of a field in the object that you are querying, such as id.

  • The name of a field in a related object, using the form relatedObjectName.fieldName, such as vendor.id.

  • The result of an aggregate function run against the values in the returned objects. Use the form function:fieldName, such as min:startDate to return the earliest starting date. Valid function names are:

    • count
    • avg
    • sum
    • min
    • max
  • The result of an aggregate function run against the values in related objects, using the form function:relatedObjectName.fieldName, such as max:vendor.creditLimit. The same functions are supported as for object fields.

Example: ["key","id","max:vendor.creditLimit"]
Array of equal (object) or not equal (object) or less than (object) or (less than or equal (object)) or greater than (object) or (greater than or equal (object)) or in (object) or not in (object) or between (object) or not between (object) or contains (object) or does not contain (object) or has (object) or starts with (object) or does not start with (object) or ends with (object) or does not end with (object)

Filter conditions to select the objects to return based on their field values. You use operators and conditions to build your filter, such as {"$eq":{"status":"active"}} to select objects in which status is equal to "active".

Example: [{"$eq":{"status":"active"}},{"$gt":{"totalDue":"1000"}},{"$contains":{"name":"Acme"}}]
Array
Any of:

Field value must be equal to this specified value.

For date fields, you can use these macro values that are relative to the current date or the asOfDate in filterParameters, if set:

  • today
  • currentWeek
  • currentMonth
  • currentQuarter
  • currentYear
  • yesterday
  • lastWeek
  • priorMonth
  • priorQuarter
  • priorYear

These are most useful for queries that you want to save and use repeatedly, such as for views or reports. Just change the asOfDate each time to retrieve the same data set for different time periods.

For example, {"eq":{"postingDate":"priorYear"}}.

object

The field name and value to be compared with object values.

Example: {"status":"active"}
filterExpression
string
Default: "and"

Logical operators to apply when there are multiple filter conditions. The conditions in the filters array are implicitly numbered starting at 1. Supports and, or, and grouping with parentheses.

Shortcuts:

  • and by itself means that all conditions must be true.
  • or by itself means that at least one condition must be true.
Example: "(1 and 2) or 3"
object

Pre-defined filter options.

asOfDate
string <date>

The "as of" date to use with any relative date comparisons in filters. For example, if asOfDate is set to "2022-04-01" then priorMonth will be "03".

The current date is used if asOfDate is not set.

Example: "2022-04-01"
includeHierarchyFields
boolean
Default: false

Set to true to include hierarchical structure information with each object in the response.

Example: false
caseSensitiveComparison
boolean
Default: true

Queries are case-sensitive by default. Set to false to ignore case in a query.

Example: true
includePrivate
boolean
Default: false

By default, in a multi-entity company queries from the top-level entity do not access data in private entities. Set includePrivate to true if you want to query data in private entities.

Example: false
Array of objects

Set the order of the results by specifying field names to sort by and whether they should be in ascending or descending order.

Example: [{"totalDue":"asc"},{"lastPaymentMadeDate":"desc"}]
Array
property name*
additional property
string
Enum: "asc" "desc"
start
integer

First record of the result set to include in the response.

Example: 1
size
integer

Number of records to include in the result set, 4000 maximum.

Example: 100
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "object": "inventory-control/warehouse-transfer",
  • "filters": [
    • {
      • "$eq": {
        }
      }
    ],
  • "fields": [
    • "id",
    • "href",
    • "transferState",
    • "description",
    • "outDocument.id",
    • "inDocument.id"
    ]
}
Response samples
application/json
{
  • "ia::result": [
    • {
      • "id": "WHXFER-000029-doc",
      • "href": "/objects/inventory-control/warehouse-transfer/12",
      • "transferState": "posted",
      • "description": "Transfer to WH SB1",
      • "outDocument.id": "SYS-Warehouse Transfer Out-WHXFER-000029-doc-Out",
      • "inDocument.id": "SYS-Warehouse Transfer In-WHXFER-000029-doc-In"
      },
    • {
      • "id": "WHXFER-000032-doc",
      • "href": "/objects/inventory-control/warehouse-transfer/13",
      • "transferState": "posted",
      • "description": "Transfer to WH NW12",
      • "outDocument.id": "SYS-Warehouse Transfer Out-WHXFER-000032-doc-Out",
      • "inDocument.id": "SYS-Warehouse Transfer In-WHXFER-000032-doc-In"
      },
    • {
      • "id": "WHXFER-000033-doc",
      • "href": "/objects/inventory-control/warehouse-transfer/14",
      • "transferState": "posted",
      • "description": "HAMMER16 transfer to SB6",
      • "outDocument.id": "SYS-Warehouse Transfer Out-WHXFER-000033-doc-Out",
      • "inDocument.id": "SYS-Warehouse Transfer In-WHXFER-000033-doc-In"
      },
    • {
      • "id": "WHXFER-000034-doc",
      • "href": "/objects/inventory-control/warehouse-transfer/15",
      • "transferState": "posted",
      • "description": "IA-188297Item01 4 -> 5",
      • "outDocument.id": "SYS-Warehouse Transfer Out-WHXFER-000034-doc-Out",
      • "inDocument.id": "SYS-Warehouse Transfer In-WHXFER-000034-doc-In"
      }
    ],
  • "ia::meta": {
    • "totalCount": 4,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}