D API Types#

Core Types

#

ExternalAccount#
Example
{
  "currency": Currency,
  "currencyMode": "multi",
  "externalId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "ledgerAccounts": LedgerAccountsConnection,
  "link": Link,
  "linkId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "name": "abc123",
  "txs": TxsConnection
}
Field NameDescription
currencyCurrency

The currency of this external account.

currencyModeCurrencyMode!

Indicates if the account allows multiple currencies or is restricted to a single currency

externalIdID!

ID used for the external account

idID!

FRAGMENT ID of External Account

ledgerAccountsLedgerAccountsConnection!

Ledger Accounts linked to this External Account. Ledger Accounts are paginated and sorted in reverse-chronological order by created date.

linkLink!

The Link that this External Account belongs to.

linkIdID!

FRAGMENT ID of this transaction's external link

nameString!
txsTxsConnection!

All Txs in this External Account.


Ledger#

Ledgers are databases designed for managing money

Example
{
  "balanceUTCOffset": "-08:00",
  "created": "2007-12-03T10:15:30Z",
  "dashboardUrl": "abc123",
  "entryStats": LedgerEntryStatsConnection,
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "ik": "some-safe-string-ik",
  "ledgerAccountDataMigrations": LedgerAccountDataMigrationConnection,
  "ledgerAccounts": LedgerAccountsConnection,
  "ledgerEntries": LedgerEntriesConnection,
  "ledgerEntryDataMigrations": LedgerEntryDataMigrationConnection,
  "ledgerEntryGroup": LedgerEntryGroup,
  "ledgerEntryGroups": LedgerEntryGroupsConnection,
  "lines": LedgerLinesConnection,
  "migrations": LedgerMigrationConnection,
  "name": "abc123",
  "schema": Schema,
  "type": "double",
  "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
}
Field NameDescription
balanceUTCOffsetUTCOffset!

When aggregating balances, all transactions within a 24 hour period starting at midnight UTC plus this offset are included in each day.

createdDateTime!
dashboardUrlString!

URL to the FRAGMENT Dashboard for this Ledger.

entryStatsLedgerEntryStatsConnection!

Entry statistics for this Ledger.

idID!
ikSafeString!

The IK passed into the createLedger mutation. This is treated as a unique identifier for this Ledger.

ledgerAccountDataMigrationsLedgerAccountDataMigrationConnection!

Ledger Account data migrations affecting this Ledger.

ledgerAccountsLedgerAccountsConnection!

Query LedgerAccounts in Ledger. Ledger Accounts are paginated and returned in reverse-chronological order by their created date.

ledgerEntriesLedgerEntriesConnection!

Query Ledger Entries in a Ledger. Ledger Entries are paginated and sorted in reverse-chronological order by posted date.

ledgerEntryDataMigrationsLedgerEntryDataMigrationConnection!

Ledger Entry data migrations affecting this Ledger.

ledgerEntryGroupLedgerEntryGroup!

Query a Ledger Entry Group for this Ledger given its key and value.

ledgerEntryGroupsLedgerEntryGroupsConnection!

Query LedgerEntryGroups in Ledger. Ledger Entry Groups are paginated and returned in order lexigraphically key then inverse chronologically by created.

linesLedgerLinesConnection!

List Ledger Lines across accounts in this Ledger, sorted by posted in reverse chronological order. Specify a single Ledger Account via the ledgerAccount field, or query across multiple accounts using the path filter or ledgerAccount.in.

migrationsLedgerMigrationConnection!

Schema migrations affecting this Ledger.

nameString!

The name of the Ledger. Can be updated with the updateLedger mutation.

schemaSchema

Schema key associated with this Ledger.

typeLedgerTypes!
workspaceIdID!
Deprecated

Callers should not need to query or store this value.


LedgerAccount#

A ledger account is a container for money

Example
{
  "balance": "999999999999",
  "balanceChange": "999999999999",
  "balanceChanges": CurrencyAmountConnection,
  "balanceChangesDuring": BalanceChangeDuringConnection,
  "balances": CurrencyAmountConnection,
  "balancesDuring": HistoricalBalanceConnection,
  "childBalance": "999999999999",
  "childBalanceChange": "999999999999",
  "childBalanceChanges": CurrencyAmountConnection,
  "childBalanceChangesDuring": BalanceChangeDuringConnection,
  "childBalances": CurrencyAmountConnection,
  "childBalancesDuring": HistoricalBalanceConnection,
  "childLedgerAccounts": LedgerAccountsConnection,
  "clearingStatus": "cleared",
  "consistencyConfig": LedgerAccountConsistencyConfig,
  "created": "2007-12-03T10:15:30Z",
  "currency": Currency,
  "currencyMode": "multi",
  "dashboardUrl": "abc123",
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "ik": "abc123",
  "ledger": Ledger,
  "ledgerEntries": LedgerEntriesConnection,
  "ledgerId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "lines": LedgerLinesConnection,
  "link": Link,
  "linkedAccount": ExternalAccount,
  "name": "abc123",
  "ownBalance": "999999999999",
  "ownBalanceChange": "999999999999",
  "ownBalanceChanges": CurrencyAmountConnection,
  "ownBalanceChangesDuring": BalanceChangeDuringConnection,
  "ownBalances": CurrencyAmountConnection,
  "ownBalancesDuring": HistoricalBalanceConnection,
  "parentLedgerAccount": LedgerAccount,
  "parentLedgerAccountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "path": "abc123",
  "payment": LedgerAccountPayment,
  "postedWindow": PostedWindow,
  "type": "asset",
  "unreconciledTxs": TxsConnection,
  "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
}
Field NameDescription
balanceInt96!

Total of all lines in this ledger account and child ledger accounts of the same currency as this ledger account

balanceChangeInt96!

How much did the this ledger account's balance change during the specified period. This query will include all child accounts in the same currency as this ledger account.

balanceChangesCurrencyAmountConnection!

How much did the this ledger account's balances change during the specified period. This query will include all child accounts of all currencies.

balanceChangesDuringBalanceChangeDuringConnection!

How much did the ledger account's balances change over a time period with a specified granularity. For example, if the period is 1969-07 and the granularity is daily, the query will return the balance changes for each day in the month.

balancesCurrencyAmountConnection!

Total of all lines in this ledger account and child ledger accounts in all currencies

balancesDuringHistoricalBalanceConnection!

The ledger account's balances over a time period with a specified granularity. For example, if the period is 1969-07 and the granularity is daily, the query will return the balance for each day in the month.

childBalanceInt96!

Total of all lines in child ledger accounts of the same currency as this ledger account

childBalanceChangeInt96!

How much did the this ledger account's childBalance change during the specified period. This query will only include child accounts which are in the same currency as this one. See childBalanceChanges to include children of different currencies.

childBalanceChangesCurrencyAmountConnection!

How much did the this ledger account's child accounts' balances change during the specified period. This query will include all child accounts of all currencies.

childBalanceChangesDuringBalanceChangeDuringConnection!

How much did the ledger account's childBalances change over a time period with a specified granularity. For example, if the period is 1969-07 and the granularity is daily, the query will return the balance changes for each day in the month.

childBalancesCurrencyAmountConnection!

Total of all lines in child ledger accounts of this ledger in all currencies

childBalancesDuringHistoricalBalanceConnection!

The ledger account's childBalances over a time period with a specified granularity. For example, if the period is 1969-07 and the granularity is daily, the query will return the balance for each day in the month.

childLedgerAccountsLedgerAccountsConnection!

The child Ledger Accounts of this Ledger Accountw

clearingStatusLedgerAccountClearingStatus

The clearing status of the Ledger Account. This field is null when the Ledger Account is not configured to be a Clearing account.

consistencyConfigLedgerAccountConsistencyConfig!

The consistency configuration for this Ledger Account. This defines how updates to this Ledger Account's ownBalance are handled.

createdDateTime!
currencyCurrency

Currency of this ledger account

currencyModeCurrencyMode!

Indicates if the account allows multiple currencies or is restricted to a single currency

dashboardUrlString!

URL to the FRAGMENT Dashboard for this Ledger Account.

idID!
ikString!

The idempotency key used to create this account

ledgerLedger!

Ledger this account is in

ledgerEntriesLedgerEntriesConnection!

All Ledger Entries that have posted to this Ledger Account. Ledger Entries are paginated and sorted in reverse-chronological order by posted date.

ledgerIdID!

ID of the ledger this account is in

linesLedgerLinesConnection!

List Ledger Lines in this account, sorted by posted in reverse chronological order. Does not include Ledger Lines from child Ledger Accounts.

linkLink

The Link for the External Account that is linked to this ledger account

linkedAccountExternalAccount

External Account that is linked to this ledger account

nameString

The name of your Ledger Account

ownBalanceInt96!

Total of all lines in this ledger account, excluding all child ledger accounts

ownBalanceChangeInt96!

How much did the this ledger account's ownBalance change during the specified period. This query will exclude all child accounts.

ownBalanceChangesCurrencyAmountConnection!

How much did the this ledger account's ownBalance change during the specified period. This is the total of all lines in this ledger account, excluding all child ledger accounts

ownBalanceChangesDuringBalanceChangeDuringConnection!

How much did the ledger account's ownBalances change over a time period with a specified granularity. For example, if the period is 1969-07 and the granularity is daily, the query will return the balance changes for each day in the month.

ownBalancesCurrencyAmountConnection!

Total of all lines across all currencies in this ledger account, excluding all child ledger accounts

ownBalancesDuringHistoricalBalanceConnection!

The ledger account's ownBalances over a time period with a specified granularity. For example, if the period is 1969-07 and the granularity is daily, the query will return the balance for each day in the month.

parentLedgerAccountLedgerAccount

The parent ledger account of this ledger account

parentLedgerAccountIdID

ID of the parent ledger account of this ledger account

pathString!

The unique Path of the ledger account. This is a slash-delimited string containing the location of an account in its chart of accounts. For accounts created with a schema, this will be composed of account keys. Else, for accounts created with the createLedgerAccounts API, this will be composed of the IKs of an account and its ancestors.

paymentLedgerAccountPayment

Payment configuration of this Ledger Account, if it is a payment account.

postedWindowPostedWindow

The posted timestamp window for this clearing account, representing the earliest and latest posted timestamps across all currencies. This field is null when the Ledger Account is not configured to be a Clearing account or when no entries have been posted to this account.

typeLedgerAccountTypes!
unreconciledTxsTxsConnection!

A list of external account transactions that haven't been reconciled to this ledger account yet. Only populated for linked ledger accounts. Transactions are sorted in reverse chronological order by posted date.

workspaceIdID!
Deprecated

Callers should not need to query or store this value.


LedgerDataMigration#

Represents a data migration for a Ledger.

Example
{
  "currentMigration": LedgerDataMigrationHistoryEntry,
  "history": LedgerDataMigrationHistoryConnection,
  "ledgerEntries": LedgerEntriesConnection,
  "status": "active"
}
Field NameDescription
currentMigrationLedgerDataMigrationHistoryEntry

Current active migration info (null if migration is inactive).

historyLedgerDataMigrationHistoryConnection!

The historical transitions of this migration.

ledgerEntriesLedgerEntriesConnection!

The ledger entries to be migrated.

statusLedgerDataMigrationStatus!

The status of the data migration.


LedgerEntry#
Example
{
  "conditions": [LedgerEntryCondition],
  "created": "2007-12-03T10:15:30Z",
  "dashboardUrl": "abc123",
  "date": "2022-03-28",
  "description": "abc123",
  "groups": [LedgerEntryGroup],
  "hidden": true,
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "ik": "abc123",
  "isReversal": true,
  "isReversed": true,
  "ledger": Ledger,
  "ledgerId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "lines": LedgerLinesConnection,
  "parameters": {"bank_name": "bank-name", "deposit_amount": "10000"},
  "posted": "2007-12-03T10:15:30Z",
  "reversalHistory": LedgerEntriesConnection,
  "reversalPosition": 2277,
  "reversedAt": "2007-12-03T10:15:30Z",
  "reversedBy": LedgerEntry,
  "reverses": LedgerEntry,
  "tags": [LedgerEntryTag],
  "type": "some-safe-string-ik",
  "typeVersion": 2277,
  "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
}
Field NameDescription
conditions[LedgerEntryCondition!]!

The conditions that were satisfied by this Ledger Entry when it was posted.

createdDateTime!

ISO-8601 timestamp this LedgerEntry was created in FRAGMENT .

dashboardUrlString!

URL to the FRAGMENT Dashboard for this Ledger Entry.

dateDate!

Date this LedgerEntry posted to its Ledger e.g. "2021-01-01".

descriptionString

Description posted for this Ledger Entry.

groups[LedgerEntryGroup!]!

The Ledger Entry Groups this Ledger Entry is in.

hiddenBoolean!

Indicates whether this Ledger Entry is hidden when listing Ledger Entries. Reversed and Reversal Ledger Entries are hidden by default because taken together they have no impact on a Ledger's balances.

idID!

The ID of this LedgerEntry.

ikString!

The idempotency key used to post this ledger entry

isReversalBoolean!

Indicates whether this Ledger Entry is a reversal of another Ledger Entry. If so, reverses will point to that Ledger Entry.

isReversedBoolean!

Indicates whether this Ledger Entry has been reversed by another Ledger Entry. If so, reversedBy will point to that Ledger Entry.

ledgerLedger!

The Ledger that this Ledger Entry is posted to.

ledgerIdID!

The ID of the Ledger this Ledger Entry is posted to.

linesLedgerLinesConnection!

Lines posted in this Ledger Entry.

parametersParameters

The parameters used to post this Ledger Entry.

postedDateTime!

ISO-8601 timestamp this LedgerEntry posted to its Ledger.

reversalHistoryLedgerEntriesConnection!

The reversal history of this Ledger Entry. Each entry in this connection shares the same IK.

reversalPositionInt!

The position of this Ledger Entry in its reversalHistory. This is a one-indexed value, so the initial entry will have reversalPosition 1.

reversedAtDateTime

ISO-8601 timestamp of when this Ledger Entry was reversed.

reversedByLedgerEntry

The Ledger Entry that reversed this Ledger Entry.

reversesLedgerEntry

The Ledger Entry that was reversed by this Ledger Entry.

tags[LedgerEntryTag!]!

The set of tags attached to this Ledger Entry.

typeSafeString

The type of the Ledger Entry.

typeVersionInt

The version of the Ledger Entry type used when it was posted.

workspaceIdID!
Deprecated

Callers should not need to query or store this value.


LedgerLine#
Example
{
  "account": LedgerAccount,
  "accountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "amount": "999999999999",
  "created": "2007-12-03T10:15:30Z",
  "currency": Currency,
  "date": "2022-03-28",
  "description": "abc123",
  "externalTransferId": "abc123",
  "externalTransferType": "ach",
  "externalTxId": "abc123",
  "hidden": true,
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "isReversal": true,
  "isReversed": true,
  "key": "abc123",
  "ledger": Ledger,
  "ledgerEntry": LedgerEntry,
  "ledgerEntryId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "ledgerId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "otherTxExternalAccountExternalId": "abc123",
  "otherTxExternalAccountId": "abc123",
  "otherTxExternalId": "abc123",
  "otherTxId": "abc123",
  "posted": "2007-12-03T10:15:30Z",
  "reversedAt": "2007-12-03T10:15:30Z",
  "reversedBy": LedgerLine,
  "reverses": LedgerLine,
  "tags": [LedgerLineTag],
  "tx": Tx,
  "txId": "abc123",
  "type": "credit",
  "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
}
Field NameDescription
accountLedgerAccount!

LedgerAccount that contains this line

accountIdID!
amountInt96!

How much this line's LedgerAccount's balance changed in integer cents (i.e. in USD 100 is 1 dollar, 100 cents)

createdDateTime

ISO-8601 timestamp this LedgerLine was created in FRAGMENT

currencyCurrency

Currency of this LedgerLine

dateDate

Date this LedgerLine posted to its LedgerAccount e.g. "2021-01-01"

descriptionString

Description of this LedgerLine

externalTransferIdString

ID in the external system of the payment or transfer that created the transaction linked to this LedgerLine

externalTransferTypeExternalTransferType

Whether the transaction linked to this LedgerLine was a payment or transfer

externalTxIdString

ID in the external system of the transaction linked to this LedgerLine

hiddenBoolean!

Indicates whether this Ledger Line is hidden when listing Ledger Lines. Reversed and Reversal Ledger Lines are hidden by default because taken together they have no impact on a Ledger Account's balance

idID!
isReversalBoolean!

Indicates whether this Ledger Line is a reversal of another Ledger Line. If so, reverses will point to that Ledger Line.

isReversedBoolean!

Indicates whether this Ledger Line has been reversed by another Ledger Line. If so, reversedBy will point to that Ledger Line.

keyString
ledgerLedger!
ledgerEntryLedgerEntry!

LedgerEntry that contains this line

ledgerEntryIdID!

ID of the LedgerEntry that contains this line

ledgerIdID!

Ledger that contains this line

otherTxExternalAccountExternalIdString

ID in the external system of destination or source bank account for an internal bank transfer. Only for internal bank transfers - see otherTxId

otherTxExternalAccountIdString

FRAGMENT ID of destination or source bank account. Only for internal bank transfers - see otherTxId

otherTxExternalIdString

ID in the external system of transaction in the destination or source bank account. Only for internal bank transfers - see otherTxId

otherTxIdString

FRAGMENT ID of the transaction in the destination account (if sending money from this account) or source account (if pulling money into this account). Only applicable if this line is linked to a transaction created through an internal transfer

postedDateTime

ISO-8601 timestamp this LedgerLine posted to its LedgerAccount

reversedAtDateTime

ISO-8601 timestamp of when this Ledger Line was reversed.

reversedByLedgerLine

The Ledger Line that reverses the balance changes of this Ledger Line.

reversesLedgerLine

The Ledger Line whose balance changes are reversed by this Ledger Line.

tags[LedgerLineTag!]!

Tags attached to this Ledger Line.

txTx

The transaction linked to this LedgerLine

txIdString

FRAGMENT ID of the transaction linked to this LedgerLine

typeTxType!

credit or debit

workspaceIdID!
Deprecated

Callers should not need to query or store this value.


LedgerMigration#

Represents a Schema being applied to a Ledger. It contains metadata about the Ledger, the Schema, and the status of the migration.

Example
{
  "ledger": Ledger,
  "schemaVersion": SchemaVersion,
  "status": "completed"
}
Field NameDescription
ledgerLedger!

The Ledger that the migration is run on.

schemaVersionSchemaVersion!
statusLedgerMigrationStatus!

The status of the Ledger Migration.


Payment#
Example
{"clientSecret": "abc123", "status": "processing"}
Field NameDescription
clientSecretString!

The secret handed to the payments SDK to render the payment method capture.

statusPaymentStatus!

The status of this Payment.


Schema#
Example
{
  "key": "some-safe-string-ik",
  "ledgers": LedgersConnection,
  "name": "abc123",
  "version": SchemaVersion,
  "versions": SchemaVersionConnection
}
Field NameDescription
keySafeString!

The identifier for a Schema. key is unique to a Workspace.

ledgersLedgersConnection!

The paginated list of ledgers the Schema has been applied to.

nameString!

The name of a Schema. It defaults to the key if not provided in your SchemaInput.

versionSchemaVersion!

The metadata for a specific SchemaVersion.

versionsSchemaVersionConnection!

A paginated list of SchemaVersions.


Tx#
Example
{
  "accountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "amount": "999999999999",
  "currency": Currency,
  "date": "2022-03-28",
  "deletedAt": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "externalAccount": ExternalAccount,
  "externalAccountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "externalId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "isDeleted": true,
  "ledgerEntries": LedgerEntriesConnection,
  "ledgerEntryIds": ["3116551f-5efc-4c9e-84ac-5a36a51b09c1"],
  "ledgerLineIds": ["3116551f-5efc-4c9e-84ac-5a36a51b09c1"],
  "ledgerLines": LedgerLinesConnection,
  "link": Link,
  "linkId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "posted": "2007-12-03T10:15:30Z",
  "sequence": 2277,
  "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
}
Field NameDescription
accountIdID!

FRAGMENT ID of this transaction's external account

amountInt96!

Integer amount in cents. Positive indicates money entering the external account, negative indicates money leaving

currencyCurrency

Currency of this Tx

dateDate!

Date this Tx posted to the external account

deletedAtDateTime

ISO-8601 timestamp when this Tx was deleted

descriptionString!

Description at the external account

externalAccountExternalAccount!

The External Account that this transaction belongs to.

externalAccountIdID!

ID in the external system of this transaction's external account

externalIdID!

ID of this transaction in the external system

idID!

FRAGMENT ID of this Tx. If you delete a Tx via deleteCustomTxs, it will not show up in listing queries, but can be resolved by if you lookup by its FRAGMENT ID. If you resync a Tx with the same externalId, its FRAGMENT ID will be different than the previous Tx.

isDeletedBoolean!

Whether this Tx has been deleted via deleteCustomTxs

ledgerEntriesLedgerEntriesConnection!

Returns ledger entries that are linked to this transaction. You can link the same external account to multiple ledgers, so there could be multiple entries associated with one transaction - one for each linked ledger account this transaction has been reconciled with

ledgerEntryIds[ID!]

Same as ledgerEntries, but returns an array of IDs instead

ledgerLineIds[ID!]

Same as ledgerLines, but returns an array of IDs instead

ledgerLinesLedgerLinesConnection!

Returns ledger lines that are linked to this transaction. You can link the same external account to multiple ledgers, so there could be multipe lines associated with one transaction - one for each linked ledger account this transaction has been reconciled with

linkLink!

This transaction's Link.

linkIdID!

FRAGMENT ID of this transaction's Link

postedDateTime!

ISO-8601 timestamp when this Tx posted to the external account

sequenceInt!

When a Tx is deleted and a new Tx is synced with the same externalId, its sequence will be higher than the previous Tx. You can use this to distinguish different instances of Txs that have the same externalId.

workspaceIdID!
Deprecated

Callers should not need to query or store this value.


Workspace#
Example
{"id": "abc123", "name": "abc123"}
Field NameDescription
idString!

The ID of the Workspace

nameString!

The name of the Workspace


Scalars and Enums

#

BalanceChangeDuring#

A single amount and the timestamp requested

Example
{"amount": CurrencyAmount, "period": "2022-Q3"}
Field NameDescription
amountCurrencyAmount!

The balance or balance change

periodPeriod!

The period of the requested balance change


BalanceUpdateConsistencyMode#

Used to configure the write-consistency of a Ledger Account's balance. See Configure consistency.

Example
"eventual"
Enum ValueDescription
eventual
strong

Boolean#

The Boolean scalar type represents true or false.

Example
true

Currency#
Example
{
  "code": "AAVE",
  "customCode": "abc123",
  "customCurrencyId": "some-safe-string-ik",
  "name": "abc123",
  "precision": 2277
}
Field NameDescription
codeCurrencyCode!

The currency code. This is an enum type.

customCodeString

The currency code for custom currencies. This is only set if 'currency' is set to CUSTOM. It can be up to 36 characters long.

customCurrencyIdSafeString

The ID for a custom currency. This is specified when creating the custom currency using the createCustomCurrency mutation.

nameString!

A human readable name for the currency (e.g. United States Dollar). This is used for display purposes.

precisionInt!

The number of decimal places this currency goes to. For example, United States Dollars have a precision of 2 (i.e. 100 cents in a dollar), whereas the Jordanian Dinar has a precision of 3. This is used for display purposes.


CurrencyCode#
Example
"AAVE"
Enum ValueDescription
AAVE
ADA
AED
AFN
ALL
AMD
ANG
AOA
ARS
AUD
AWG
AZN
BAM
BBD
BCH
BDT
BGN
BHD
BIF
BMD
BND
BOB
BRL
BSD
BTC
BTN
BWP
BYR
BZD
CAD
CADC
CADT
CDF
CHF
CLP
CNY
COP
CRC
CUC
CUP
CUSTOM
CVE
CZK
DAI
DJF
DKK
DOP
DZD
EGP
ERN
ETB
ETH
EUR
EURC
FJD
FKP
GBP
GEL
GGP
GHS
GIP
GMD
GNF
GTQ
GYD
HKD
HNL
HRK
HTG
HUF
IDR
ILS
IMP
INR
IQD
IRR
ISK
JMD
JOD
JPY
KES
KGS
KHR
KMF
KPW
KRW
KWD
KYD
KZT
LAK
LBP
LINK
LKR
LOGICAL
LRD
LSL
LTC
LYD
MAD
MATIC
MDL
MGA
MKD
MMK
MNT
MOP
MUR
MVR
MWK
MXN
MYR
MZN
NAD
NGN
NIO
NOK
NPR
NZD
OMR
PAB
PEN
PGK
PHP
PKR
PLN
PTS
PYG
QAR
RON
RSD
RUB
RWF
SAR
SBD
SCR
SDG
SEK
SGD
SHP
SLL
SOL
SOS
SPL
SRD
STN
SVC
SYP
SZL
THB
TJS
TMT
TND
TOP
TRY
TTD
TVD
TWD
TZS
UAH
UGX
UNI
USD
USDC
USDG
USDT
UYU
UZS
VEF
VND
VUV
WST
XAF
XCD
XLM
XOF
XPF
YER
ZAR
ZMW

CurrencyMode#

Defines the currency handling of a LedgerAccount, which can either be restricted to a single currency or allow multiple currencies.

Example
"multi"
Enum ValueDescription
multi
single

Date#

ISO 8601 Date e.g. 1969-07-21

Example
"2022-03-28"

DateTime#

ISO 8601 DateTime e.g. 1969-07-16T13:32:00.000Z. You can also provide a date e.g. 1969-01-01 and it will be converted to 1969-01-01T00:00:00.000Z

Example
"2007-12-03T10:15:30Z"

ExternalTransferType#
Example
"ach"
Enum ValueDescription
ach
card
check
internal
wire

FirstMoment#

The first moment of a specific year, month or day or hour e.g. 1969 or 1969-1 or 1969-1-1 or 1969-1-1T00. All of the previous examples are equivalent to 1969-1-1T00:00:00.000.

Example
"2021-05"

Granularity#
Example
"daily"
Enum ValueDescription
daily
hourly
monthly

HistoricalBalance#

A single amount and the timestamp requested

Example
{"amount": CurrencyAmount, "at": "2021-07"}
Field NameDescription
amountCurrencyAmount!

The balance or balance change

atLastMoment!

The timestamp of the requested balance


ID#

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"3116551f-5efc-4c9e-84ac-5a36a51b09c1"

IkReplay#
Example
{"ik": "some-safe-string-ik", "isIkReplay": true}
Field NameDescription
ikSafeString!
isIkReplayBoolean!

Int#

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
2277

Int96#

A string representing integers as big as 2^120-1. The number is signed so the range is from -1,329,227,995,784,915,872,903,807,060,280,344,575 to 1,329,227,995,784,915,872,903,807,060,280,344,575.

Example
"999999999999"

JSON#

The JSON scalar type represents JSON values as specified by ECMA-404.

Example
"{"key":"value"}"

LastMoment#

The last moment of a specific year, month or day or hour e.g. 1969 or 1969-12 or 1969-12-31 or 1969-12-31T23. All of the previous examples are equivalent to 1969-12-31T23:59:59.999.

Example
"2021-07"

LedgerAccountClearingStatus#

The clearing status of a Ledger Account.

Example
"cleared"
Enum ValueDescription
cleared

The account has no outstanding balances.

pending

The account has outstanding balances that have not been cleared.


LedgerDataMigrationStatus#

The status of a ledger data migration.

Example
"active"
Enum ValueDescription
active

The migration is active.

inactive

The migration is inactive.


LedgerLinesConsistencyMode#
Example
"eventual"
Enum ValueDescription
eventual
strong

LedgerMigrationStatus#

The status of a ledger migration.

Example
"completed"
Enum ValueDescription
completed

The Ledger Migration has been successfully completed. This is a terminal state.

failed

The Ledger Migration has failed. This can happen either due to an invalid schema or an internal error. This is a terminal state.

queued

The Ledger Migration has been queued.

skipped

The Ledger Migration has been skipped because a newer version is available. This is a terminal state.

started

The Ledger Migration has been started.


LedgerTypes#
Example
"double"
Enum ValueDescription
double

LinkType#

The type of Link an external account belongs to.

Example
"CustomLink"
Enum ValueDescription
CustomLink

A Custom Link

IncreaseLink

An Increase Link

StripeLink

A Stripe Link

UnitLink

A Unit Link


ParameterizedString#

A string of non-zero length that can contain parameterized values via handlebars syntax. ex: "Hello from {{country}}".

Example
"assets/bank:{{bank_name}}"

Parameters#

A mapping of parameter keys to values.

Example
{"bank_name": "bank-name", "deposit_amount": "10000"}

PaymentStatus#

EXPERIMENTAL — subject to change.

Example
"processing"
Enum ValueDescription
processing
requires_confirmation
settled

Period#

A specific year ("2021"), quarter ("2021-Q1"), month ("2021-02"), day ("2021-02-03") or hour ("2021-02-03T04")

Example
"2022-Q3"

PostLinesAs#

Controls how lines are posted for a Ledger Entry. New entries created via the dashboard default to net_amounts. Existing entries without this field set are treated as raw_lines.

Example
"net_amounts"
Enum ValueDescription
net_amounts

Lines targeting the same account, currency, and tx are aggregated into a single line with the net amount. Lines that sum to zero are skipped. If all lines sum to zero, no lines are skipped.

raw_lines

Lines are posted as-is without aggregation.

skip_zero_lines

Lines with a zero amount are skipped, but lines are not aggregated. If all lines have a zero amount, no lines are skipped.


ReadBalanceConsistencyMode#

The consistency configuration of a Ledger Account's balance queries. If not provided as an argument to a balance query, the default behavior is to read eventually consistent balances. See Configure consistency.

Example
"eventual"
Enum ValueDescription
eventual

Balance queries will read eventually consistent balances. This is the default behavior if ReadBalanceConsistencyMode is not provided as an argument to the balance field. Both Ledger Accounts configured with strongly and eventually consistent balance updates support this enum.

strong

Balance queries will read strongly consistent balances. This is only allowed if the Ledger Account's ownBalanceUpdates in its consistencyConfig is strong.

use_account

Balance queries will use the value from the Ledger Account's ownBalanceUpdates in its consistencyConfig.


SafeString#

A string with delimiter characters /, #, and : disallowed, as well as parameters in {{handlebar}} syntax.

Example
"some-safe-string-ik"

SceneEventType#
Example
"entry"
Enum ValueDescription
entry

SchemaConsistencyMode#

The consistency modes available for entities created within this Schema.

Example
"eventual"
Enum ValueDescription
eventual

Eventually consistent entity updates

strong

Strongly consistent entity updates


SchemaLedgerAccountStatus#

The status of a Ledger Account.

Example
"active"
Enum ValueDescription
active

The Ledger Account is active.

archived

The Ledger Account is archived.

disabled

The Ledger Account is disabled.


SchemaLedgerEntryStatus#

The status of a Ledger Entry.

Example
"active"
Enum ValueDescription
active

The Ledger Entry is active.

archived

The Ledger Entry is archived.

disabled

The Ledger Entry is disabled.


SchemaPaymentEntryStatus#

The status of a Payment Type.

Example
"active"
Enum ValueDescription
active

The Payment Type is active.


SchemaPaymentTypeDirection#

The direction a Payment Type moves money.

Example
"payin"
Enum ValueDescription
payin

Money moves into the Payment Account.

payout

Money moves out of the Payment Account.


SchemaSystemLineKind#

Identifies a system-owned line in a payment entry. The amounts of system lines are filled by FRAGMENT when the payment entry is posted.

Example
"payment_fee_line"
Enum ValueDescription
payment_fee_line

The line carrying the FRAGMENT fee amount, posted to the Payment Account.

payment_settlement_line

The line carrying the settled payment amount, posted to the Payment Account.


String#

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

TxType#
Example
"credit"
Enum ValueDescription
credit
debit

UTCOffset#

All hour-aligned offsets from -11:00 to +12:00 are supported, e.g. "-08:00" (PT), "-05:00" (ET), "+00:00" (UTC)

Example
"-08:00"

Input Types

#

AddLedgerEntryInput#
Example
{"entry": LedgerEntryInput, "ik": "some-safe-string-ik"}
Input FieldDescription
entryLedgerEntryInput!

The Ledger Entry to add

ikSafeString!

The Idempotency Key for this Ledger Entry


ChartOfAccountsInput#

The input for your Chart of Accounts in a Schema.

Example
{
  "accounts": [SchemaLedgerAccountInput],
  "defaultConsistencyConfig": LedgerAccountConsistencyConfigInput,
  "defaultCurrency": CurrencyMatchInput,
  "defaultCurrencyMode": "multi"
}
Input FieldDescription
accounts[SchemaLedgerAccountInput!]!

The Ledger Accounts modeled by your Schema. Ledger Accounts may be nested up to a maximum depth of 10.

defaultConsistencyConfigLedgerAccountConsistencyConfigInput

The default consistency configuration for all Ledger Accounts in this Schema. If a Ledger Account does not specify its own consistency configuration, it will use the default values provided here. See Configure consistency.

defaultCurrencyCurrencyMatchInput

The default currency of each Ledger Account in the Chart Of Accounts. It must be provided if defaultCurrencyMode is set to single. Additionally, defaultCurrency must be omitted if defaultCurrencyMode is set to multi.

defaultCurrencyModeCurrencyMode

The default currency mode of each Ledger Account in the Chart Of Accounts.


CreateCustomCurrencyInput#
Example
{
  "customCode": "abc123",
  "customCurrencyId": "some-safe-string-ik",
  "name": "abc123",
  "precision": 2277
}
Input FieldDescription
customCodeString!

The currency code for custom currencies. It can be up to 36 characters long. This is used for display purposes.

customCurrencyIdSafeString!

The ID for a custom currency. This is specified when creating the custom currency using the createCustomCurrency mutation. It can be up to 36 characters long.

nameString!

A human readable name for the currency (e.g. United States Dollar). This is used for display purposes.

precisionInt!

The number of decimal places this currency goes to. For example, United States Dollars have a precision of 2 (i.e. 100 cents in a dollar), whereas the Jordanian Dinar has a precision of 3. This is used for display purposes.


CreateLedgerAccountInput#
Example
{
  "consistencyConfig": LedgerAccountConsistencyConfigInput,
  "currency": CurrencyMatchInput,
  "currencyMode": "multi",
  "linkedAccount": ExternalAccountMatchInput,
  "name": "abc123",
  "parent": LedgerAccountMatchInput,
  "type": "asset"
}
Input FieldDescription
consistencyConfigLedgerAccountConsistencyConfigInput

The consistency configuration for this Ledger Account. This defines how updates to this Ledger Account's balance are handled.

currencyCurrencyMatchInput

The currency of this Ledger Account. If this is not set, and currencyMode is not set to multi, the workspace-level default is used.

currencyModeCurrencyMode

If set to multi, creates a multi-currency Ledger Account. If set to single, creates a single-currency Ledger Account.

linkedAccountExternalAccountMatchInput

The External Account to link to this Ledger Account.

nameString!

The human-readable name of this Ledger Account.

parentLedgerAccountMatchInput

The parent of this Ledger Account.

typeLedgerAccountTypes

The type of ledger account to create. Required if this is a top-level Ledger Account. If not provided, the type will be inferred from the parent.


CreateLedgerAccountsInput#
Example
{
  "childLedgerAccounts": [CreateLedgerAccountsInput],
  "consistencyConfig": LedgerAccountConsistencyConfigInput,
  "currency": CurrencyMatchInput,
  "currencyMode": "multi",
  "ik": "some-safe-string-ik",
  "linkedAccount": ExternalAccountMatchInput,
  "name": "abc123",
  "parent": LedgerAccountMatchInput,
  "type": "asset"
}
Input FieldDescription
childLedgerAccounts[CreateLedgerAccountsInput!]

Ledger Accounts to create as children of this Ledger Account.

consistencyConfigLedgerAccountConsistencyConfigInput

The consistency configuration for this ledger account. See Configure consistency.

currencyCurrencyMatchInput

The currency of this Ledger Account. If this is not set, the workspace level default is used.

currencyModeCurrencyMode

The currency mode of this Ledger Account. If this is not set, the workspace level default is used.

ikSafeString!

The idempotency key for creating this Ledger Account.

linkedAccountExternalAccountMatchInput

The External Account to link to this Ledger Account. This can only be specified on leaf Ledger Accounts. See Reconcile payments.

nameString!

The name of the Ledger Account.

parentLedgerAccountMatchInput

The parent of this Ledger Account. This is only valid on the top level Ledger Account in the payload.

typeLedgerAccountTypes

The type of this Ledger Account. This field is only required if this is a root Ledger Account. Otherwise, the type will get inherited from its parent.


CreateLedgerInput#
Example
{"balanceUTCOffset": "-08:00", "name": "abc123", "type": "double"}
Input FieldDescription
balanceUTCOffsetUTCOffset

Use this field to specify a timezone for queries to your Ledger. When aggregating balances, all transactions within a 24 hour period starting at midnight UTC are included in each day. You can specify a different starting hour for balances. For example, use "-08:00" to align balances with Pacific Standard Time. Balance queries would then consider the start of each local day to be at 8am UTC the next day in UTC. The default timezone is UTC.

nameString!
typeLedgerTypes

CreatePaymentInput#

EXPERIMENTAL: The Payment to create.

Example
{
  "parameters": "{"key":"value"}",
  "type": "some-safe-string-ik",
  "typeVersion": 2277
}
Input FieldDescription
parametersJSON

Parameters for the specific Payment Type.

typeSafeString!

The type of the Payment. Must be defined in the Schema linked to the Ledger.

typeVersionInt

The version of the Payment Type. Defaults to the latest active version.


CustomAccountInput#
Example
{
  "currency": CurrencyMatchInput,
  "currencyMode": "multi",
  "externalId": "some-safe-string-ik",
  "name": "abc123"
}
Input FieldDescription
currencyCurrencyMatchInput

The currency of this external account. If this is not set, the workspace level default is used. 'currency' cannot be set if 'currencyMode' is 'multi'.

currencyModeCurrencyMode

The currency mode of this external account. If set to multi, creates a multi-currency account.

externalIdSafeString!

The ID of this account at the external system. This is used as the idempotency key, within the scope of its Custom Link.

nameString!

The name of the account at the external system.


CustomTxInput#
Example
{
  "account": ExternalAccountMatchInput,
  "amount": "999999999999",
  "currency": CurrencyMatchInput,
  "description": "abc123",
  "externalId": "some-safe-string-ik",
  "posted": "2007-12-03T10:15:30Z"
}
Input FieldDescription
accountExternalAccountMatchInput!
amountInt96!
currencyCurrencyMatchInput

The currency of this tx. Should be set for multi-currency accounts.

descriptionString!
externalIdSafeString!

The ID of this tx at the external system. This is used as the idempotency key, within the scope of its Custom Account.

postedDateTime!

GroupInput#

A Group in a Schema. Group define sequences of Ledger Entries and can help with reconciliation tasks.

Example
{
  "description": "assets/bank:{{bank_name}}",
  "key": "some-safe-string-ik",
  "reconciliation": GroupReconciliationParametersInput
}
Input FieldDescription
descriptionParameterizedString

Human-readable description of the Group.

keySafeString!

The key of this Group. This combined with its value is a stable, unique identifier for this group.

reconciliationGroupReconciliationParametersInput

The parameters that are used to enable reconciliation abilities in a group.


GroupReconciliationParametersInput#

A set of parameters that are used to enable reconciliation abilities in a group

Example
{"clearingAccountPath": SchemaLedgerAccountMatchInput}
Input FieldDescription
clearingAccountPathSchemaLedgerAccountMatchInput!

The path to the clearing account for this group. A clearing account is an account that is used to indicate funds that are in transit. Also called a suspense account, pending account, or zero balance account.


Int96ConditionInput#

A condition that must be met on an Int96 field.

Example
{"eq": "999999999999", "gte": "999999999999", "lte": "999999999999"}
Input FieldDescription
eqInt96

Amount must exactly match this value. You may not specify this alongside gte or lte.

gteInt96

Amount must be greater than or equal to this value.

lteInt96

Amount must be less than or equal to this value.


LedgerAccountConditionInput#

A set of conditions that a Ledger Account must meet for an operation to succeed.

Example
{
  "ownBalance": Int96ConditionInput,
  "totalBalance": Int96ConditionInput
}
Input FieldDescription
ownBalanceInt96ConditionInput

A condition that the ownBalance field must satisfy. Note that this condition always applies to the latest balance, not to balances at a specific date or time. See Read balances for more on the different types of Ledger Account balances.

totalBalanceInt96ConditionInput

A condition that the totalBalance field must satisfy. Note that this condition always applies to the latest balance, not to balances at a specific date or time. See Read balances for more on the different types of Ledger Account balances.


LedgerAccountConsistencyConfigInput#

The payload configuring the consistency for this Ledger Account. See Configure consistency.

Example
{
  "groups": [LedgerAccountGroupConsistencyConfigInput],
  "lines": "eventual",
  "ownBalanceUpdates": "eventual",
  "totalBalanceUpdates": "eventual"
}
Input FieldDescription
groups[LedgerAccountGroupConsistencyConfigInput!]

The consistency configuration for Ledger Entry Groups affecting this account. See Configure consistency.

linesLedgerLinesConsistencyMode

If set to strong, then a Ledger Account's lines updates will be strongly consistent with the API response. This Ledger Account's balance will be updated and available for strongly consistent reads before you receive an API response. Otherwise if unset or set to eventual, lines updates are applied asynchronously and may not be immediately reflected in queries. See Configure consistency.

ownBalanceUpdatesBalanceUpdateConsistencyMode

If set to strong, then a Ledger Account's ownBalance updates will be strongly consistent with the API response. This Ledger Account's balance will be updated and available for strongly consistent reads before you receive an API response. Otherwise if unset or set to eventual, ownBalance updates are applied asynchronously and may not be immediately reflected in queries. See Configure consistency.

totalBalanceUpdatesBalanceUpdateConsistencyMode

EXPERIMENTAL: If set to strong, then a Ledger Account's totalBalance updates will be strongly consistent with the API response. This Ledger Account's balance will be updated and available for strongly consistent reads before you receive an API response. Otherwise if unset or set to eventual, totalBalance updates are applied asynchronously and may not be immediately reflected in queries. See Configure consistency.


LedgerAccountGroupConsistencyConfigInput#

The consistency configuration for a specific Ledger Entry Group in this account.

Example
{"key": "some-safe-string-ik", "ownBalanceUpdates": "eventual"}
Input FieldDescription
keySafeString!

The group key for this configuration.

ownBalanceUpdatesBalanceUpdateConsistencyMode!

If set to strong, then Ledger Entry Group ownBalances updates for this account will be strongly consistent with the API response. This Ledger Account's Ledger Entry Group balances will be updated and available for strongly consistent reads before you receive an API response. Otherwise if unset or set to eventual, Ledger Entry Group ownBalance updates are applied asynchronously and may not be immediately reflected in queries. See Configure consistency.


LedgerEntryConditionInput#

A set of pre-conditions and post-conditions that a Ledger Account balance must meet for an operation to succeed. You must specify at least one of precondition or postcondition for each condition.

Example
{
  "account": LedgerAccountMatchInput,
  "currency": CurrencyMatchInput,
  "postcondition": LedgerAccountConditionInput,
  "precondition": LedgerAccountConditionInput
}
Input FieldDescription
accountLedgerAccountMatchInput!

The Ledger Account that must satisfy the provided conditions.

currencyCurrencyMatchInput

For Ledger Accounts in the multi currency mode, you must specify the currency of the balance affected by the condition. You only need to specify this field for multi-currency accounts.

postconditionLedgerAccountConditionInput

The conditions that must hold after the operation.

preconditionLedgerAccountConditionInput

The conditions that must hold prior to the operation.


LedgerEntryGroupInput#
Example
{"key": "some-safe-string-ik", "value": "some-safe-string-ik"}
Input FieldDescription
keySafeString!

The key of this group. Can be up to 128 characters long.

valueSafeString!

The value associated with this group's key. Can be up to 128 characters long.


LedgerEntryInput#

Ledger Entries are limited to 30 Ledger Lines.

Example
{
  "conditions": [LedgerEntryConditionInput],
  "description": "abc123",
  "groups": [LedgerEntryGroupInput],
  "ledger": LedgerMatchInput,
  "lines": [LedgerLineInput],
  "parameters": "{"key":"value"}",
  "posted": "2007-12-03T10:15:30Z",
  "tags": [LedgerEntryTagInput],
  "type": "abc123",
  "typeVersion": 2277
}
Input FieldDescription
conditions[LedgerEntryConditionInput!]

Conditions that must be satisfied to post this Ledger Entry. The Ledger Entry will reject with a BadRequestError if any condition is not met. You can only add a condition on a Ledger Account containing a Line in this Ledger Entry.

descriptionString

If specified, will also be used as the description for LedgerLines unless they specify their own description.

groups[LedgerEntryGroupInput!]

Adds this Ledger Entry to this set of Ledger Entry Groups

ledgerLedgerMatchInput

The Ledger to which to post this Ledger Entry. Must be linked to a Schema that defines the provided Ledger Entry type.

lines[LedgerLineInput!]

The Ledger Lines to create as part of this Ledger Entry. This cannot be used with Ledger Entries that have a 'type' i.e. Ledger Entries defined in the Schema. This can be useful during non-routine operations such as an incident. It is not recommended to use 'lines' during routine operations.

parametersJSON

Parameters to be included in a templated Ledger Entry. All provided parameters must be present in the typed Ledger Entry within the Schema linked to the provided Ledger.

postedDateTime

ISO 8601 timestamp to post this Ledger Entry e.g. "2021-01-01" or "2021-01-01T16:45:00Z". Will error out if supplied to reconcileTx or createOrder since the transaction timestamp will be used instead

tags[LedgerEntryTagInput!]

A set of tags attached to this Ledger Entry.

typeString

The type of the Ledger Entry. Must be defined in the Schema linked to the Ledger specified below.

typeVersionInt

Experimental: This field is reserved for an upcoming feature and is not yet supported.


LedgerEntryTagInput#
Example
{"key": "some-safe-string-ik", "value": "some-safe-string-ik"}
Input FieldDescription
keySafeString!

The key of this tag. Can be up to 128 characters long.

valueSafeString!

The value associated with this tag's key. Can be up to 128 characters long.


LedgerLineInput#
Example
{
  "account": LedgerAccountMatchInput,
  "amount": "999999999999",
  "currency": CurrencyMatchInput,
  "description": "abc123",
  "key": "abc123",
  "tags": [LedgerEntryTagInput],
  "tx": TxMatchInput
}
Input FieldDescription
accountLedgerAccountMatchInput!

The LedgerAccount this line is being added to

amountInt96

A positive amount increases the balance of its LedgerAccount, a negative amount reduces the balance of its LedgerAccount

currencyCurrencyMatchInput

The currency the ledger line is in

descriptionString

If not specified the description from the parent LedgerEntryInput will be used

keyString

Optional identifier for Ledger Line. You can filter lines by key using LedgerLinesFilterSet.

tags[LedgerEntryTagInput!]

A set of tags attached to this Ledger Line.

txTxMatchInput

Required for reconcileTx to specify the transaction being reconciled, you can specify either the FRAGMENT ID or external ID of the transaction


LedgerLineTagInput#
Example
{"key": "some-safe-string-ik", "value": "some-safe-string-ik"}
Input FieldDescription
keySafeString!

The key of this tag. Can be up to 128 characters long.

valueSafeString!

The value associated with this tag's key. Can be up to 128 characters long.


MigrateLedgerEntryInput#

An object defining the input for migrating a Ledger Entry.

Example
{
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "newLedgerEntry": LedgerEntryInput
}
Input FieldDescription
idID!

The Ledger Entry to migrate

newLedgerEntryLedgerEntryInput!

The Ledger Entry you want to migrate it to


SceneEntryInput#

A simulated Ledger Entry posted as a part of a Scene.

Example
{
  "parameters": "{"key":"value"}",
  "type": "some-safe-string-ik",
  "typeVersion": 2277
}
Input FieldDescription
parametersJSON

Any parameters to be used as inputs to this simulated Ledger Entry.

typeSafeString!

The type of the simulated Ledger Entry. Must match one of the types provided in schema.ledgerEntries.types.

typeVersionInt

The version of the Ledger Entry type.


SceneEventInput#
Example
{"entry": SceneEntryInput, "eventType": "entry"}
Input FieldDescription
entrySceneEntryInput!

The simulated Ledger Entry.

eventTypeSceneEventType!

The type of the Scene Event. Currently, only entries are supported.


SceneInput#
Example
{"events": [SceneEventInput], "name": "abc123"}
Input FieldDescription
events[SceneEventInput!]!

A list of simulated ledger entries that make up the Scene.

nameString!

The human-readable name of the Scene.


SchemaConditionInput#

A condition that must be met on a Ledger Account balance. The condition can be either a precondition or postcondition.

Example
{
  "ownBalance": SchemaInt96ConditionInput,
  "totalBalance": SchemaInt96ConditionInput
}
Input FieldDescription
ownBalanceSchemaInt96ConditionInput

A condition on the ownBalance of the Ledger Account.

totalBalanceSchemaInt96ConditionInput

A condition on the totalBalance of the Ledger Account.


SchemaConsistencyConfigInput#

The consistency configuration for entities created within Ledgers created by this Schema.

Example
{"entries": "eventual"}
Input FieldDescription
entriesSchemaConsistencyMode

The consistency mode for the Ledger Entries list query within Ledgers created by this Schema. See Configure consistency.


SchemaInput#

Input to the API for creating a Schema.

Example
{
  "chartOfAccounts": ChartOfAccountsInput,
  "consistencyConfig": SchemaConsistencyConfigInput,
  "groups": [GroupInput],
  "key": "some-safe-string-ik",
  "ledgerEntries": SchemaLedgerEntriesInput,
  "name": "assets/bank:{{bank_name}}",
  "payments": SchemaPaymentsInput,
  "scenes": [SceneInput]
}
Input FieldDescription
chartOfAccountsChartOfAccountsInput!

The Chart of Accounts for the Schema.

consistencyConfigSchemaConsistencyConfigInput

The consistency configuration for this Schema.

groups[GroupInput!]

Any groups associated with this Schema.

keySafeString!

The key of the Schema. This is a stable, unique identifier for the Schema. Uniqueness is enforced at the Workspace level.

ledgerEntriesSchemaLedgerEntriesInput

The Ledger Entries to add to the Schema.

nameParameterizedString

The human-readable name of the Schema.

paymentsSchemaPaymentsInput

EXPERIMENTAL: The Payment Types to add to the Schema.

scenes[SceneInput!]

Any scenes associated with this Schema.


SchemaInt96ConditionInput#

A condition that must be met on a field.

Example
{
  "eq": "assets/bank:{{bank_name}}",
  "gte": "assets/bank:{{bank_name}}",
  "lte": "assets/bank:{{bank_name}}"
}
Input FieldDescription
eqParameterizedString

Amount must be exactly equal to this value. You may not specify this alongside gte or lte.

gteParameterizedString

Amount must be greater than or equal to this value.

lteParameterizedString

Amount must be less than or equal to this value.


SchemaLedgerAccountInput#

Models a Ledger Account in a Schema. Upon successfully storing a Schema, a LedgerAccount will be created for each corresponding non-templated SchemaLedgerAccountInput in your Chart of Accounts.

Example
{
  "children": [SchemaLedgerAccountInput],
  "clearing": true,
  "consistencyConfig": LedgerAccountConsistencyConfigInput,
  "currency": SchemaCurrencyMatchInput,
  "currencyMode": "multi",
  "key": "some-safe-string-ik",
  "linkedAccount": SchemaExternalAccountMatchInput,
  "name": "assets/bank:{{bank_name}}",
  "payment": SchemaPaymentInput,
  "status": "active",
  "template": true,
  "type": "asset"
}
Input FieldDescription
children[SchemaLedgerAccountInput!]

Ledger Accounts to create as children of this Ledger Account. Ledger Accounts may be nested up to a maximum depth of 10.

clearingBoolean

EXPERIMENTAL: Whether or not this Ledger Account is a Clearing Account. Clearing Accounts have balances that should tend to zero. They are used to track in-progress workflows and payments.

consistencyConfigLedgerAccountConsistencyConfigInput

The consistency configuration for this ledger account. See Configure consistency.

currencySchemaCurrencyMatchInput

The currency of this Ledger Account. If this is not set, and currencyMode is not set to multi, it is derived from the Chart of Accounts' default.

currencyModeCurrencyMode

If set to multi, creates a multi-currency Ledger Account. If set to single, creates a single-currency Ledger Account.

keySafeString!

The key of this Ledger Account. Keys are used to formulate the unique path of the Ledger Account in your Chart of Accounts. Siblings must have unique keys.

linkedAccountSchemaExternalAccountMatchInput

The External Account to link to this Ledger Account. It must be provided of linked is true.

nameParameterizedString

The human-readable name of this Ledger Account.

paymentSchemaPaymentInput

EXPERIMENTAL: Marks this as a Payment Account.

statusSchemaLedgerAccountStatus

The status of this Ledger Account. Defaults to active.

templateBoolean

Whether or not this Ledger Account should be templated.

typeLedgerAccountTypes

The type of ledger account to create. Required if this is a top-level Ledger Account. If not provided, the type will be inferred from the parent.


SchemaLedgerEntriesInput#

The Ledger Entries in your Schema.

Example
{"types": [SchemaLedgerEntryInput]}
Input FieldDescription
types[SchemaLedgerEntryInput!]!

A list of Ledger Entry definitions.


SchemaLedgerEntryConditionInput#

A condition that must be met on a Ledger Account when a Ledger Entry is posted.

Example
{
  "account": SchemaLedgerAccountMatchInput,
  "currency": SchemaCurrencyMatchInput,
  "postcondition": SchemaConditionInput,
  "precondition": SchemaConditionInput,
  "repeated": SchemaRepeatedConfigInput
}
Input FieldDescription
accountSchemaLedgerAccountMatchInput!

The Ledger Account to apply the condition to.

currencySchemaCurrencyMatchInput

The currency of the balance to apply the condition to. Required if the Ledger Account matched is a multi-currency Ledger Account. Otherwise, this field is defaults to the Ledger Account's currency.

postconditionSchemaConditionInput

A postcondition must be met after the Ledger Entry updates are applied.

preconditionSchemaConditionInput

A precondition must be met before any Ledger Entry updates are applied.

repeatedSchemaRepeatedConfigInput

Repeated expansion configuration. When set, this condition is expanded at runtime for each element in the array parameter named by the key.


SchemaLedgerEntryGroupInput#

A Ledger Entry Group associated with a Ledger Entry type.

Example
{"key": "some-safe-string-ik", "value": "assets/bank:{{bank_name}}"}
Input FieldDescription
keySafeString!

The key for this Ledger Entry Group.

valueParameterizedString!

The value associated with this Ledger Entry Group.


SchemaLedgerEntryInput#

A Ledger Entry in a Schema. All Ledger Entries defined in a Schema must have a unique type.

Example
{
  "conditions": [SchemaLedgerEntryConditionInput],
  "description": "assets/bank:{{bank_name}}",
  "groups": [SchemaLedgerEntryGroupInput],
  "lines": [SchemaLedgerLineInput],
  "parameters": "{"key":"value"}",
  "postLinesAs": "net_amounts",
  "status": "active",
  "tags": [SchemaLedgerEntryTagInput],
  "type": "some-safe-string-ik",
  "typeVersion": 2277
}
Input FieldDescription
conditions[SchemaLedgerEntryConditionInput!]

Conditions that must be satisfied to post this Ledger Entry. The Ledger Entry will reject with a BadRequestError if any condition is not met. You can only add a condition on a Ledger Account containing a Line in this Ledger Entry.

descriptionParameterizedString

Human-readable description of the Ledger Entry.

groups[SchemaLedgerEntryGroupInput!]

Ledger Entries posted with this type will be in these Ledger Entry Groups.

lines[SchemaLedgerLineInput!]

The Ledger Lines in the Ledger Entry. If provided, when posting a Typed Entry, a LedgerEntry will be posted containing LedgerLines corresponding to the values you provide here. If your lines contain parameters, you must supply values for those parameters that balance out the Ledger Entry. If not provided, lines will be required when posting a Typed Entry.

parametersJSON

Fixed partial set of parameters to be included in a templated Ledger Entry.

postLinesAsPostLinesAs

Controls how lines are posted. When set to net_amounts, all lines targeting the same account, currency, and tx are aggregated into a single line with the net amount, and lines that sum to zero are skipped. When set to skip_zero_lines, lines with a zero amount are skipped but not aggregated. In both modes, if all lines are zero, no lines are skipped. When set to raw_lines, lines are posted as-is without aggregation. New entries created via the dashboard default to net_amounts. Existing entries without this field set are treated as raw_lines.

statusSchemaLedgerEntryStatus

The status of this Ledger Entry. Defaults to active.

tags[SchemaLedgerEntryTagInput!]

Ledger Entries posted with this type will be associated with these tags.

typeSafeString!

The type of this Ledger Entry. This is a stable, unique identifier for this entry. Uniqueness is enforced at the Schema level. You can filter on this field when querying for Ledger Entries. See the docs on LedgerEntryFilterSet

typeVersionInt

The version of the Ledger Entry type.


SchemaLedgerEntryTagInput#

A tag associated with a Ledger Entry type.

Example
{"key": "some-safe-string-ik", "value": "assets/bank:{{bank_name}}"}
Input FieldDescription
keySafeString!

The key for this tag.

valueParameterizedString!

The value associated with the given key for this tag.


SchemaLedgerLineInput#

A Ledger Line in a Ledger Entry.

Example
{
  "account": SchemaLedgerAccountMatchInput,
  "amount": "assets/bank:{{bank_name}}",
  "currency": SchemaCurrencyMatchInput,
  "description": "assets/bank:{{bank_name}}",
  "key": "some-safe-string-ik",
  "repeated": SchemaRepeatedConfigInput,
  "tags": [SchemaLedgerEntryTagInput],
  "tx": SchemaTxMatchInput
}
Input FieldDescription
accountSchemaLedgerAccountMatchInput!

The Ledger Account this Ledger Line will be posted to. It supports parameters in its attributes via handlebars syntax.

amountParameterizedString

The amount of the Ledger Line. It supports parameters via the handlebars syntax and addition (+) and subtraction (-).

currencySchemaCurrencyMatchInput

The currency of the Ledger Line. This is required if the Ledger Account has currencyMode multi. It supports parameters in its attributes via handlebars syntax.

descriptionParameterizedString

Human-readable description of the line.

keySafeString!

The key for the Ledger Line. Ledger Line keys must be unique within a Ledger Entry. Key can be filtered on as part of the LedgerLinesFilterSet.

repeatedSchemaRepeatedConfigInput

Repeated expansion configuration. When set, this line is expanded at runtime for each element in the array parameter named by the key.

tags[SchemaLedgerEntryTagInput!]

Tags to attach to this Ledger Line. Supports parameterized values via handlebars syntax.

txSchemaTxMatchInput

The external transaction to reconcile. This field is required if the Ledger Account being posted to is a Linked Ledger Account. Otherwise, this field is disallowed. It supports parameters in its attributes via handlebars syntax. See the docs on reconciling payments.


SchemaPaymentAccountingInput#

EXPERIMENTAL: The Ledger Entries a Payment Type posts as a payment moves through its lifecycle, keyed by lifecycle transition.

Example
{
  "needs_confirmation_to_processing": SchemaPaymentEntryInput,
  "processing_to_settled": SchemaPaymentEntryInput
}
Input FieldDescription
needs_confirmation_to_processingSchemaPaymentEntryInput

Posted when the payment enters processing. Optional.

processing_to_settledSchemaPaymentEntryInput!

Posted when the payment settles. Every Payment Type must define it.


SchemaPaymentEntryInput#

EXPERIMENTAL: The Ledger Entry a Payment Type posts on a payment lifecycle event.

Example
{
  "description": "assets/bank:{{bank_name}}",
  "lines": [SchemaPaymentLineInput]
}
Input FieldDescription
descriptionParameterizedString

Human-readable description of the payment entry.

lines[SchemaPaymentLineInput!]!

The Ledger Lines in the payment entry.


SchemaPaymentInput#

EXPERIMENTAL: Marks a Ledger Account as a Payment Account.

Example
{"penguin": true}
Input FieldDescription
penguinBoolean!

SchemaPaymentLineInput#

EXPERIMENTAL: A Ledger Line in a payment entry.

Example
{
  "account": SchemaLedgerAccountMatchInput,
  "amount": "assets/bank:{{bank_name}}",
  "currency": SchemaCurrencyMatchInput,
  "description": "assets/bank:{{bank_name}}",
  "key": "some-safe-string-ik",
  "system": "payment_fee_line"
}
Input FieldDescription
accountSchemaLedgerAccountMatchInput!

The Ledger Account this line will be posted to. It supports parameters in its attributes via handlebars syntax.

amountParameterizedString!

The amount of the line. It supports parameters via the handlebars syntax and addition (+) and subtraction (-).

currencySchemaCurrencyMatchInput

The currency of the line. This is required if the Ledger Account has currencyMode multi. It supports parameters in its attributes via handlebars syntax.

descriptionParameterizedString

Human-readable description of the line.

keySafeString!

The key for the line. Keys must be unique within a payment entry.

systemSchemaSystemLineKind

Marks this as a system-owned line. FRAGMENT fills the amounts of system lines when the payment entry is posted.


SchemaPaymentTypeDetailsInput#

EXPERIMENTAL: The payment a Payment Type creates.

Example
{"amount": "assets/bank:{{bank_name}}", "direction": "payin"}
Input FieldDescription
amountParameterizedString!

The amount requested for the payment, as a parameterized expression filled from createPayment parameters.

directionSchemaPaymentTypeDirection!

The direction the payment moves money.


SchemaPaymentTypeInput#

EXPERIMENTAL: A Payment Type in a Schema. All Payment Types defined in a Schema must have a unique type and typeVersion pair.

Example
{
  "accounting": SchemaPaymentAccountingInput,
  "payment": SchemaPaymentTypeDetailsInput,
  "status": "active",
  "type": "some-safe-string-ik",
  "typeVersion": 2277
}
Input FieldDescription
accountingSchemaPaymentAccountingInput!

The Ledger Entries posted as the payment moves through its lifecycle.

paymentSchemaPaymentTypeDetailsInput!

The payment this Payment Type creates.

statusSchemaPaymentEntryStatus!

The status of this Payment Type.

typeSafeString!

The type of this Payment Type. This is a stable, unique identifier for it. Uniqueness is enforced at the Schema level.

typeVersionInt!

The version of the Payment Type.


SchemaPaymentsInput#

EXPERIMENTAL: The Payment Types in your Schema.

Example
{"types": [SchemaPaymentTypeInput]}
Input FieldDescription
types[SchemaPaymentTypeInput!]!

A list of Payment Type definitions.


SchemaRepeatedConfigInput#

Configuration for repeated expansion of a line or condition. The key names a client-supplied array parameter whose elements each generate one copy of the line or condition at runtime.

Example
{"key": "some-safe-string-ik"}
Input FieldDescription
keySafeString!

The key of the array parameter whose elements expand this line or condition.


UpdateLedgerAccountInput#
Example
{
  "consistencyConfig": LedgerAccountConsistencyConfigInput,
  "name": "abc123"
}
Input FieldDescription
consistencyConfigLedgerAccountConsistencyConfigInput

The consistency configuration for this ledger account. This defines how updates to this ledger account's balance are handled.

nameString

The name to update the ledger account to


UpdateLedgerEntryInput#
Example
{
  "groups": [LedgerEntryGroupInput],
  "ledgerLines": [UpdateLedgerLineInput],
  "tags": [LedgerEntryTagInput],
  "tagsToRemove": [LedgerEntryTagInput]
}
Input FieldDescription
groups[LedgerEntryGroupInput!]

The list of Groups to add to this Ledger Entry.

ledgerLines[UpdateLedgerLineInput!]

The list of Ledger Line updates to apply to Ledger Lines on this Ledger Entry.

tags[LedgerEntryTagInput!]

The list of Tags to add and/or update on this Ledger Entry.

tagsToRemove[LedgerEntryTagInput!]

The list of Tags to remove from this Ledger Entry.


UpdateLedgerInput#
Example
{"name": "abc123"}
Input FieldDescription
nameString

The new Ledger name.


UpdateLedgerLineInput#
Example
{
  "ledgerLine": LedgerLineMatchInput,
  "tags": [LedgerLineTagInput],
  "tagsToRemove": [LedgerLineTagInput]
}
Input FieldDescription
ledgerLineLedgerLineMatchInput!

The Ledger Line that is being updated. It must belong to the Ledger Entry being updated.

tags[LedgerLineTagInput!]

The list of Tags to add and/or update on this Ledger Line.

tagsToRemove[LedgerLineTagInput!]

The list of Tags to remove from this Ledger Line.


MatchInput Types

#

CurrencyMatchInput#
Example
{"code": "AAVE", "customCurrencyId": "some-safe-string-ik"}
Input FieldDescription
codeCurrencyCode!

The currency code. This is an enum type.

customCurrencyIdSafeString

The ID for a custom currency. This is specified when creating the custom currency using the createCustomCurrency mutation.


EntryGroupMatchInput#
Example
{"key": "some-safe-string-ik", "value": "some-safe-string-ik"}
Input FieldDescription
keySafeString!
valueSafeString!

ExternalAccountMatchInput#

Specify an External Account by using id, or linkId and externalId.

Example
{
  "externalId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "linkId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
}
Input FieldDescription
externalIdID

The external system's ID of the External Account. If this is specified, linkId is required. id is optional, but will be validated if provided.

idID

The FRAGMENT ID of the External Account. If this is specified, both linkId and externalId are optional, but will be validated if provided.

linkIdID

The FRAGMENT ID of the Link the External Account is in. If this is specified, externalId is required. id is optional, but will be validated if provided.


GroupMatchInput#

Input type for matching a specific group by key and value

Example
{"key": "some-safe-string-ik", "value": "some-safe-string-ik"}
Input FieldDescription
keySafeString!

The key of the group to match

valueSafeString!

The value of the group to match


LedgerAccountMatchInput#

Specify a Ledger Account by using id or path.

Example
{
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "ledger": LedgerMatchInput,
  "path": "abc123"
}
Input FieldDescription
idID

The FRAGMENT ID of the Ledger Account

ledgerLedgerMatchInput

The Ledger to which this Ledger Account belongs. This is required if you are specifying the Ledger Account by path.

pathString

The unique path of the Ledger Account. This is a slash-delimited string containing the keys of an account and all its direct ancestors.


LedgerEntryGroupMatchInput#
Example
{
  "key": "some-safe-string-ik",
  "ledger": LedgerMatchInput,
  "value": "some-safe-string-ik"
}
Input FieldDescription
keySafeString!
ledgerLedgerMatchInput!
valueSafeString!

LedgerEntryMatchInput#

Specify a Ledger Entry by using id.

Example
{
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "ik": "some-safe-string-ik",
  "ledger": LedgerMatchInput
}
Input FieldDescription
idID

The FRAGMENT ID of the Ledger Entry

ikSafeString

The IK provided to the addLedgerEntry mutation or the ik field returned from a reconcileTx mutation. This is required if you have not provided id.

ledgerLedgerMatchInput

The FRAGMENT ID of the Ledger to which this Ledger Entry belongs. This is required if you have not provided id.


LedgerLineMatchInput#

Specify a Ledger Line by using id.

Example
{"id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"}
Input FieldDescription
idID!

The FRAGMENT ID of the ledger line


LedgerMatchInput#

Specify a Ledger by using id or ik.

Example
{"id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1", "ik": "some-safe-string-ik"}
Input FieldDescription
idID

The FRAGMENT ID of the Ledger

ikSafeString

The IK passed into the createLedger mutation. This is treated as a second unique identifier for this Ledger.


LinkMatchInput#
Example
{"id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"}
Input FieldDescription
idID!

SchemaCurrencyMatchInput#

Matches a Currency. Can be a built-in CurrencyCode, custom Currency, or a parameterized string. If you supply a parameterized string, you must pass in a valid CurrencyCode as a parameter when posting a Ledger Entry.

Example
{
  "code": "assets/bank:{{bank_name}}",
  "customCurrencyId": "assets/bank:{{bank_name}}"
}
Input FieldDescription
codeParameterizedString!

The currency code. This must either be a CurrencyCode or a parameterized string that resolves to a CurrencyCode.

customCurrencyIdParameterizedString

The ID for a custom currency. This is specified when creating the custom currency using the createCustomCurrency mutation.


SchemaExternalAccountMatchInput#
Example
{
  "externalId": "assets/bank:{{bank_name}}",
  "id": "assets/bank:{{bank_name}}",
  "linkId": "assets/bank:{{bank_name}}",
  "linkType": "CustomLink"
}
Input FieldDescription
externalIdParameterizedString

The External systems's ID of the account

idParameterizedString

The FRAGMENT ID of the external account

linkIdParameterizedString

The FRAGMENT ID of the link

linkTypeLinkType

The type of Link this external account belongs to. Must be one of: IncreaseLink, UnitLink, CustomLink, or StripeLink.


SchemaLedgerAccountMatchInput#

Matches a Ledger Account in a Schema.

Example
{"path": "assets/bank:{{bank_name}}"}
Input FieldDescription
pathParameterizedString!

The unique path of the Ledger Account in the Schema. This is a slash-delimited string containing the keys of a Ledger Account and all its direct ancestors. ex: expense-root/subscriptions/netflix For Templated Ledger Accounts, you must supply a parameter in the path that will be used to name an instance of the template. ex: "expense-root/subscriptions/vendor:\{\{vendor_name\}\}"


SchemaMatchInput#

An object used to retrieve a Schema.

Example
{"key": "some-safe-string-ik", "version": 2277}
Input FieldDescription
keySafeString!

The key to retrieve a Schema by. key is unique to a Workspace.

versionInt

Optional parameter to specify version of requested Schema. If not provided, it defaults to 0, representing the latest available version for the provided Schema key.


SchemaTxMatchInput#

Matches a transaction at an external system. This is used to specify the transaction being reconciled into a Linked Ledger Account

Example
{"externalId": "assets/bank:{{bank_name}}", "id": "assets/bank:{{bank_name}}"}
Input FieldDescription
externalIdParameterizedString

The external system's ID for the transaction.

idParameterizedString

The FRAGMENT ID for the transaction.


TagMatchInput#

Specifies a single tag that an entity is expected to have. You must specify both the key and the value.

Example
{"key": "some-safe-string-ik", "value": "some-safe-string-ik"}
Input FieldDescription
keySafeString!

The key of this tag.

valueSafeString!

The value associated with this tag's key.


TxMatchInput#

Specify a Tx by using id or externalId, the Link it belongs to by linkId, and the External Account it is a part of by accountId or externalAccountId.

Example
{
  "accountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "externalAccountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "externalId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "linkId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
}
Input FieldDescription
accountIdID

The FRAGMENT ID of the external account

externalAccountIdID

The external system's ID for the account

externalIdID

The external system's ID for the transaction

idID

The FRAGMENT ID of the transaction

linkIdID

The FRAGMENT ID of the link


Response Types

#

AddLedgerEntriesResponse#
Example
AddLedgerEntriesError

AddLedgerEntryResponse#
Example
AddLedgerEntryResult

CreateCustomCurrencyResponse#
Example
BadRequestError

CreateCustomLinkResponse#
Example
BadRequestError

CreateLedgerAccountResponse#
Example
BadRequestError

CreateLedgerAccountsResponse#
Example
BadRequestError

CreateLedgerResponse#
Example
BadRequestError

CreatePaymentResponse#
Example
BadRequestError

DeleteCustomTxsResponse#
Example
BadRequestError

DeleteLedgerResponse#
Example
BadRequestError

DeleteSchemaResponse#
Example
BadRequestError

MigrateLedgerEntryResponse#
Example
BadRequestError

ReconcileTxResponse#
Example
BadRequestError

ReverseLedgerEntryResponse#
Example
BadRequestError

StoreSchemaResponse#

Returned by the storeSchema mutation.

Example
BadRequestError

SyncCustomAccountsResponse#
Example
BadRequestError

SyncCustomTxsResponse#
Example
BadRequestError

UpdateLedgerAccountResponse#
Example
BadRequestError

UpdateLedgerEntryResponse#
Example
BadRequestError

UpdateLedgerResponse#
Example
BadRequestError

Result Types

#

AddLedgerEntriesResult#
Example
{"results": [AddLedgerEntryResult]}
Field NameDescription
results[AddLedgerEntryResult!]!

The added Ledger Entries, in the same order as the input


AddLedgerEntryResult#
Example
{
  "entry": LedgerEntry,
  "isIkReplay": true,
  "lines": [LedgerLine]
}
Field NameDescription
entryLedgerEntry!

The ledger entry that was posted

isIkReplayBoolean!

True if this request successfully completed before and the previous response is being returned

lines[LedgerLine!]!

The ledger lines that were created in that entry


CreateCustomCurrencyResult#
Example
{"customCurrency": Currency}
Field NameDescription
customCurrencyCurrency!

The Currency that was created.


CreateCustomLinkResult#
Example
{"isIkReplay": true, "link": CustomLink}
Field NameDescription
isIkReplayBoolean!
linkCustomLink!

The custom link that was created. Represents an instance of an external system.


CreateLedgerAccountResult#
Example
{"isIkReplay": true, "ledgerAccount": LedgerAccount}
Field NameDescription
isIkReplayBoolean!

true if a previous request successfully created this ledger account

ledgerAccountLedgerAccount!

The ledger account that was created


CreateLedgerAccountsResult#
Example
{
  "ikReplays": [IkReplay],
  "ledgerAccounts": [LedgerAccount]
}
Field NameDescription
ikReplays[IkReplay!]!

Whether the ledger accounts were successfully created by a previous request

ledgerAccounts[LedgerAccount!]!

The ledger accounts that were created


CreateLedgerResult#
Example
{"isIkReplay": true, "ledger": Ledger}
Field NameDescription
isIkReplayBoolean!

true if this request successfully completed before and the previous response is being returned

ledgerLedger!

The Ledger that was created


DeleteCustomTxsResult#
Example
{"txs": [DeletedCustomTx]}
Field NameDescription
txs[DeletedCustomTx!]!

List of Txs deleted in this operation


DeleteLedgerResult#
Example
{"success": true}
Field NameDescription
successBoolean!

DeleteSchemaResult#
Example
{"success": true}
Field NameDescription
successBoolean!

DeletedCustomTx#
Example
{"tx": Tx}
Field NameDescription
txTx!

A deleted Tx


MigrateLedgerEntryResult#
Example
{
  "isIkReplay": true,
  "newLedgerEntry": LedgerEntry,
  "reversedLedgerEntry": LedgerEntry,
  "reversingLedgerEntry": LedgerEntry
}
Field NameDescription
isIkReplayBoolean!

Whether this migration was an IK replay or not

newLedgerEntryLedgerEntry!

The new Ledger Entry posted as a result of the migration

reversedLedgerEntryLedgerEntry!

The Ledger Entry that was migrated

reversingLedgerEntryLedgerEntry!

The reversal Ledger Entry that was posted to reverse the Ledger Entry being migrated


ReconcileTxResult#
Example
{
  "entry": LedgerEntry,
  "isIkReplay": true,
  "lines": [LedgerLine]
}
Field NameDescription
entryLedgerEntry!

The ledger entry that was posted

isIkReplayBoolean!

True if this request successfully completed before and the previous response is being returned

lines[LedgerLine!]!

The ledger lines that were created in that entry


ReverseLedgerEntryResult#
Example
{
  "isIkReplay": true,
  "reversedLedgerEntry": LedgerEntry,
  "reversingLedgerEntry": LedgerEntry
}
Field NameDescription
isIkReplayBoolean!

Whether the reversal was an IK replay

reversedLedgerEntryLedgerEntry!

The Ledger Entry that was reversed

reversingLedgerEntryLedgerEntry!

The reversal Ledger Entry that was created


StoreSchemaResult#

StoreSchemaResult represents a successful execution of storeSchema.

Example
{"schema": Schema}
Field NameDescription
schemaSchema!

The Schema that was stored as a result of calling storeSchema.


SyncCustomAccountsResult#
Example
{"accounts": [ExternalAccount]}
Field NameDescription
accounts[ExternalAccount!]!

The external accounts that were synced.


SyncCustomTxsResult#
Example
{"txs": [Tx]}
Field NameDescription
txs[Tx!]!

UpdateLedgerAccountResult#
Example
{"ledgerAccount": LedgerAccount}
Field NameDescription
ledgerAccountLedgerAccount!

The ledger account that was updated


UpdateLedgerEntryResult#
Example
{"entry": LedgerEntry}
Field NameDescription
entryLedgerEntry!

The Ledger Entry that was updated.


UpdateLedgerResult#
Example
{"ledger": Ledger}
Field NameDescription
ledgerLedger!

The updated Ledger.


Error Types

#

AddLedgerEntriesError#

Error returned when one or more Ledger Entries in the batch could not be added.

Example
{
  "code": "abc123",
  "errors": [AddLedgerEntryError],
  "message": "abc123",
  "retryable": true
}
Field NameDescription
codeString!

The status code of error. For example, 'ledger_entry_batch_operation_failed'.

errors[AddLedgerEntryError!]!

The list of errors for each Ledger Entry that was responsible for the batch's failure.

messageString!

The error message

retryableBoolean!

Whether or not the operation is retryable


AddLedgerEntryError#

Error details for a single Ledger Entry that was responsible for the batch's failure.

Example
{
  "code": "abc123",
  "ik": "some-safe-string-ik",
  "message": "abc123",
  "retryable": true
}
Field NameDescription
codeString!

The status code of error. For example, 'ledger_entry_too_many_lines'.

ikSafeString!

The Idempotency Key of the Ledger Entry

messageString!

The error message

retryableBoolean!

Whether or not the operation is retryable


BadRequestError#

Equivalent to an HTTP 400 - request either has missing or incorrect data

Example
{"code": "abc123", "message": "abc123", "retryable": true}
Field NameDescription
codeString!

The status code of error. For example, 'ledger_not_found'.

messageString!

The error message

retryableBoolean!

Whether or not the operation is retryable


Error#

Base error interface

Example
{"code": "abc123", "message": "abc123", "retryable": true}
Field NameDescription
codeString!

The status code of error. For example, 'ledger_not_found'.

messageString!

The error message

retryableBoolean!

Whether or not the operation is retryable


InternalError#

Equivalent to an HTTP 5XX - something went wrong with our API.

Example
{"code": "abc123", "message": "abc123", "retryable": true}
Field NameDescription
codeString!

The status code of error. For example, 'ledger_not_found'.

messageString!

The error message

retryableBoolean!

Whether or not the operation is retryable


Connection Types

#

BalanceChangeDuringConnection#

A paginated list of amounts and their periods

Example
{
  "endTime": "2021-07",
  "granularity": "daily",
  "nodes": [BalanceChangeDuring],
  "pageInfo": PageInfo,
  "startTime": "2021-05"
}
Field NameDescription
endTimeLastMoment!

The end time of the period across which the balance changes are requested

granularityGranularity!

The granularity of the return data

nodes[BalanceChangeDuring!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list

startTimeFirstMoment!

The start time of the period across which the balance changes are requested


CurrencyAmountConnection#

A paginated list of amounts with their currencies

Example
{
  "nodes": [CurrencyAmount],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[CurrencyAmount!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


CustomCurrenciesConnection#

A paginated list of Custom Currencies

Example
{
  "nodes": [Currency],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[Currency!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


ExternalAccountsConnection#

A paginated list of External Accounts

Example
{
  "nodes": [ExternalAccount],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[ExternalAccount!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


HistoricalBalanceConnection#

A paginated list of amounts and their periods

Example
{
  "endTime": "2021-07",
  "granularity": "daily",
  "nodes": [HistoricalBalance],
  "pageInfo": PageInfo,
  "startTime": "2021-05"
}
Field NameDescription
endTimeLastMoment!

The end time of the period across which the balance changes are requested

granularityGranularity!

The granularity of the return data

nodes[HistoricalBalance!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list

startTimeFirstMoment!

The start time of the period across which the balance changes are requested


LedgerAccountDataMigrationConnection#
Example
{
  "nodes": [LedgerAccountDataMigration],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerAccountDataMigration!]!

The current page of results

pageInfoPageInfo!

Pagination info for this list.


LedgerAccountsConnection#

A paginated list of Ledger Accounts

Example
{
  "nodes": [LedgerAccount],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerAccount!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


LedgerDataMigrationHistoryConnection#

A paginated list of migration history entries.

Example
{
  "nodes": [LedgerDataMigrationHistoryEntry],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerDataMigrationHistoryEntry!]!

The current page of results

pageInfoPageInfo!

Pagination info for this list.


LedgerEntriesConnection#

A paginated list of Ledger Entries

Example
{
  "nodes": [LedgerEntry],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerEntry!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


LedgerEntryDataMigrationConnection#
Example
{
  "nodes": [LedgerEntryDataMigration],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerEntryDataMigration!]!

The current page of results

pageInfoPageInfo!

Pagination info for this list.


LedgerEntryGroupBalanceConnection#

A set of balance changes for a specific Ledger Entry Group.

Example
{
  "nodes": [LedgerEntryGroupBalance],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerEntryGroupBalance!]!
pageInfoPageInfo!

LedgerEntryGroupsConnection#

A paginated list of Ledger Entry Groups

Example
{
  "nodes": [LedgerEntryGroup],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerEntryGroup!]!

The current page of results

pageInfoPageInfo!

Pagination info for this list.


LedgerEntryStatsConnection#

A paginated list of Ledger Entry Stats

Example
{
  "nodes": [LedgerEntryStats],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerEntryStats!]!

The current page of results

pageInfoPageInfo!

Pagination info for this list.


LedgerLinesConnection#

A paginated list of Ledger Lines

Example
{
  "nodes": [LedgerLine],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerLine!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


LedgerMigrationConnection#

A paginated list of Ledger Migrations

Example
{
  "nodes": [LedgerMigration],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[LedgerMigration!]!

The current page of results

pageInfoPageInfo!

Pagination info for this list.


LedgersConnection#

A paginated list of Ledgers

Example
{
  "nodes": [Ledger],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[Ledger!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


LinksConnection#

A paginated list of Links

Example
{
  "nodes": [Link],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[Link!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


PageInfo#

An object containing pagination details.

Example
{
  "endCursor": "abc123",
  "hasNextPage": true,
  "hasPreviousPage": true,
  "startCursor": "abc123"
}
Field NameDescription
endCursorString
hasNextPageBoolean!
hasPreviousPageBoolean!
startCursorString

SchemaConnection#

A paginated list of Schemas in a Workspace.

Example
{
  "nodes": [Schema],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[Schema!]!

The current page of results

pageInfoPageInfo!

Pagination info for this list.


SchemaVersionConnection#

A paginated list of SchemaVersions for a given Schema.

Example
{
  "nodes": [SchemaVersion],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[SchemaVersion!]!

The current page of results

pageInfoPageInfo!

Pagination info for this list.


TxsConnection#

A paginated list of Txs

Example
{
  "nodes": [Tx],
  "pageInfo": PageInfo
}
Field NameDescription
nodes[Tx!]!

The current page of results

pageInfoPageInfo!

The pagination info for this list


Filter Types

#

CurrencyFilter#
Example
{
  "equalTo": CurrencyMatchInput,
  "in": [CurrencyMatchInput]
}
Input FieldDescription
equalToCurrencyMatchInput

Must match the value provided

in[CurrencyMatchInput!]

Must match one of the values provided. Limited to 100 items maximum.


DateFilter#
Example
{
  "equalTo": "2022-03-28",
  "in": ["2022-03-28"],
  "within": "2022-03",
  "withinBalanceUTCOffset": "2022-03"
}
Input FieldDescription
equalToDate
in[Date!]

Must match one of the values provided. Limited to 100 items maximum.

withinPeriodFilter

Must fall within the given period. Supports a year (e.g. "2026") or a month (e.g. "2026-05"). To match a specific day, use equalTo. Cannot be combined with withinBalanceUTCOffset.

withinBalanceUTCOffsetPeriodFilter

Must fall within the given period, taking into account the Ledger's balanceUTCOffset. Supports a year (e.g. "2026") or a month (e.g. "2026-05"). Cannot be combined with within.


DateTimeFilter#

Filters a timestamp field between two moments in time

Example
{"after": "2007-12-03T10:15:30Z", "before": "2007-12-03T10:15:30Z"}
Input FieldDescription
afterDateTime

The timestamp value must be after this moment. Specified in ISO 8601 format e.g "1968-01-01T16:45:00Z"

beforeDateTime

The timestamp value must be before this moment. Specified in ISO 8601 format e.g "1968-01-01T16:45:00Z"


ExternalAccountFilter#
Example
{
  "equalTo": ExternalAccountMatchInput,
  "in": [ExternalAccountMatchInput]
}
Input FieldDescription
equalToExternalAccountMatchInput

Ledger Account must linked to the the specified external account

in[ExternalAccountMatchInput!]

Ledger Account can be linked to any of the specified external accounts. Limited to 100 items maximum.


GroupBalanceAccountFilter#

A filter to query balances of a specific subset of accounts

Example
{
  "id": StringFilter,
  "path": StringMatchFilter
}
Input FieldDescription
idStringFilter

A filter that must match the account ID

pathStringMatchFilter

A filter that must match the account path. Wildcards ('*') may be used only for template variables, and will only match a single variable each.


GroupFilter#

Filter for finding entries by group membership

Example
{
  "all": [GroupMatchInput],
  "equalTo": GroupMatchInput,
  "in": [GroupMatchInput],
  "keyEqualTo": "some-safe-string-ik",
  "keyIn": ["some-safe-string-ik"],
  "notEqualTo": GroupMatchInput,
  "notIn": [GroupMatchInput],
  "notKeyEqualTo": "some-safe-string-ik",
  "notKeyIn": ["some-safe-string-ik"]
}
Input FieldDescription
all[GroupMatchInput!]

Find entries that have ALL of the specified groups. Limited to 10 items maximum.

equalToGroupMatchInput

Find groups that exactly match this group

in[GroupMatchInput!]

Find groups that match any of these groups

keyEqualToSafeString

Find groups with a specific key

keyIn[SafeString!]

Find groups with any of these keys

notEqualToGroupMatchInput

Find groups that do not exactly match this group

notIn[GroupMatchInput!]

Find groups that do not match any of these groups

notKeyEqualToSafeString

Find groups that do not have a specific key

notKeyIn[SafeString!]

Find groups that do not have any of these keys


Int96Filter#
Example
{
  "eq": "999999999999",
  "gte": "999999999999",
  "lte": "999999999999",
  "ne": "999999999999"
}
Input FieldDescription
eqInt96

Must exactly equal this Int96 value

gteInt96

Must be greater than or equal to this Int96 value

lteInt96

Must be less than or equal to this Int96 value

neInt96

Must not equal this Int96 value


LedgerAccountClearingStatusFilter#
Example
{"equalTo": "cleared"}
Input FieldDescription
equalToLedgerAccountClearingStatus

Results must match the specified clearing account status


LedgerAccountDataMigrationsFilterSet#
Example
{"accountPath": StringFilter, "status": "active"}
Input FieldDescription
accountPathStringFilter

Filter by Ledger Account path.

statusLedgerDataMigrationStatus

Filter by the status of the data migration.


LedgerAccountFilter#
Example
{
  "equalTo": LedgerAccountMatchInput,
  "in": [LedgerAccountMatchInput]
}
Input FieldDescription
equalToLedgerAccountMatchInput

Result must match the specified Ledger Account

in[LedgerAccountMatchInput!]

Results can match any of specified Ledger Accounts


LedgerAccountTypeFilter#
Example
{"equalTo": "asset", "in": ["asset"]}
Input FieldDescription
equalToLedgerAccountTypes

Results must be of the specified Ledger Account type

in[LedgerAccountTypes!]

Results can have any of the specified Ledger Account types


LedgerAccountsFilterSet#
Example
{
  "clearingStatus": LedgerAccountClearingStatusFilter,
  "earliestPosted": DateTimeFilter,
  "hasParentLedgerAccount": true,
  "isLinkedAccount": true,
  "latestPosted": DateTimeFilter,
  "ledgerAccount": LedgerAccountFilter,
  "linkedAccount": ExternalAccountFilter,
  "parentLedgerAccount": LedgerAccountFilter,
  "path": StringMatchFilter,
  "type": LedgerAccountTypeFilter
}
Input FieldDescription
clearingStatusLedgerAccountClearingStatusFilter

Use this to filter Ledger Accounts by their clearing account status

earliestPostedDateTimeFilter

Filter by the earliest posted timestamp across all currencies for clearing accounts. You must also provide clearingStatus in the same filter. Only clearing accounts where the minimum posted timestamp (across all currencies) matches this filter will be included.

hasParentLedgerAccountBoolean

Use this to filter Ledger Accounts by their parent status

isLinkedAccountBoolean

Use this to filter Ledger Accounts by their linked status

latestPostedDateTimeFilter

Filter by the latest posted timestamp across all currencies for clearing accounts. You must also provide clearingStatus in the same filter. Only clearing accounts where the maximum posted timestamp (across all currencies) matches this filter will be included.

ledgerAccountLedgerAccountFilter

Use this to filter Ledger Accounts by their ID or path

linkedAccountExternalAccountFilter

Use this to filter Ledger Accounts by their external linked account ID

parentLedgerAccountLedgerAccountFilter

Use this to filter Ledger Accounts by their parent account IDs

pathStringMatchFilter

A filter that must match the account path. Wildcards (' ') may be used only for template variables, and will only match a single variable each. For example: 'assets-root/accounts-receivable/merchant: ' would match: 'assets-root/accounts-receivable/merchant:1' and 'assets-root/accounts-receivable/merchant:1/child'. Wildcards may not be used outside of template variables. For example, passing in 'assets-root/*' as a filter is invalid and would raise a GraphQL error.

typeLedgerAccountTypeFilter

Use this to filter Ledger Accounts by their type


LedgerEntriesFilterSet#
Example
{
  "date": DateFilter,
  "group": GroupFilter,
  "isReversal": true,
  "isReversed": true,
  "ledgerEntry": LedgerEntryFilter,
  "posted": DateTimeFilter,
  "showHidden": true,
  "tag": TagFilter,
  "type": StringFilter,
  "typeVersion": StringFilter
}
Input FieldDescription
dateDateFilter

Use this filter to filter Ledger Entries by their posted date.

groupGroupFilter

Use this to filter Ledger Entries by groups. The response will include entries that contain or do not contain specific groups.

isReversalBoolean

Use this to filter Ledger Entries that were posted using reverseLedgerEntry.

isReversedBoolean

Use this to filter Ledger Entries that have been reversed.

ledgerEntryLedgerEntryFilter

Use to filter Ledger Entries by their IDs or IKs.

postedDateTimeFilter

Use this filter to filter Ledger Entries by their posted timestamp.

showHiddenBoolean

Use this filter to show hidden Ledger Entries.

tagTagFilter

Use this to filter Ledger Entries by tags. The response will include entries that contain tags matching the filter.

typeStringFilter

Use this to filter Ledger Entries by type. Ledger Entry types are defined in Schemas.

typeVersionStringFilter

Use this to filter Ledger Entries by their type version.


LedgerEntryDataMigrationsFilterSet#
Example
{
  "entryType": StringFilter,
  "status": "active",
  "typeVersion": StringFilter
}
Input FieldDescription
entryTypeStringFilter

Filter by Ledger Entry type.

statusLedgerDataMigrationStatus

Filter by the status of the data migration.

typeVersionStringFilter

Filter by Ledger Entry type version.


LedgerEntryFilter#
Example
{
  "equalTo": LedgerEntryMatchInput,
  "in": [LedgerEntryMatchInput]
}
Input FieldDescription
equalToLedgerEntryMatchInput

Result must be the specified Ledger Entry.

in[LedgerEntryMatchInput!]

Result can be any of the specified Ledger Entries. Limited to 100 items maximum.


LedgerEntryGroupBalanceFilter#

Filter Ledger Entry Groups by their balance impact on a Ledger Account. If a group has a matching balance for the specified account, the group will be included in the results.

Example
{
  "account": GroupBalanceAccountFilter,
  "currency": CurrencyFilter,
  "ownBalance": Int96Filter
}
Input FieldDescription
accountGroupBalanceAccountFilter!

A Ledger Entry Group will be included in the result if it has a balance for the specified account. If 'account' is the only filter specified, then any non-null balance in any currency will match.

currencyCurrencyFilter

A Ledger Entry Group will be included in the result if it has a balance for the specified account in the specified currency. If the 'ownBalance' filter is omitted then any non-null balance will match.

ownBalanceInt96Filter

A Ledger Entry Group will be included in the result if it has a balance for the specified account that passes the specified value predicate. If the 'currency' filter is omitted then any balance in any currency that passes the predicate will match. If the 'currency' filter is included, the value predicate will only be evaluated against the specified currency.


LedgerEntryGroupBalanceFilterSet#

Optional filters for querying balances on a Ledger Entry Group.

Example
{
  "account": GroupBalanceAccountFilter,
  "currency": CurrencyFilter,
  "ownBalance": Int96Filter
}
Input FieldDescription
accountGroupBalanceAccountFilter

Filter to a subset of accounts

currencyCurrencyFilter

Filter to one or more currencies

ownBalanceInt96Filter

Filter to only balances in a certain range


LedgerEntryGroupsFilterSet#
Example
{
  "balance": LedgerEntryGroupBalanceFilter,
  "created": DateTimeFilter,
  "key": StringFilter,
  "value": StringFilter
}
Input FieldDescription
balanceLedgerEntryGroupBalanceFilter

Filter Ledger Entry Groups by their balance impact on a Ledger Account. If a group has a matching balance for the specified account, the group will be included in the results.

createdDateTimeFilter

Use to filter Ledger Entry Groups by their created timestamp

keyStringFilter

Use to filter Ledger Entry Groups by their key

valueStringFilter

Use to filter Ledger Entry Groups by their value


LedgerLinesFilterSet#
Example
{
  "created": DateTimeFilter,
  "currency": CurrencyFilter,
  "date": DateFilter,
  "isReversal": true,
  "isReversed": true,
  "key": StringFilter,
  "ledgerAccount": LedgerAccountFilter,
  "path": StringMatchFilter,
  "posted": DateTimeFilter,
  "showHidden": true,
  "tag": TagFilter,
  "type": TxTypeFilter
}
Input FieldDescription
createdDateTimeFilter

Filter by the created timestamp of the Ledger Line. This is the wall-clock time when the Ledger Line was created.

currencyCurrencyFilter

Filter by the currency of the Ledger Line.

dateDateFilter

Use this filter to filter Ledger Lines by their posted date.

isReversalBoolean

Use this to filter Ledger Lines that were posted to this Ledger Account, using reverseLedgerEntry.

isReversedBoolean

Use this to filter Ledger Lines that have been reversed.

keyStringFilter

Use this to filter Ledger Lines by key. Ledger Line keys are defined in Schemas.

ledgerAccountLedgerAccountFilter

Specify which Ledger Account to read lines from. Required when querying lines via Ledger.lines without a path filter. Not allowed when querying via LedgerAccount.lines.

pathStringMatchFilter

A filter that string matches the account path. Wildcards ('*') can be used to return lines across multiple accounts. To search for all instances of a a Ledger Account template, use the matches filter with an wildcard character in place of the template value e.g. assets/user:*. This returns lines from all instances of this template, interleaved by posted timestamp. To search for all descendant Ledger Accounts under a given path, use a trailing /* in the matches filter e.g. assets/user:user-1>/*. This returns lines from all descendants at any depth, but not lines from the parent account at assets/user:user-1>. To OR multiple matches patterns and get a single paginated list, use matchesAny — e.g. matchesAny: ["assets/user:user-1/*", "assets/user:user-2/*"] returns descendants of both prefixes interleaved by posted timestamp. Cannot be combined with ledgerAccount filter. Not allowed when querying via LedgerAccount.lines. You cannot use wildcards for both descendant and template instance matching in the same query.

postedDateTimeFilter

Use this filter to filter Ledger Lines by their posted timestamp.

showHiddenBoolean

Use this filter to find hidden Ledger Lines.

tagTagFilter

Filter Ledger Lines by tag. Only matches lines that have the specified tags attached directly to them.

typeTxTypeFilter

LedgerTypeFilter#
Example
{"equalTo": "double", "in": ["double"]}
Input FieldDescription
equalToLedgerTypes
in[LedgerTypes!]

Must match one of the values provided. Limited to 100 items maximum.


LedgersFilterSet#
Example
{"hasSchema": true, "type": LedgerTypeFilter}
Input FieldDescription
hasSchemaBoolean
typeLedgerTypeFilter

PeriodFilter#

A specific year ("2026") or month ("2026-05") used to match dates that fall within it.

Example
"2022-03"

StringFilter#
Example
{
  "equalTo": "abc123",
  "in": ["abc123"],
  "notEqualTo": "abc123",
  "notIn": ["abc123"]
}
Input FieldDescription
equalToString
in[String!]

Must match one of the values provided. Limited to 100 items maximum.

notEqualToString

Must not equal this string value

notIn[String!]

Must not match any of the values provided. Limited to 100 items maximum.


StringMatchFilter#
Example
{
  "contains": "abc123",
  "equalTo": "abc123",
  "in": ["abc123"],
  "matches": "abc123",
  "matchesAny": ["abc123"]
}
Input FieldDescription
containsString

Must contain the provided pattern somewhere within the string. For example, 'contains: hat' will match 'hat', 'chat', and 'hate'.

equalToString

Must exactly equal the provided value

in[String!]

Must exactly equal one of the provided values. Limited to 100 items maximum.

matchesString

Must match the provided pattern. Wildcards ("*") will match any substring

matchesAny[String!]

Must match any one of the provided matches patterns, OR-ed together — results are returned as a single paginated list. Each entry uses the same wildcard grammar as matches. Cannot be combined with matches. Limited to 100 entries.


TagFilter#

Filters a result set based on the tags it contains.

Example
{
  "all": [TagMatchInput],
  "contains": TagMatchInput,
  "equalTo": TagMatchInput,
  "in": [TagMatchInput],
  "keyEqualTo": "some-safe-string-ik",
  "keyIn": ["some-safe-string-ik"],
  "notEqualTo": TagMatchInput,
  "notIn": [TagMatchInput],
  "notKeyEqualTo": "some-safe-string-ik",
  "notKeyIn": ["some-safe-string-ik"]
}
Input FieldDescription
all[TagMatchInput!]

Matches entries that have ALL of the specified tags. The key and value are both matched exactly. Limited to 10 items maximum.

containsTagMatchInput

Matches tag values based on the existence of the provided string within the tag value. The key is matched exactly.

equalToTagMatchInput

Matches tags based on the exact value provided. The key and value are both matched exactly.

in[TagMatchInput!]

Matches tags based on a list of possible tag matches. The key and value are both matched exactly. Limited to 100 items maximum.

keyEqualToSafeString

Matches tags where the key exactly equals the provided value.

keyIn[SafeString!]

Matches tags where the key matches any of the provided values. Limited to 100 items maximum.

notEqualToTagMatchInput

Matches tags that do not equal the provided value. The key and value are both matched exactly.

notIn[TagMatchInput!]

Matches tags that do not match any of the provided values. The key and value are both matched exactly. Limited to 100 items maximum.

notKeyEqualToSafeString

Matches tags where the key does not equal the provided value.

notKeyIn[SafeString!]

Matches tags where the key does not match any of the provided values. Limited to 100 items maximum.


TxTypeFilter#
Example
{"equalTo": "credit", "in": ["credit"]}
Input FieldDescription
equalToTxType
in[TxType!]

Must match one of the values provided. Limited to 100 items maximum.


Utility Types

#

CurrencyAmount#

A single amount accompanied by its currency

Example
{"amount": "999999999999", "currency": Currency}
Field NameDescription
amountInt96!

Numerical integer value, serialized as a string

currencyCurrency!

The currency this amount is in


IncreaseEnv#
Example
"production"
Enum ValueDescription
production
sandbox

Int96Condition#

A condition that must be met on an Int96 field.

Example
{"eq": "999999999999", "gte": "999999999999", "lte": "999999999999"}
Field NameDescription
eqInt96

Amount must exactly match this value. You may not specify this alongside gte or lte.

gteInt96

Amount must be greater than or equal to this value.

lteInt96

Amount must be less than or equal to this value.


LedgerAccountCondition#

A set of conditions that a Ledger Account must meet for an operation to succeed.

Example
{
  "ownBalance": Int96Condition,
  "totalBalance": Int96Condition
}
Field NameDescription
ownBalanceInt96Condition

A condition that the ownBalance field must satisfy. Note that this condition always applies to the latest balance, not to balances at a specific date or time. See Read balances for more on the different types of Ledger Account balances.

totalBalanceInt96Condition

A condition that the totalBalance field must satisfy. Note that this condition always applies to the latest balance, not to balances at a specific date or time. See Read balances for more on the different types of Ledger Account balances.


LedgerAccountConsistencyConfig#

The consistency configuration of a Ledger Account's balance updates. See Configure consistency.

Example
{
  "lines": "eventual",
  "ownBalanceUpdates": "eventual",
  "totalBalanceUpdates": "eventual"
}
Field NameDescription
linesLedgerLinesConsistencyMode!
ownBalanceUpdatesBalanceUpdateConsistencyMode!

If set to strong, then a Ledger Account's ownBalance updates will be strongly consistent with the API response. This Ledger Account's balance will be updated and available for strongly consistent reads once you receive an API response. Otherwise if not set or set to eventual, ownBalance updates are applied asynchronously and may not be immediately reflected in queries. See Configure consistency.

totalBalanceUpdatesBalanceUpdateConsistencyMode

If set to strong, then a Ledger Account's ownBalance, childBalance, and balance fields' updates will be strongly consistent with the API response. This Ledger Account's balance will be updated and available for strongly consistent reads once you receive an API response. Otherwise if not set or set to eventual, updates are applied asynchronously and may not be immediately reflected in queries. See Configure consistency.


LedgerAccountDataMigration#

Represents a data migration for a specific Ledger Account in a Ledger.

Example
{
  "accountPath": "abc123",
  "currentMigration": LedgerDataMigrationHistoryEntry,
  "history": LedgerDataMigrationHistoryConnection,
  "ledgerEntries": LedgerEntriesConnection,
  "status": "active"
}
Field NameDescription
accountPathString!

The path of the Ledger Account being migrated.

currentMigrationLedgerDataMigrationHistoryEntry

Current active migration info (null if migration is inactive).

historyLedgerDataMigrationHistoryConnection!

The historical transitions of this migration.

ledgerEntriesLedgerEntriesConnection!

The ledger entries to be migrated.

statusLedgerDataMigrationStatus!

The status of the data migration.


LedgerAccountPayment#

Payment configuration of a Ledger Account.

Example
{"penguin": true}
Field NameDescription
penguinBoolean!

LedgerAccountTypes#
Example
"asset"
Enum ValueDescription
asset
expense
income
liability

LedgerDataMigrationHistoryEntry#

A single schema version in the migration history.

Example
{"schemaVersion": 2277, "status": "active"}
Field NameDescription
schemaVersionInt!

The schema version.

statusLedgerDataMigrationStatus!

The current status of this schema version (active if it's the latest and migration is active, otherwise inactive).


LedgerEntryCondition#

A set of pre-conditions and post-conditions that a Ledger Account must have satisfied. Each LedgerEntryCondition has at least one of precondition or postcondition.

Example
{
  "account": LedgerAccount,
  "currency": Currency,
  "postcondition": LedgerAccountCondition,
  "precondition": LedgerAccountCondition
}
Field NameDescription
accountLedgerAccount!

The Ledger Account that must satisfied the provided conditions.

currencyCurrency!

The currency of the balance associated with this LedgerEntryCondition.

postconditionLedgerAccountCondition

The conditions that must be satisfied after the operation.

preconditionLedgerAccountCondition

The conditions that must be satisfied prior to the operation.


LedgerEntryDataMigration#

Represents a data migration for a specific entry type in a Ledger.

Example
{
  "currentMigration": LedgerDataMigrationHistoryEntry,
  "entryType": "some-safe-string-ik",
  "history": LedgerDataMigrationHistoryConnection,
  "ledgerEntries": LedgerEntriesConnection,
  "status": "active",
  "typeVersion": 2277
}
Field NameDescription
currentMigrationLedgerDataMigrationHistoryEntry

Current active migration info (null if migration is inactive).

entryTypeSafeString!

The entry type being migrated.

historyLedgerDataMigrationHistoryConnection!

The historical transitions of this migration.

ledgerEntriesLedgerEntriesConnection!

The ledger entries to be migrated.

statusLedgerDataMigrationStatus!

The status of the data migration.

typeVersionInt!

The version of the entry type being migrated.


LedgerEntryGroup#

A group of Ledger Entries

Example
{
  "balances": LedgerEntryGroupBalanceConnection,
  "created": "2007-12-03T10:15:30Z",
  "dashboardUrl": "abc123",
  "key": "some-safe-string-ik",
  "ledger": Ledger,
  "ledgerEntries": LedgerEntriesConnection,
  "ledgerId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
  "value": "some-safe-string-ik"
}
Field NameDescription
balancesLedgerEntryGroupBalanceConnection!
createdDateTime

ISO-8601 timestamp this LedgerEntryGroup was created in FRAGMENT .

dashboardUrlString!

URL to the FRAGMENT Dashboard for this Ledger Entry Group.

keySafeString!

The key of this Ledger Entry Group.

ledgerLedger!

The Ledger that this Ledger Entry Group is within.

ledgerEntriesLedgerEntriesConnection!
ledgerIdID!

The ID of the Ledger this Ledger Entry Group is within.

valueSafeString!

The value associated with Ledger Entry Group.


LedgerEntryGroupBalance#

Represents the total effect of a Ledger Entry Group on a Ledger Account balance for a single currency.

Example
{
  "account": LedgerAccount,
  "currency": Currency,
  "ownBalance": "999999999999"
}
Field NameDescription
accountLedgerAccount!

The Ledger Account whose balance is affected.

currencyCurrency!

The currency of the affected balance.

ownBalanceInt96!

The total balance change for this Ledger Account and currency.


LedgerEntryStats#

Posting count statistics for a specific type and typeVersion of entry in a Ledger.

Example
{
  "count": "999999999999",
  "ledgerId": "some-safe-string-ik",
  "netCount": "999999999999",
  "reversalsCount": "999999999999",
  "schemaKey": "some-safe-string-ik",
  "type": "some-safe-string-ik",
  "typeVersion": 2277
}
Field NameDescription
countInt96!

The total number of entries of this type.

ledgerIdSafeString!

The ledger ID these stats are for.

netCountInt96!

The net number of entries (count - reversalsCount).

reversalsCountInt96!

The number of entries that are reversals.

schemaKeySafeString!

The schema key associated with these stats.

typeSafeString!

The type of entry these stats are for.

typeVersionInt!

The version of the entry type these stats are for.


LedgerEntryTag#

A tag attached to a Ledger Entry.

Example
{"key": "some-safe-string-ik", "value": "some-safe-string-ik"}
Field NameDescription
keySafeString!

The key of this tag.

valueSafeString!

The value associated with this tag's key.


LedgerLineTag#

A tag attached to a Ledger Line.

Example
{"key": "some-safe-string-ik", "value": "some-safe-string-ik"}
Field NameDescription
keySafeString!

The key of this tag.

valueSafeString!

The value associated with this tag's key.


PostedWindow#

The posted timestamp window for a clearing account, representing the earliest and latest posted timestamps across all currencies.

Example
{"earliest": "2007-12-03T10:15:30Z", "latest": "2007-12-03T10:15:30Z"}
Field NameDescription
earliestDateTime!

The earliest posted timestamp across all currencies for this clearing account.

latestDateTime!

The latest posted timestamp across all currencies for this clearing account.


SchemaVersion#

An instance of a Schema stored in a Workspace. A new SchemaVersion is created each time a Schema is stored. It stores the Chart of Accounts and list of Ledger Entries as well as a history of its Ledger migrations.

Example
{
  "created": "2007-12-03T10:15:30Z",
  "json": "{"key":"value"}",
  "migrations": LedgerMigrationConnection,
  "version": 2277
}
Field NameDescription
createdDateTime!
jsonJSON!
migrationsLedgerMigrationConnection!
versionInt!

The version of the schema.


StripeEnv#
Example
"livemode"
Enum ValueDescription
livemode
testmode

UnitEnv#
Example
"production"
Enum ValueDescription
production
sandbox