Skip to main content
POST
/
transfers
Create Transfer
curl --request POST \
  --url https://{defaultHost}/transfers \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "origin_id": "<string>",
  "amount": 123,
  "destination_id": "<string>",
  "currency": "usd",
  "idempotence_key": "<string>",
  "notes": "<string>",
  "metadata": {},
  "expires_at": "2023-11-07T05:31:56Z",
  "redeemable_count": 123
}
'
{
  "id": "<string>",
  "amount": 123,
  "currency": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "origin_ledger_account_id": "<string>",
  "destination_ledger_account_id": "<string>",
  "origin": {
    "typename": "Company",
    "id": "<string>",
    "route": "<string>",
    "title": "<string>"
  },
  "destination": {
    "typename": "Company",
    "id": "<string>",
    "route": "<string>",
    "title": "<string>"
  },
  "fee_amount": 123,
  "notes": "<string>",
  "metadata": {}
}

Authorizations

Authorization
string
header
required

A company API key, company scoped JWT, app API key, or user OAuth token.

Headers

Api-Version-Date
string<date>

Pins the request to a dated API version. When omitted, the request uses the original (2025-01-01) request/response shapes, so existing unversioned callers are never broken. Generated SDKs always send the latest version they were built against. An unrecognized value is rejected with a 400. The schemas documented here always describe the latest version.

Example:

"2026-06-09"

Body

application/json
origin_id
string
required

The account sending the funds. A user ID (user_xxx), company ID (biz_xxx), or ledger account ID (ldgr_xxx).

amount
number
required

The amount to move, in the transfer currency. For example 25.00.

type
enum<string>

The kind of money movement. Defaults to ledger.

Available options:
ledger,
wallet_send,
claim_link
destination_id
string

The recipient. Required for ledger and wallet_send (a user_/biz_/ldgr_ ID, or — for sends — an email). Omit for claim_link.

currency
string

The currency, such as usd. Required for ledger transfers.

Example:

"usd"

idempotence_key
string | null

Ledger transfers only. A unique key to prevent duplicate transfers.

notes
string | null

Ledger transfers only. A short note describing the transfer.

metadata
object

Ledger transfers only. Custom key-value pairs attached to the transfer.

expires_at
string<date-time> | null

claim_link only. Link expiry as an ISO 8601 timestamp. Defaults to 24 hours from creation.

redeemable_count
integer

claim_link only. How many different users can claim the link. Defaults to 1.

Response

money movement created

A transfer of credit between two ledger accounts.

id
string
required
amount
number
required
currency
string
required
created_at
string<date-time>
required
origin_ledger_account_id
string
required
destination_ledger_account_id
string
required
origin
Company · object
required
destination
Company · object
required
fee_amount
number | null
notes
string | null
metadata
object