SequenceSequence
Transfers
POST/transfers

Creates a manual transfer from a source account to a destination account. The transfer is processed asynchronously - poll GET /transfers/{id} to track status. The token must have a MANUAL_TRANSFER permission entry whose source matches source_account_id and target matches destination_account_id. If max_amount is set on the matching entry, the requested amount must not exceed it.

AuthorizationClick to expand
ApiKeyAuth
Authorization<token>

Format: ApiKey <key>. Keys are scoped to an organization and carry explicit permissions.

Each key holds a list of permission entries. An entry specifies a scope and a resources constraint. A request returns 403 if the key lacks the required scope, or if the requested resource is outside the key's allowed list.

ScopeResourcesGrants access to
LIST_ACCOUNTSnoneList all accounts in the organization
READ_ACCOUNTSaccount IDs or *Full account details and balance for a specific account
LIST_RULESnoneList all rules in the organization
READ_RULESrule IDs or *Full rule details (steps, conditions, actions) for a specific rule
TRIGGER_RULESrule IDs or *Triggering rule executions
READ_RULE_EXECUTIONSrule IDs or *Rule execution history - rule_id filter required
READ_TRANSFERSaccount IDs or *Transfer history - account_id filter required
MANUAL_TRANSFERlist of { source, target, max_amount? } setsCreating manual transfers
READ_CARDSaccount IDs or *Cards and card transactions - account_id filter required

In: header

Header Parameters

Idempotency-Key?string

A client-generated unique key to ensure idempotent processing. Requests with the same key within 24 hours return the original response without re-executing the operation. Recommended format: UUID v4.

X-Request-ID?string

A client-provided request identifier echoed back in the response `X-Request-ID` header and `request_id` body field. If omitted, the server generates one.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

FieldTypeDescription
source_account_id*stringID of the account to transfer from.
destination_account_id*stringID of the account to transfer to.
amount_in_cents*integerAmount to transfer in cents. Minimum $1.00 (100 cents).

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://api.getsequence.io/api/v1/transfers" \  -H "Content-Type: application/json" \  -d '{    "source_account_id": "acc_01HDEF0123",    "destination_account_id": "acc_01HGHI7890",    "amount_in_cents": 50000  }'
{
  "request_id": "req_01HJKL9999",
  "data": {
    "id": "txr_01HJKL5555",
    "amount_in_cents": 50000,
    "direction": "money_out",
    "origin": "user",
    "status": "processing",
    "source": {
      "id": "acc_01HDEF0123",
      "name": "Emergency Fund",
      "type": "pod"
    },
    "destination": {
      "id": "acc_01HGHI7890",
      "name": "Amex Gold ••1234",
      "type": "external_account"
    },
    "rule_id": null,
    "rule_execution_id": null,
    "error_code": null,
    "created_at": "2024-04-25T10:00:00Z",
    "completed_at": null
  }
}
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "Missing or invalid API key."
  }
}
{
  "error": {
    "code": "forbidden",
    "message": "This API key does not have the required permission."
  }
}