Banking

Bank accounts, connections, statement imports, bank transactions, rules and reconciliation.

Paths are relative to https://evenbooks.org/api/v1. How keys, errors, paging and versions work is in the guide; the whole reference is also an OpenAPI 3.1 document.

Administrator key marks endpoints that need a key with the admin role, Write access those a read-only key can’t call, and Idempotent those that accept an idempotency key.

List bank accounts

get/banking/accounts

Bank and credit card accounts by name, each with its ledger balance and number of unreviewed transactions. Archived ones are left out unless includeInactive=true.

Parameters

Response 200

Errors 400 · 401 · 403 · 404 · 409 · 429

Add a bank account

post/banking/accounts
Administrator keyWrite access

Administrators only. Links the bank or credit card to a ledger account: an existing one with role bank (or credit_card) in ledgerAccountId, or a new one created from newLedgerAccount. Transactions come from CSV imports, a bank connection, or by hand.

Request body

CreateBankAccountInput

  • namestringrequired

    1–120 characters

  • kindstringrequired

    One of: bank credit_card

  • ledgerAccountIdstring · Uuid
  • newLedgerAccountobject
    Show 2 fields
    • codestringrequired

      1–20 characters

    • namestringrequired

      1–120 characters

Response 200

BankAccountDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Change a bank account

patch/banking/accounts/{id}
Administrator keyWrite access

Administrators only. Rename it, or set isActive: false to archive it: it is hidden from lists, stops syncing and takes no hand-entered transactions. Needs version from the last read (409 version_conflict otherwise). The response leaves out the ledger account code and name, ledger balance and unreviewed count.

Parameters

  • idstring (uuid)path · required

Request body

UpdateBankAccountInput

  • versionintegerrequired
  • namestring

    1–120 characters

  • isActiveboolean

Response 200

BankAccountDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

List bank connections

get/banking/connections

SimpleFIN connections by name, with their sync status and linked bank accounts.

Response 200

Errors 400 · 401 · 403 · 404 · 409 · 429

Connect a bank through SimpleFIN

post/banking/connections
Administrator keyWrite access

Administrators only. Claims the one-time SimpleFIN setup token (an outbound call to SimpleFIN; 502 external_error when it is refused) and keeps the access it grants, encrypted; the token itself is not stored. Next: GET /banking/connections/{id}/discover, then POST /banking/connections/{id}/link.

Request body

ConnectSimpleFinInput

  • namestringrequired

    1–120 characters

  • setupTokenstringrequired

    16–4000 characters

  • syncIntervalMinutesinteger

    60–1440 · default 360

Response 200

BankConnectionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Get a bank connection

get/banking/connections/{id}

With its sync status and linked bank accounts.

Parameters

  • idstring (uuid)path · required

Response 200

BankConnectionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Change a bank connection

patch/banking/connections/{id}
Administrator keyWrite access

Administrators only. Rename it, change how often it syncs, or set status: disabled stops automatic syncs; active clears the failure count and syncs soon. A revoked connection can only be made active with POST /banking/connections/{id}/reconnect (409 invalid_state). Needs version from the last read (409 version_conflict otherwise).

Parameters

  • idstring (uuid)path · required

Request body

PatchBankingConnectionsIdBody

  • versionintegerrequired
  • namestring

    1–120 characters

  • syncIntervalMinutesinteger

    60–1440

  • statusstring

    One of: active disabled

Response 200

BankConnectionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Disconnect a bank connection

post/banking/connections/{id}/disconnect
Administrator keyWrite access

Administrators only. Destroys the stored SimpleFIN access and stops syncing (status: revoked); imported transactions, account links and history stay. Needs version from the last read (409 version_conflict otherwise). Connect again with POST /banking/connections/{id}/reconnect.

Parameters

  • idstring (uuid)path · required

Request body

PostBankingConnectionsIdDisconnectBody

  • versionintegerrequired

Response 200

BankConnectionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

List the accounts a bank connection can see

get/banking/connections/{id}/discover
Administrator key

Administrators only. Asks SimpleFIN (an outbound call; 502 external_error when it fails) for the accounts and balances behind the connection, each with the bank account it is linked to, if any. No transactions are fetched. Link them with POST /banking/connections/{id}/link.

Parameters

  • idstring (uuid)path · required

Response 200

Errors 400 · 401 · 403 · 404 · 409 · 429

Reconnect a bank connection

post/banking/connections/{id}/reconnect
Administrator keyWrite access

Administrators only. Claims a new SimpleFIN setup token (an outbound call; 502 external_error when it is refused) and makes the connection active again, keeping its account links and history. Needs version from the last read (409 version_conflict otherwise).

Parameters

  • idstring (uuid)path · required

Request body

PostBankingConnectionsIdReconnectBody

  • versionintegerrequired
  • setupTokenstringrequired

    16–4000 characters

Response 200

BankConnectionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Sync a bank connection now

post/banking/connections/{id}/sync
Write access

Fetches new transactions for the linked accounts from SimpleFIN (an outbound call) into the review inbox. At most once per 15 minutes per connection, unless a linked account has never synced: a throttled call imports nothing and returns ok: true with a warning. Provider failures return ok: false with error, not an HTTP error. Changes to lines already reviewed are counted in changed and flagged, never rewritten.

Parameters

  • idstring (uuid)path · required

Response 200

SyncResultDto

  • connectionIdstring
  • okboolean
  • insertedinteger
  • updatedinteger
  • changedinteger
  • windowStartstring · PlainDateString or null
  • windowEndstring · PlainDateString or null
  • errorstring or null
  • warningsarray of string

Errors 400 · 401 · 403 · 404 · 409 · 429

List statement imports

get/banking/imports

The 100 most recent CSV and SimpleFIN import batches, newest first, optionally for one bank account. Without rows: get one import for those.

Parameters

  • bankAccountIdstring (uuid)query

Response 200

Errors 400 · 401 · 403 · 404 · 409 · 429

Preview a CSV bank statement

post/banking/imports
Write access

Step 1 of a CSV import. Reads the file with mapping, else the last mapping used for this bank account, else columns detected from the headers (mapping is null and there are no rows when none fit), and saves a previewed batch with each row marked ok, duplicate or error. Nothing is added to the account yet: fix the columns with POST /banking/imports/{id}/remap, then POST /banking/imports/{id}/commit. alreadyCommitted is true when this exact file was imported before.

Request body

PreviewCsvInput

Response 200

ImportBatchDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Get a statement import

get/banking/imports/{id}

With the file’s column headers and every row.

Parameters

  • idstring (uuid)path · required

Response 200

ImportBatchDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Import a previewed CSV statement

post/banking/imports/{id}/commit
Write accessIdempotent

Adds one unreviewed bank transaction per ok row; rows already in the account (checked again now) are skipped and counted as duplicates. Posts nothing to the books. Refused when the exact same file was already imported into this account (409 duplicate). A batch already committed is returned unchanged. Idempotent with idempotencyKey.

Parameters

  • idstring (uuid)path · required

Request body

CommitBatchInput

Response 200

ImportBatchDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Discard a CSV import

post/banking/imports/{id}/discard
Write access

Only a previewed batch (409 invalid_state otherwise). Returns no content.

Parameters

  • idstring (uuid)path · required

Response 204

Done; no body

No body.

Errors 400 · 401 · 403 · 404 · 409 · 429

Change the columns of a CSV import

post/banking/imports/{id}/remap
Write access

Reads the stored file again with this column mapping. Only a previewed batch (409 invalid_state otherwise). This batch is discarded and a new previewed batch, with a new id, is returned: commit that one.

Parameters

  • idstring (uuid)path · required

Request body

CsvMappingInput (fields under Schemas)

Response 200

ImportBatchDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

List reconciliations

get/banking/reconciliations

Latest statement end date first, optionally for one bank account. Without lines: get one reconciliation for those.

Parameters

  • bankAccountIdstring (uuid)query

Response 200

Errors 400 · 401 · 403 · 404 · 409 · 429

Start a reconciliation

post/banking/reconciliations
Write access

Opens an in_progress reconciliation of one statement for a bank account; only one can be in progress per account (409 invalid_state). The response lists the posted ledger lines on the account up to the statement end date that no other completed reconciliation has cleared. Next: POST /banking/reconciliations/{id}/items, then POST /banking/reconciliations/{id}/complete.

Request body

StartReconciliationInput

Response 200

ReconciliationDetailDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Get a reconciliation

get/banking/reconciliations/{id}

With its candidate lines and which are cleared, the cleared balance (statement opening balance plus cleared lines) and the discrepancy still to explain (closing balance minus cleared balance).

Parameters

  • idstring (uuid)path · required

Response 200

ReconciliationDetailDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Delete a reconciliation

delete/banking/reconciliations/{id}
Write access

Only one still in progress; a completed or flagged one must be reopened first (409 invalid_state). Returns no content.

Parameters

  • idstring (uuid)path · required

Response 204

Done; no body

No body.

Errors 400 · 401 · 403 · 404 · 409 · 429

Complete a reconciliation

post/banking/reconciliations/{id}/complete
Write accessIdempotent

Only when the discrepancy is zero (400 validation otherwise). Its cleared lines can no longer be cleared by another reconciliation; if one of their entries is later reversed or its bank review undone, the reconciliation becomes flagged. A reconciliation already completed is returned unchanged. Needs version from the last read (409 version_conflict otherwise). Idempotent with idempotencyKey.

Parameters

  • idstring (uuid)path · required

Request body

CompleteReconciliationInput

Response 200

ReconciliationDetailDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Clear or unclear reconciliation lines

post/banking/reconciliations/{id}/items
Write access

Ticks (clear) or unticks (unclear) lines by their journalLineId. Lines must be posted on this bank account and dated on or before the statement end (400 validation). Only while in_progress. Needs version from the last read (409 version_conflict otherwise); every call increments it.

Parameters

  • idstring (uuid)path · required

Request body

ToggleReconciliationItemsInput

  • versionintegerrequired
  • cleararray of string · Uuid

    up to 10000 items · default []

  • uncleararray of string · Uuid

    up to 10000 items · default []

Response 200

ReconciliationDetailDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Reopen a reconciliation

post/banking/reconciliations/{id}/reopen
Write access

Puts a completed or flagged reconciliation back in progress, keeping its cleared lines. Refused while another reconciliation of the account is in progress (409 invalid_state). The reason is kept in History. Needs version from the last read (409 version_conflict otherwise).

Parameters

  • idstring (uuid)path · required

Request body

PostBankingReconciliationsIdReopenBody

  • versionintegerrequired
  • reasonstringrequired

    1–500 characters

Response 200

ReconciliationDetailDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

List categorization rules

get/banking/rules

By priority (lowest number first), then name. For each unreviewed bank transaction, the first active rule that matches suggests an account; rules never post anything themselves.

Response 200

array of RuleDto

Errors 400 · 401 · 403 · 404 · 409 · 429

Create a categorization rule

post/banking/rules
Write access

Matches the description, the payee or either, ignoring case (contains, starts_with or equals), optionally limited to one bank account, a direction (money in or out) and an amount range. Accept its suggestions with POST /banking/transactions/bulk (accept_suggestion).

Request body

CreateRuleInput

  • namestringrequired

    1–120 characters

  • priorityinteger

    1–10000 · default 100

  • bankAccountIdstring · Uuid or null
  • directionstring

    One of: any in out

    default "any"

  • matchFieldstring

    One of: description payee any

    default "description"

  • matchTypestring

    One of: contains starts_with equals

    default "contains"

  • patternstringrequired

    1–200 characters

  • amountMinstring · PositiveDecimalString or null
  • amountMaxstring · PositiveDecimalString or null
  • accountIdstring · Uuidrequired
  • contactIdstring · Uuid or null
  • memostring or null

    up to 500 characters

Response 200

RuleDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Change a categorization rule

patch/banking/rules/{id}
Write access

Omitted fields stay as they are; isActive: false turns the rule off. Needs version from the last read (409 version_conflict otherwise).

Parameters

  • idstring (uuid)path · required

Request body

UpdateRuleInput

  • namestring

    1–120 characters

  • bankAccountIdstring · Uuid or null
  • patternstring

    1–200 characters

  • amountMinstring · PositiveDecimalString or null
  • amountMaxstring · PositiveDecimalString or null
  • accountIdstring · Uuid
  • contactIdstring · Uuid or null
  • memostring or null

    up to 500 characters

  • priorityinteger

    1–10000

  • directionstring

    One of: any in out

  • matchFieldstring

    One of: description payee any

  • matchTypestring

    One of: contains starts_with equals

  • versionintegerrequired
  • isActiveboolean

Response 200

RuleDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Delete a categorization rule

delete/banking/rules/{id}
Write access

Transactions it already helped categorize are unchanged. Returns no content.

Parameters

  • idstring (uuid)path · required

Response 204

Done; no body

No body.

Errors 400 · 401 · 403 · 404 · 409 · 429

List bank transactions

get/banking/transactions

The review inbox, newest first, filtered by bank account, status, dates, text or amount. Unreviewed lines carry a rule suggestion and a matchHint when there is one. counts has the number of lines per status for the same filters (ignoring status and paging) and suggestedCount the unreviewed ones a rule has a suggestion for. Pass nextCursor as cursor for the next page.

Parameters

Response 200

A page of BankTransactionDto ({ items, nextCursor, total }, see paging).

Errors 400 · 401 · 403 · 404 · 409 · 429

Add a bank transaction by hand

post/banking/transactions
Write access

For a line missing from imports and syncs. A positive amount is money into the account, negative is money out; zero is refused, and so is an archived bank account. The line arrives unreviewed and posts nothing until it is reviewed.

Request body

CreateManualBankTransactionInput

  • bankAccountIdstring · Uuidrequired
  • datestring · PlainDateStringrequired
  • amountstring · DecimalStringrequired
  • descriptionstringrequired

    1–500 characters

  • memostring or null

    up to 500 characters

Response 200

BankTransactionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Get a bank transaction

get/banking/transactions/{id}

Includes a rule suggestion and a matchHint when the line is unreviewed and has one.

Parameters

  • idstring (uuid)path · required

Response 200

BankTransactionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

List records a bank transaction could match

get/banking/transactions/{id}/candidates

Unmatched payments, expenses, refunds, Stripe payouts and other posted entries on the same account for the same amount within 7 days; for a deposit, customer payments still in Undeposited Funds; and opposite lines in other bank accounts within 5 days (bank_transaction, a likely transfer). score is 100 for the same day, 5 less per day apart. Use them with POST /banking/transactions/{id}/match, or a bank_transaction with POST /banking/transactions/{id}/transfer.

Parameters

  • idstring (uuid)path · required

Response 200

Errors 400 · 401 · 403 · 404 · 409 · 429

Categorize a bank transaction

post/banking/transactions/{id}/categorize
Write accessIdempotent

Records an unreviewed line in the books. Money out becomes a paid expense (or, when every line is an equity account, an owner draw entry); money in posts to the given accounts. Several lines split it and must add up to the amount. A customer paying an invoice is refused here: use pay-invoice or match. createRule saves a rule from a one-line decision. Refused in a closed period (409 period_locked). Needs version from the last read (409 version_conflict otherwise). Idempotent with idempotencyKey.

Parameters

  • idstring (uuid)path · required

Request body

CategorizeInput

  • versionintegerrequired
  • contactIdstring · Uuid or null
  • memostring or null

    up to 500 characters

  • linesarray of objectrequired

    1–50 items

    Show 3 fields of each item
    • accountIdstring · Uuidrequired
    • amountstring · PositiveDecimalStringrequired
    • descriptionstring

      up to 500 characters · default ""

  • createRuleobject
    Show 3 fields
    • patternstringrequired

      1–200 characters

    • matchTypestring

      One of: contains starts_with equals

      default "contains"

    • directionstring

      One of: any in out

  • attachmentIdsarray of string · Uuid

    up to 20 items

  • idempotencyKeystring · IdempotencyKey

Response 200

BankTransactionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Exclude a bank transaction

post/banking/transactions/{id}/exclude
Write access

Marks an unreviewed line as not belonging in the books, with a reason; nothing is posted. Needs version from the last read (409 version_conflict otherwise). Put it back with POST /banking/transactions/{id}/undo.

Parameters

  • idstring (uuid)path · required

Request body

ExcludeInput

  • versionintegerrequired
  • reasonstringrequired

    1–500 characters

Response 200

BankTransactionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

List invoices a deposit could pay

get/banking/transactions/{id}/invoices

For money in only (an empty list otherwise): open invoices whose balance equals the amount, every open invoice of the customer in contactId or named in the description or payee, and balances within 10% of the amount. Best first, at most 25. Pay them with POST /banking/transactions/{id}/pay-invoice.

Parameters

  • idstring (uuid)path · required
  • contactIdstring · Uuidquery

Response 200

Errors 400 · 401 · 403 · 404 · 409 · 429

Match a bank transaction to recorded items

post/banking/transactions/{id}/match
Write accessIdempotent

For a line that is already in the books: links it to records from GET /banking/transactions/{id}/candidates, whose total minus an optional fee must equal the line (400 validation). Posts only the fee, or, for payments waiting in Undeposited Funds, a deposit entry moving them to the bank. A record already matched elsewhere is refused (409 duplicate). Needs version from the last read (409 version_conflict otherwise). Idempotent with idempotencyKey.

Parameters

  • idstring (uuid)path · required

Request body

MatchInput

  • versionintegerrequired
  • targetsarray of objectrequired

    1–50 items

    Show 2 fields of each item
    • targetTypestringrequired

      One of: payment purchase refund journal_entry processor_payout

    • targetIdstring · Uuidrequired
  • feeobject
    Show 2 fields
  • idempotencyKeystring · IdempotencyKey

Response 200

BankTransactionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Record a deposit as an invoice payment

post/banking/transactions/{id}/pay-invoice
Write accessIdempotent

Records a customer payment for the whole deposit, applied to the chosen invoices in due date order (the last may be paid in part; anything left over stays as credit for the customer), and matches the line to it. Money in only, and all invoices from one customer. Needs version from the last read (409 version_conflict otherwise). Idempotent with idempotencyKey.

Parameters

  • idstring (uuid)path · required

Request body

RecordInvoicePaymentInput

  • versionintegerrequired
  • invoiceIdsarray of string · Uuidrequired

    1–20 items

  • idempotencyKeystring · IdempotencyKey

Response 200

BankTransactionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Record a bank transaction as a transfer

post/banking/transactions/{id}/transfer
Write accessIdempotent

Money moved between the company’s own accounts; it is neither income nor expense. Give either the other side’s line (counterpartTransactionId: unreviewed, in another bank account, same amount the other way), which is marked reviewed too, or another balance sheet account (otherLedgerAccountId: a bank, card, loan, clearing or owner account; receivables, customer deposits and sales tax are refused). Posts one entry. Needs version from the last read (409 version_conflict otherwise). Idempotent with idempotencyKey.

Parameters

  • idstring (uuid)path · required

Request body

TransferInput

  • versionintegerrequired
  • counterpartTransactionIdstring · Uuid
  • otherLedgerAccountIdstring · Uuid
  • memostring or null

    up to 500 characters

  • idempotencyKeystring · IdempotencyKey

Response 200

BankTransactionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Undo the review of a bank transaction

post/banking/transactions/{id}/undo
Write accessIdempotent

Puts a reviewed line back in the inbox. An expense its categorization created is voided and an entry it posted is reversed (refused in a closed period); records it was matched to stay, and the other side of a transfer returns to the inbox too. Completed reconciliations that cleared a reversed entry become flagged. Needs version from the last read (409 version_conflict otherwise). Idempotent with idempotencyKey.

Parameters

  • idstring (uuid)path · required

Request body

UndoReviewInput

  • versionintegerrequired
  • reasonstring

    up to 500 characters

  • idempotencyKeystring · IdempotencyKey

Response 200

BankTransactionDto (fields under Schemas)

Errors 400 · 401 · 403 · 404 · 409 · 429

Review many bank transactions at once

post/banking/transactions/bulk
Write accessIdempotent

Applies one action to up to 100 lines, each with its version: accept_suggestion (the account its rule suggests; refused for a line that looks already recorded), categorize, transfer, exclude or undo. Each line succeeds or fails on its own (a stale version, a closed period); the response lists every line with the updated transaction or the error. One idempotencyKey covers the whole request.

Request body

BulkReviewInput

One of these shapes:

action: "accept_suggestion"

  • actionstringrequired

    Always "accept_suggestion"

  • itemsarray of objectrequired

    1–100 items

    Show 2 fields of each item
    • idstring · Uuidrequired
    • versionintegerrequired
  • idempotencyKeystring · IdempotencyKey

action: "categorize"

  • actionstringrequired

    Always "categorize"

  • itemsarray of objectrequired

    1–100 items

    Show 2 fields of each item
    • idstring · Uuidrequired
    • versionintegerrequired
  • accountIdstring · Uuidrequired
  • contactIdstring · Uuid or null
  • memostring or null

    up to 500 characters

  • idempotencyKeystring · IdempotencyKey

action: "transfer"

  • actionstringrequired

    Always "transfer"

  • itemsarray of objectrequired

    1–100 items

    Show 2 fields of each item
    • idstring · Uuidrequired
    • versionintegerrequired
  • otherLedgerAccountIdstring · Uuidrequired
  • idempotencyKeystring · IdempotencyKey

action: "exclude"

  • actionstringrequired

    Always "exclude"

  • itemsarray of objectrequired

    1–100 items

    Show 2 fields of each item
    • idstring · Uuidrequired
    • versionintegerrequired
  • reasonstringrequired

    1–500 characters

  • idempotencyKeystring · IdempotencyKey

action: "undo"

  • actionstringrequired

    Always "undo"

  • itemsarray of objectrequired

    1–100 items

    Show 2 fields of each item
    • idstring · Uuidrequired
    • versionintegerrequired
  • reasonstring

    up to 500 characters

  • idempotencyKeystring · IdempotencyKey

Response 200

BulkReviewResultDto

Errors 400 · 401 · 403 · 404 · 409 · 429

Schemas

The types these endpoints take or return, by name. Type names above link here.

BankAccountDto

  • idstring
  • namestring
  • kindstring

    One of: bank credit_card

  • ledgerAccountIdstring
  • ledgerAccountCodestringoptional
  • ledgerAccountNamestringoptional
  • connectionIdstring or null
  • providerAccountIdstring or null
  • providerOrgNamestring or null
  • currencystring
  • lastBalancestring · DecimalString or null
  • lastBalanceAtstring or null
  • lastSyncedAtstring or null
  • ledgerBalancestring · DecimalStringoptional
  • unreviewedCountintegeroptional
  • isActiveboolean
  • versioninteger

BankConnectionDto

  • idstring
  • providerstring

    Always "simplefin"

  • namestring
  • statusstring · ConnectionStatus

    One of: active error revoked disabled

  • syncIntervalMinutesinteger
  • nextSyncAtstring or null
  • lastSyncStartedAtstring or null
  • lastSuccessAtstring or null
  • lastErrorstring or null
  • lastErrorAtstring or null
  • consecutiveFailuresinteger
  • isStaleboolean
  • accountsarray of objectoptional
    Show 8 fields of each item
    • idstring
    • namestring
    • kindstring

      One of: bank credit_card

    • providerAccountIdstring or null
    • providerOrgNamestring or null
    • lastBalancestring · DecimalString or null
    • lastBalanceAtstring or null
    • lastSyncedAtstring or null
  • versioninteger
  • createdAtstring

BankTransactionDto

  • idstring
  • bankAccountIdstring
  • bankAccountNamestringoptional
  • sourcestring

    One of: csv simplefin manual

  • datestring · PlainDateString
  • amountstring · DecimalString
  • currencystring
  • descriptionstring
  • payeestring or null
  • memostring or null
  • referencestring or null
  • pendingboolean
  • statusstring · BankTxnStatus

    One of: unreviewed categorized matched transfer excluded

  • excludedReasonstring or null
  • journalEntryIdstring or null
  • changedAtstring or null
  • changeNotestring or null
  • reviewedBystring or null
  • reviewedAtstring or null
  • versioninteger
  • suggestionobject or nulloptional
    Show 6 fields
    • ruleIdstring
    • ruleNamestring
    • accountIdstring
    • accountNamestring
    • contactIdstring or null
    • memostring or null
  • matchHintobject or nulloptional
    Show 4 fields
    • countinteger
    • topScorenumber
    • transfersinteger
    • invoicesinteger

BankTxnStatus

string

One of: unreviewed categorized matched transfer excluded

BulkReviewItemResult

  • idstring
  • okboolean
  • transactionBankTransactionDtooptional
  • errorobjectoptional
    Show 2 fields
    • codestring
    • messagestring

ConnectionStatus

string

One of: active error revoked disabled

CsvColumnName

string

up to 200 characters

CsvMapping

CsvMappingInput

DecimalString

decimal string

string

up to 32 characters · pattern ^-?\d+(\.\d+)?$

DiscoveredAccountDto

  • providerAccountIdstring
  • namestring
  • orgNamestring or null
  • currencystring
  • balancestring · DecimalString or null
  • balanceDatestring or null
  • bankAccountIdstring or null

IdempotencyKey

string

8–128 characters

ImportBatchDto

  • idstring
  • bankAccountIdstring
  • sourcestring

    One of: csv simplefin

  • fileNamestring or null
  • statusstring

    One of: previewed committed discarded failed

  • mappingCsvMapping or null
  • headersarray of stringoptional
  • rowCountinteger
  • importedCountinteger
  • duplicateCountinteger
  • errorCountinteger
  • windowStartstring · PlainDateString or null
  • windowEndstring · PlainDateString or null
  • alreadyCommittedbooleanoptional
  • createdAtstring
  • committedAtstring or null
  • rowsarray of ImportRowDtooptional

ImportRowDto

  • rowNointeger
  • statusstring

    One of: ok duplicate error

  • errorstring or null
  • datestring · PlainDateString or null
  • amountstring · DecimalString or null
  • descriptionstring or null
  • memostring or null
  • referencestring or null
  • duplicateOfstring or null
  • rawmap of string

InvoiceCandidateDto

MatchCandidateDto

  • targetTypestring

    One of: payment purchase refund journal_entry bank_transaction processor_payout

  • targetIdstring
  • datestring · PlainDateString
  • amountstring · DecimalString
  • descriptionstring
  • detailstring or null
  • bankAccountNamestring or nulloptional
  • undepositedbooleanoptional
  • scorenumber

NonNegativeDecimalString

string

up to 32 characters · pattern ^\d+(\.\d+)?$

PageCursor

string

up to 2000 characters

PlainDateString

string

pattern ^\d{4}-\d{2}-\d{2}$

PositiveDecimalString

string

QueryBoolean

boolean

ReconciliationDetailDto

ReconciliationDto

  • idstring
  • bankAccountIdstring
  • bankAccountNamestringoptional
  • statementStartDatestring · PlainDateString
  • statementEndDatestring · PlainDateString
  • statementOpeningBalancestring · DecimalString
  • statementClosingBalancestring · DecimalString
  • statusstring

    One of: in_progress completed flagged

  • clearedBalancestring · DecimalString or null
  • discrepancystring · DecimalString or null
  • completedAtstring or null
  • completedBystring or null
  • flaggedReasonstring or null
  • notesstring or null
  • versioninteger
  • createdAtstring

ReconciliationLineDto

  • journalLineIdstring
  • entryIdstring
  • entryNumberinteger or null
  • datestring · PlainDateString
  • memostring
  • amountstring · DecimalString
  • clearedboolean
  • sourceTypestring

RuleDto

  • idstring
  • namestring
  • priorityinteger
  • bankAccountIdstring or null
  • directionstring

    One of: any in out

  • matchFieldstring

    One of: description payee any

  • matchTypestring

    One of: contains starts_with equals regex

  • patternstring
  • amountMinstring · DecimalString or null
  • amountMaxstring · DecimalString or null
  • accountIdstring
  • accountNamestringoptional
  • contactIdstring or null
  • memostring or null
  • isActiveboolean
  • hitCountinteger
  • versioninteger

Uuid

string (uuid)