Developers
API reference

Transfer Accounts

get/v1/transfer-accounts

List transfer accounts

transfer_accounts.listread tokenidempotent

Every account a transfer can land on: the ledger's real asset and liability accounts, closed ones included. A transaction moved to one of these is a transfer between your own accounts, not spending.

Parameters

limit
integer · query
Page size, 1–200.
cursor
string | null · query
The next_cursor of the previous page.
X-Organization-Id
string | null · header

Returns 200 · TransferAccountList

data
array of TransferAccount · required
has_more
boolean · required
next_cursor
string | null · required
Example
curl -X GET "https://api.lumaledger.app/v1/transfer-accounts" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN"
post/v1/transfer-accounts

Create a transfer account

transfer_accounts.createwrite tokenidempotent

Create an asset or liability account for money that goes somewhere the ledger does not track yet (a bank that is not connected, a wallet), so a transfer there can be filed as a transfer instead of spending. Its code is allocated for you and it starts at zero. For an account at a named bank with a known balance, institutions.create_account does more. Send an Idempotency-Key so a retry cannot create it twice.

Parameters

Idempotency-Key
string | null · header
Any unique string (a UUID is ideal). A retry with the same key returns the first attempt's response instead of doing the work twice. Keys are kept for 24 hours.
X-Organization-Id
string | null · header

Body · TransferAccountCreate

name
string · required
type
string · required
asset for somewhere money is kept, liability for a debt it pays down. Pattern: ^(asset|liability)$.

Returns 201 · TransferAccount

code
string · required
id
integer · required
The account id (accounts.get takes it).
institution_id
integer | null · required
The bank it is held at, if any.
institution_name
string | null · required
That bank's name as the ledger shows it (a rename wins).
is_active
boolean · required
False once closed; still a valid destination for old payments.
mask
string | null · required
The last digits of the account number.
name
string · required
role
string | null · required
What the account is for, when known (checking, credit_card, …).
type
string · required
asset or liability.
Example
curl -X POST "https://api.lumaledger.app/v1/transfer-accounts" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "…",
    "type": "…"
  }'

Objects

TransferAccount

An account money can move to or from.

Fields

code
string · required
id
integer · required
The account id (accounts.get takes it).
institution_id
integer | null · required
The bank it is held at, if any.
institution_name
string | null · required
That bank's name as the ledger shows it (a rename wins).
is_active
boolean · required
False once closed; still a valid destination for old payments.
mask
string | null · required
The last digits of the account number.
name
string · required
role
string | null · required
What the account is for, when known (checking, credit_card, …).
type
string · required
asset or liability.

TransferAccountCreate

Fields

name
string · required
type
string · required
asset for somewhere money is kept, liability for a debt it pays down. Pattern: ^(asset|liability)$.

TransferAccountList

A page of transfer accounts, in id order.

Fields

data
array of TransferAccount · required
has_more
boolean · required
next_cursor
string | null · required