Create a transfer

Creates a new transfer.

post/quickbooks-desktop/transfers

Headers

Conductor-End-User-Idstring required

The ID of the End-User to receive this request.

Example:end_usr_1234567abcdefg

The ID of the End-User to receive this request.

Request body

transactionDatestring date required

The date of this transfer, in ISO 8601 format (YYYY-MM-DD).

sourceAccountIdstring required

The account from which money will be transferred.

targetAccountIdstring required

The account to which money will be transferred.

classIdstring

The transfer's class. Classes can be used to categorize objects into meaningful segments, such as department, location, or type of work. In QuickBooks, class tracking is off by default.

amountstring required

The monetary amount of this transfer, represented as a decimal string.

Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").

memostring

A memo or note for this transfer.

Example request

{
  "transactionDate": "2024-10-01",
  "sourceAccountId": "80000001-1234567890",
  "targetAccountId": "80000001-1234567890",
  "classId": "80000001-1234567890",
  "amount": "1000.00",
  "memo": "Monthly transfer to savings"
}

Response

Returns the newly created transfer.

idstring required

The unique identifier assigned by QuickBooks to this transfer. This ID is unique across all transaction types.

objectType'qbd_transfer' required

The type of object. This value is always "qbd_transfer".

createdAtstring required

The date and time when this transfer was created, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.

updatedAtstring required

The date and time when this transfer was last updated, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.

revisionNumberstring required

The current QuickBooks-assigned revision number of this transfer object, which changes each time the object is modified. When updating this object, you must provide the most recent revisionNumber to ensure you're working with the latest data; otherwise, the update will return an error.

transactionDatestring date required

The date of this transfer, in ISO 8601 format (YYYY-MM-DD).

sourceAccountBalancestring nullable required

The balance of the account from which money will be transferred.

targetAccountBalancestring nullable required

The balance of the account to which money will be transferred.

amountstring required

The monetary amount of this transfer, represented as a decimal string.

memostring nullable required

A memo or note for this transfer.

Example response

{
  "id": "123ABC-1234567890",
  "objectType": "qbd_transfer",
  "createdAt": "2025-01-01T12:34:56+00:00",
  "updatedAt": "2025-02-01T12:34:56+00:00",
  "revisionNumber": "1721172183",
  "transactionDate": "2024-10-01",
  "sourceAccount": {
    "id": "80000001-1234567890",
    "fullName": "Checking"
  },
  "sourceAccountBalance": "1000.00",
  "targetAccount": {
    "id": "80000001-1234567890",
    "fullName": "Savings"
  },
  "targetAccountBalance": "5000.00",
  "class": {
    "id": "80000001-1234567890",
    "fullName": "Inter Departmental"
  },
  "amount": "1000.00",
  "memo": "Monthly transfer to savings"
}

Changes

Changed in 4 of the 46 revisions of this API.30315

    • the classId request property's maxLength was set to 36

      request-property-max-length-set

    • the sourceAccountId request property's maxLength was set to 36

      request-property-max-length-set

    • the targetAccountId request property's maxLength was set to 36

      request-property-max-length-set

  • 10d4e9ebd1df101See the full diff
    • response property memo list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property sourceAccount/fullName list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property sourceAccount/id list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property sourceAccountBalance list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property targetAccount/fullName list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property targetAccount/id list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property targetAccountBalance list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • the class response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • removed the required property class/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property class/id from the response with the 200 status

      response-required-property-removed

    • added subschema #1 subschema #2 to the class response property anyOf list for the response status 200

      response-property-any-of-added

  • 8e0b7df2044d912See the full diff
    • the response property class became nullable for the status 200

      response-property-became-nullable

    • the response property memo became nullable for the status 200

      response-property-became-nullable

    • the response property sourceAccount/fullName became nullable for the status 200

      response-property-became-nullable

    • the response property sourceAccount/id became nullable for the status 200

      response-property-became-nullable

    • the response property sourceAccountBalance became nullable for the status 200

      response-property-became-nullable

    • the response property targetAccount/fullName became nullable for the status 200

      response-property-became-nullable

    • the response property targetAccount/id became nullable for the status 200

      response-property-became-nullable

    • the response property targetAccountBalance became nullable for the status 200

      response-property-became-nullable

    • the class response's property type/format changed from / to object null/ for status 200

      response-property-type-changed

    • removed the pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ from the request property transactionDate

      request-property-pattern-removed

    • removed subschema #1 subschema #2 from the class response property anyOf list for the response status 200

      response-property-any-of-removed

    • response property memo list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property sourceAccount/fullName list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property sourceAccount/id list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property sourceAccountBalance list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property targetAccount/fullName list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property targetAccount/id list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property targetAccountBalance list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • the transactionDate response's property pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ was removed for the status 200

      response-property-pattern-removed

    • added the required property class/fullName to the response with the 200 status

      response-required-property-added

    • added the required property class/id to the response with the 200 status

      response-required-property-added

  • 5f832f695675112See the full diff
    • added the pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ to the request property transactionDate

      request-property-pattern-added

    • response property memo list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property sourceAccount/fullName list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property sourceAccount/id list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property sourceAccountBalance list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property targetAccount/fullName list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property targetAccount/id list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property targetAccountBalance list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • the class response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • removed the required property class/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property class/id from the response with the 200 status

      response-required-property-removed

    • added subschema #1 subschema #2 to the class response property anyOf list for the response status 200

      response-property-any-of-added

    • the transactionDate response's property pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ was added for the status 200

      response-property-pattern-added