SolariumSolariumDocs
Browse The Docs

Docs/Guides/Bank Import

POST

Import Bank Statement

Imports bank statement rows as LedgerEvents attached to a payment account. Each row is created with status needs_review. Rows that exactly match existing transactions (same date, amount, and vendor) are skipped automatically.

Parameters

organizationIdUUID!required

Organization ID

paymentAccountIdUUID!required

Bank or credit card account to import into

currencyString

ISO 4217 currency code (default "CAD")

rows[BankStatementRowInput!]!required

Array of statement rows. Each row: transactionDate (String!), description (String!), amount (String!), eventType (String!), memo (String), reference (String)

Request
mutation {
  importBankStatement(
    organizationId: "a1b2c3d4-..."
    paymentAccountId: "chequing-uuid"
    currency: "CAD"
    rows: [
      {
        transactionDate: "2025-03-01"
        description: "SHOPIFY *MAPLE ROASTERS"
        amount: "149.50"
        eventType: "expense"
        reference: "TXN-20250301-001"
      },
      {
        transactionDate: "2025-03-01"
        description: "E-TRANSFER FROM CLAIRE DUBOIS"
        amount: "2500.00"
        eventType: "income"
        memo: "Invoice #1042 payment"
      },
      {
        transactionDate: "2025-03-03"
        description: "CANADA POST CORP"
        amount: "18.75"
        eventType: "expense"
        memo: "Shipping label — order #887"
        reference: "CP-88712345"
      }
    ]
  ) {
    importedCount
    skippedCount
    success
    error
  }
}
Response
{
  "data": {
    "importBankStatement": {
      "importedCount": 3,
      "skippedCount": 0,
      "success": true,
      "error": null
    }
  }
}