SolariumSolariumDocs
Browse The Docs

Docs/Guides/Bank Import

POST

Check Bank Statement Duplicates

Check rows against existing transactions before importing. Returns per-row duplicate flags. Full match = same date + amount + vendor. Possible match = same date + amount, different vendor.

Parameters

organizationIdUUID!required

Organization ID

paymentAccountIdUUID!required

Bank or credit card account to check against

rows[BankStatementRowInput!]!required

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

Request
mutation {
  checkBankStatementDups(
    organizationId: "a1b2c3d4-..."
    paymentAccountId: "chequing-uuid"
    rows: [
      {
        transactionDate: "2025-03-01"
        description: "SHOPIFY *MAPLE ROASTERS"
        amount: "149.50"
        eventType: "expense"
      },
      {
        transactionDate: "2025-03-02"
        description: "TIM HORTONS #4821"
        amount: "11.30"
        eventType: "expense"
        memo: "Team coffee run"
      }
    ]
  ) {
    results {
      rowIndex
      isDuplicate
      isPossibleDuplicate
      matchingEventId
    }
    success
  }
}
Response
{
  "data": {
    "checkBankStatementDups": {
      "results": [
        {
          "rowIndex": 0,
          "isDuplicate": false,
          "isPossibleDuplicate": false,
          "matchingEventId": null
        },
        {
          "rowIndex": 1,
          "isDuplicate": true,
          "isPossibleDuplicate": false,
          "matchingEventId": "d8e9f0a1-..."
        }
      ],
      "success": true
    }
  }
}