Adds a Ledger Entry to a Ledger. This Ledger Entry cannot be into a Linked Ledger Account. For that, use reconcileTx
ResponseReturns an AddLedgerEntryResponse!
mutation AddLedgerEntry(
  $entry: LedgerEntryInput!,
  $ik: SafeString!
) {
  addLedgerEntry(
    entry: $entry,
    ik: $ik
  ) {
    ... on AddLedgerEntryResult {
      ...AddLedgerEntryResultFragment
    }
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
  }
}
{"entry": LedgerEntryInput, "ik": "some-safe-string-ik"}
{"data": {"addLedgerEntry": AddLedgerEntryResult}}
| Name | Description | 
|---|---|
| entry - LedgerEntryInput! | An object containing the Ledger Lines as well as an optional description and posted timestamp. | 
| ik - SafeString! | The Idempotency Key | 
Creates a custom currency.
ResponseReturns a CreateCustomCurrencyResponse!
mutation CreateCustomCurrency($customCurrency: CreateCustomCurrencyInput!) {
  createCustomCurrency(customCurrency: $customCurrency) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on CreateCustomCurrencyResult {
      ...CreateCustomCurrencyResultFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
  }
}
{"customCurrency": CreateCustomCurrencyInput}
{"data": {"createCustomCurrency": BadRequestError}}
| Name | Description | 
|---|---|
| customCurrency - CreateCustomCurrencyInput! | The custom currency to be created. | 
Custom Links let you integrate external systems that don't have native support. See Custom Links
ResponseReturns a CreateCustomLinkResponse!
mutation CreateCustomLink(
  $ik: SafeString!,
  $name: String!
) {
  createCustomLink(
    ik: $ik,
    name: $name
  ) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on CreateCustomLinkResult {
      ...CreateCustomLinkResultFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
  }
}
{"ik": "some-safe-string-ik", "name": "abc123"}
{"data": {"createCustomLink": BadRequestError}}
| Name | Description | 
|---|---|
| ik - SafeString! | The Idempotency Key | 
| name - String! | The name of your custom link | 
Creates a Ledger.
ResponseReturns a CreateLedgerResponse!
mutation CreateLedger(
  $ik: SafeString!,
  $ledger: CreateLedgerInput!,
  $schema: SchemaMatchInput
) {
  createLedger(
    ik: $ik,
    ledger: $ledger,
    schema: $schema
  ) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on CreateLedgerResult {
      ...CreateLedgerResultFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
  }
}
{
  "ik": "some-safe-string-ik",
  "ledger": CreateLedgerInput,
  "schema": SchemaMatchInput
}
{"data": {"createLedger": BadRequestError}}
| Name | Description | 
|---|---|
| ik - SafeString! | The Idempotency Key | 
| ledger - CreateLedgerInput! | The payload representing the Ledger to be created | 
| schema - SchemaMatchInput | The Schema to create this Ledger with | 
Delete Txs on a Custom Link. Once deleted, a Tx will not show up in listing queries, but can be resolved by if you lookup by its FRAGMENT ID.
ResponseReturns a DeleteCustomTxsResponse!
mutation DeleteCustomTxs($txs: [ID!]!) {
  deleteCustomTxs(txs: $txs) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on DeleteCustomTxsResult {
      ...DeleteCustomTxsResultFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
  }
}
{"txs": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"}
{"data": {"deleteCustomTxs": BadRequestError}}
| Name | Description | 
|---|---|
| txs - [ID!]! | The FRAGMENT IDs of the Txs to delete | 
Delete a Ledger.
ResponseReturns a DeleteLedgerResponse!
mutation DeleteLedger($ledger: LedgerMatchInput!) {
  deleteLedger(ledger: $ledger) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on DeleteLedgerResult {
      ...DeleteLedgerResultFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
  }
}
{"ledger": LedgerMatchInput}
{"data": {"deleteLedger": BadRequestError}}
| Name | Description | 
|---|---|
| ledger - LedgerMatchInput! | 
Delete a Schema
ResponseReturns a DeleteSchemaResponse!
mutation DeleteSchema($schema: SchemaMatchInput!) {
  deleteSchema(schema: $schema) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on DeleteSchemaResult {
      ...DeleteSchemaResultFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
  }
}
{"schema": SchemaMatchInput}
{"data": {"deleteSchema": BadRequestError}}
| Name | Description | 
|---|---|
| schema - SchemaMatchInput! | 
Migrate an existing Ledger Entry to a new type and typeVersion.
ResponseReturns a MigrateLedgerEntryResponse!
mutation MigrateLedgerEntry($input: MigrateLedgerEntryInput!) {
  migrateLedgerEntry(input: $input) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
    ... on MigrateLedgerEntryResult {
      ...MigrateLedgerEntryResultFragment
    }
  }
}
{"input": MigrateLedgerEntryInput}
{"data": {"migrateLedgerEntry": BadRequestError}}
| Name | Description | 
|---|---|
| input - MigrateLedgerEntryInput! | 
This mutation is used to reconcile transactions from an external system into a Ledger Entry. This mutation does not require an idempotency key since a transaction can only be reconciled once per Linked Ledger Account. If you are reconciling a transfer between two Link Accounts which are both linked to the same Ledger, use a transit account in between to split the transfer into two reconcileTx calls.
ResponseReturns a ReconcileTxResponse!
mutation ReconcileTx($entry: LedgerEntryInput!) {
  reconcileTx(entry: $entry) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
    ... on ReconcileTxResult {
      ...ReconcileTxResultFragment
    }
  }
}
{"entry": LedgerEntryInput}
{"data": {"reconcileTx": BadRequestError}}
| Name | Description | 
|---|---|
| entry - LedgerEntryInput! | The ledger entry containing lines that specify the transaction from a linked ledger account to reconcile, as well as the ledger account with which to offset the external transaction. | 
Reverses a Ledger Entry
ResponseReturns a ReverseLedgerEntryResponse!
mutation ReverseLedgerEntry($id: ID!) {
  reverseLedgerEntry(id: $id) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
    ... on ReverseLedgerEntryResult {
      ...ReverseLedgerEntryResultFragment
    }
  }
}
{"id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"}
{"data": {"reverseLedgerEntry": BadRequestError}}
| Name | Description | 
|---|---|
| id - ID! | The FRAGMENT ID of the Ledger Entry to reverse | 
Stores a Schema in your workspace. If no Schema with the same key exists in your worksapce, a new Schema is created. Else, the Schema is updated, and every Ledger associated with it is migrated to the latest version.
ResponseReturns a StoreSchemaResponse!
mutation StoreSchema($schema: SchemaInput!) {
  storeSchema(schema: $schema) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
    ... on StoreSchemaResult {
      ...StoreSchemaResultFragment
    }
  }
}
{"schema": SchemaInput}
{"data": {"storeSchema": BadRequestError}}
| Name | Description | 
|---|---|
| schema - SchemaInput! | The Schema to store. | 
Once you've created a Custom Link, create accounts under it using this mutation. Each Custom Account is an immutable, single-entry view of all the transactions in the external account. You can sync up to 100 Custom Accounts in one API call.
ResponseReturns a SyncCustomAccountsResponse!
mutation SyncCustomAccounts(
  $accounts: [CustomAccountInput!]!,
  $link: LinkMatchInput!
) {
  syncCustomAccounts(
    accounts: $accounts,
    link: $link
  ) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
    ... on SyncCustomAccountsResult {
      ...SyncCustomAccountsResultFragment
    }
  }
}
{
  "accounts": [CustomAccountInput],
  "link": LinkMatchInput
}
{"data": {"syncCustomAccounts": BadRequestError}}
| Name | Description | 
|---|---|
| accounts - [CustomAccountInput!]! | A list of external accounts to sync | 
| link - LinkMatchInput! | An object containing the ID of a Custom Link. | 
You can create transactions under a Custom Account in a Custom Link using this mutation. Once you've imported transactions, you can use the reconcileTx mutation to add them to a Ledger via the Linked Ledger Account. You can sync up to 100 Custom Transactions in one API call.
ResponseReturns a SyncCustomTxsResponse!
mutation SyncCustomTxs(
  $link: LinkMatchInput!,
  $txs: [CustomTxInput!]!
) {
  syncCustomTxs(
    link: $link,
    txs: $txs
  ) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
    ... on SyncCustomTxsResult {
      ...SyncCustomTxsResultFragment
    }
  }
}
{
  "link": LinkMatchInput,
  "txs": [CustomTxInput]
}
{"data": {"syncCustomTxs": BadRequestError}}
| Name | Description | 
|---|---|
| link - LinkMatchInput! | An object containing the ID of a Custom Link. | 
| txs - [CustomTxInput!]! | A list of external transactions to sync | 
Updates a Ledger. Currently, you can change only the Ledger 'name'.
ResponseReturns an UpdateLedgerResponse!
mutation UpdateLedger(
  $ledger: LedgerMatchInput!,
  $update: UpdateLedgerInput!
) {
  updateLedger(
    ledger: $ledger,
    update: $update
  ) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
    ... on UpdateLedgerResult {
      ...UpdateLedgerResultFragment
    }
  }
}
{
  "ledger": LedgerMatchInput,
  "update": UpdateLedgerInput
}
{"data": {"updateLedger": BadRequestError}}
| Name | Description | 
|---|---|
| ledger - LedgerMatchInput! | An object containing the ID of the Ledger to update. | 
| update - UpdateLedgerInput! | A payload of fields to update. Currently, you can change only the Ledger 'name'. | 
Update a ledger entry
ResponseReturns an UpdateLedgerEntryResponse!
mutation UpdateLedgerEntry(
  $ledgerEntry: LedgerEntryMatchInput!,
  $update: UpdateLedgerEntryInput!
) {
  updateLedgerEntry(
    ledgerEntry: $ledgerEntry,
    update: $update
  ) {
    ... on BadRequestError {
      ...BadRequestErrorFragment
    }
    ... on InternalError {
      ...InternalErrorFragment
    }
    ... on UpdateLedgerEntryResult {
      ...UpdateLedgerEntryResultFragment
    }
  }
}
{
  "ledgerEntry": LedgerEntryMatchInput,
  "update": UpdateLedgerEntryInput
}
{"data": {"updateLedgerEntry": BadRequestError}}
| Name | Description | 
|---|---|
| ledgerEntry - LedgerEntryMatchInput! | The Ledger Entry that is being updated | 
| update - UpdateLedgerEntryInput! | The payload containing the fields to update. Only a Ledger Entry's tags can be updated. |