Skip to main content

Make a budget transfer

POST /v2/budgets/{budgetId}/transfer

Before you start

If you haven’t already, create a new budget and grab the newly-created budget’s id.

Things to know

  • The currency must be enabled on both budgets. The currency you specify in the transfer must exist on both the source and destination budgets.
  • The amount field is a string. Provide the amount as a string, for example "300" or "300.00".
  • Webhooks are triggered for both budgets. A successful transfer triggers a BoxDebited webhook for the source budget and a BoxCredited webhook for the destination budget.

Request

Use this request to transfer funds from one budget to another, within an account.
curl -i -X POST \
  'https://api.equalsmoney.com/v2/budgets/b489ea2c-0dd1-4fb1-b345-de5a596a5527/transfer?accountId=F12345' \
  -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "destinationBudgetId": "4bf13dc8-d128-4521-99b8-4002b8987499",
    "currency": "USD",
    "amount": "300",
    "reference": "Q4 allocation"
  }'

Path parameters

accountId
string
required
The ID of the account that this budget belongs to.Allowable values: An existing accountId

Request body schema

destinationBudgetId
string
required
The ID of the budget to which you’re transferring funds.Allowable values: An existing budgetId (≤ 36 characters)
currency
string
required
The currency code for the currency that the transfer is in, in ISO 4217 format.Allowable values: 3 characters (^[A-Z]{3}$)
amount
string
required
The amount of funds that you’re transferring.Allowable values: A valid string
reference
string
An optional reference for the transfer.Allowable values: ≤ 18 characters (alphanumeric and basic punctuation)

Response

If your request is successful, you’ll receive a 200 response.
{
  "success": true,
  "debitBoxTransactionId": 179032,
  "creditBoxTransactionId": 179033
}

Error responses

If your request is unsuccessful, you’ll receive one of the following error responses.
404 — Source budget not found
{
  "path": "/v2/budgets/b489ea2c-0dd1-4fb1-b345-de5a596a5527/transfer",
  "message": "source budget not found"
}
404 — Destination budget not found
{
  "path": "/v2/budgets/b489ea2c-0dd1-4fb1-b345-de5a596a5527/transfer",
  "message": "destination budget not found"
}
400 — Cannot transfer to/from forwardDeposits budget
{
  "path": "/v2/budgets/b489ea2c-0dd1-4fb1-b345-de5a596a5527/transfer",
  "message": "Cannot transfer money from/to \"forwardDeposits\" budget"
}
For more detailed information about this request and its response, see the API reference.