e-arveldaja-mcp 0.32.1 → 0.32.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/CLAUDE.md +8 -0
  3. package/dist/bank-posting-duplicate-guard.d.ts +5 -1
  4. package/dist/bank-posting-duplicate-guard.d.ts.map +1 -1
  5. package/dist/bank-posting-duplicate-guard.js.map +1 -1
  6. package/dist/banking/reconciliation/executor.d.ts.map +1 -1
  7. package/dist/banking/reconciliation/executor.js +39 -7
  8. package/dist/banking/reconciliation/executor.js.map +1 -1
  9. package/dist/banking/reconciliation/inter-account-matcher.d.ts +9 -1
  10. package/dist/banking/reconciliation/inter-account-matcher.d.ts.map +1 -1
  11. package/dist/banking/reconciliation/inter-account-matcher.js +25 -2
  12. package/dist/banking/reconciliation/inter-account-matcher.js.map +1 -1
  13. package/dist/banking/reconciliation/presenter.d.ts +137 -15
  14. package/dist/banking/reconciliation/presenter.d.ts.map +1 -1
  15. package/dist/banking/reconciliation/presenter.js.map +1 -1
  16. package/dist/banking/reconciliation/types.d.ts +20 -6
  17. package/dist/banking/reconciliation/types.d.ts.map +1 -1
  18. package/dist/camt/duplicate-identity.d.ts +5 -5
  19. package/dist/camt/duplicate-identity.d.ts.map +1 -1
  20. package/dist/camt/duplicate-identity.js.map +1 -1
  21. package/dist/camt/iban-omission.js +3 -3
  22. package/dist/camt/iban-omission.js.map +1 -1
  23. package/dist/camt/marker-render-v1.d.ts +3 -3
  24. package/dist/camt/presenter.d.ts +150 -8
  25. package/dist/camt/presenter.d.ts.map +1 -1
  26. package/dist/camt/presenter.js.map +1 -1
  27. package/dist/camt/types.d.ts +2 -0
  28. package/dist/camt/types.d.ts.map +1 -1
  29. package/dist/plan-tools.d.ts +45 -0
  30. package/dist/plan-tools.d.ts.map +1 -1
  31. package/dist/plan-tools.js.map +1 -1
  32. package/dist/receipts/classification-operations.d.ts.map +1 -1
  33. package/dist/receipts/classification-operations.js +13 -0
  34. package/dist/receipts/classification-operations.js.map +1 -1
  35. package/dist/resolution/bank-account-resolution.d.ts.map +1 -1
  36. package/dist/resolution/bank-account-resolution.js +2 -1
  37. package/dist/resolution/bank-account-resolution.js.map +1 -1
  38. package/dist/tools/analyze-unconfirmed.d.ts +38 -0
  39. package/dist/tools/analyze-unconfirmed.d.ts.map +1 -1
  40. package/dist/tools/analyze-unconfirmed.js +21 -2
  41. package/dist/tools/analyze-unconfirmed.js.map +1 -1
  42. package/dist/tools/bank-reconciliation.d.ts +16 -0
  43. package/dist/tools/bank-reconciliation.d.ts.map +1 -1
  44. package/dist/tools/bank-reconciliation.js.map +1 -1
  45. package/dist/tools/camt-import.d.ts +26 -0
  46. package/dist/tools/camt-import.d.ts.map +1 -1
  47. package/dist/tools/camt-import.js.map +1 -1
  48. package/dist/tools/inter-account-utils.d.ts +6 -0
  49. package/dist/tools/inter-account-utils.d.ts.map +1 -1
  50. package/dist/tools/inter-account-utils.js +7 -2
  51. package/dist/tools/inter-account-utils.js.map +1 -1
  52. package/dist/tools/pdf-workflow.d.ts +165 -4
  53. package/dist/tools/pdf-workflow.d.ts.map +1 -1
  54. package/dist/tools/pdf-workflow.js.map +1 -1
  55. package/dist/types/api.d.ts +2 -0
  56. package/dist/types/api.d.ts.map +1 -1
  57. package/dist/wise/counterpart.d.ts.map +1 -1
  58. package/dist/wise/counterpart.js +3 -0
  59. package/dist/wise/counterpart.js.map +1 -1
  60. package/dist/wise/presenter.d.ts +100 -3
  61. package/dist/wise/presenter.d.ts.map +1 -1
  62. package/dist/wise/presenter.js.map +1 -1
  63. package/dist/wise/projection.d.ts +23 -2
  64. package/dist/wise/projection.d.ts.map +1 -1
  65. package/dist/wise/projection.js.map +1 -1
  66. package/dist/workflow-response.d.ts +14 -4
  67. package/dist/workflow-response.d.ts.map +1 -1
  68. package/dist/workflow-response.js.map +1 -1
  69. package/package.json +9 -7
  70. package/server.json +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.32.2] - 2026-10-26
6
+
7
+ ### Fixed
8
+
9
+ - **A transfer to one of your own bank accounts that e-arveldaja cannot book is held for review instead of being booked to a different account.** Before, a payment under the company's own name to an own account without an accounting dimension could be booked as a transfer to the only other registered account. Details: such rows are reported as `own_account_not_bookable` by reconciliation, transaction classification and `analyze_unconfirmed_transactions`; the Wise counterpart check no longer treats them as the bank side of a Wise movement.
10
+ - **A company-name payment to an IBAN that is not a registered own account is booked only when the other account's matching row proves the transfer.** This covers both an own account not set up in e-arveldaja and a payment provider's pooled account (e.g. a Wise top-up), which look identical. Details: with the mirror row present the pair is still matched and booked as before; without it the row is held as `unregistered_iban_needs_mirror` (also in `analyze_unconfirmed_transactions`), and the guidance no longer suggests a target parameter that could not help.
11
+ - **An own bank account whose IBAN field is empty is recognised by its account number.** Before, an empty `iban_code` hid `account_no`, so transfers to that account looked external.
12
+ - **A company-name transfer with an explicit `target_accounts_dimensions_id` can be executed.** Before, the dry run planned it but execution always stopped as plan drift because verification demanded a higher confidence than planning.
13
+
14
+ ### Changed
15
+
16
+ - **Dependency maintenance updates.** Details: liteparse 2.17.0, MCP SDK 1.32.2, dotenv, vite and the Babel parser; `npm audit` is clean.
17
+ - Test sources are now type-checked in CI and release checks, with a ratchet that lets loose typing only decrease; tool payload types are exported by the producing modules. No runtime behaviour changes.
18
+
5
19
  ## [0.32.1] - 2026-10-19
6
20
 
7
21
  ### Fixed
package/CLAUDE.md CHANGED
@@ -670,8 +670,16 @@ are not rewritten.
670
670
  ```bash
671
671
  npx tsc --noEmit # Type-check without emitting
672
672
  npx tsc # Full build to dist/
673
+ npm run typecheck:tests # typecheck tests + fixtures against the ratchet baseline
673
674
  ```
674
675
 
676
+ Test typing ratchet: `npm run typecheck:tests` also counts explicit `any` and untyped `parseMcpResponse` calls in
677
+ test sources (codes `ANY` / `UNTYPED_PAYLOAD`); they may only go down. Parse tool payloads with
678
+ `parseToolPayload<T>()` from `src/__fixtures__/mcp-response.ts`, where `T` is the payload type the producing
679
+ presenter exports. After removing loose typing, run `npm run typecheck:tests:update`.
680
+ A change that alters a tool's output shape also exports or updates that payload's type (in the producing
681
+ presenter/tool module) in the same commit, so producer types appear where output changes, not only where tests are added.
682
+
675
683
  Unit tests use **vitest**:
676
684
  ```bash
677
685
  npm run test # vitest run (all unit tests)
@@ -89,12 +89,16 @@ export declare function findDuplicatePostingsInJournals(journals: Journal[], can
89
89
  amountTolerance?: number;
90
90
  includeUnregistered?: boolean;
91
91
  }): DuplicatePostingSuspect[];
92
+ /** Wire shape of a rendered suspect: the same fields, with `journal_title` / `document_number` sandbox-wrapped. */
93
+ export type RenderedDuplicatePostingSuspect = {
94
+ [K in keyof DuplicatePostingSuspect]: DuplicatePostingSuspect[K];
95
+ };
92
96
  /**
93
97
  * Suspects as MCP output: the journal title and document number are
94
98
  * upstream free text, so both are sandbox-wrapped. The one rendering every
95
99
  * `possible_duplicate_postings` list uses.
96
100
  */
97
- export declare function renderDuplicatePostingSuspects(suspects: readonly DuplicatePostingSuspect[]): Array<Record<string, unknown>>;
101
+ export declare function renderDuplicatePostingSuspects(suspects: readonly DuplicatePostingSuspect[]): RenderedDuplicatePostingSuspect[];
98
102
  /**
99
103
  * API-facing scan: loads `opts.preloadedJournals` or
100
104
  * `api.journals.listAllWithPostings()` and runs the pure matcher over it.
@@ -1 +1 @@
1
- {"version":3,"file":"bank-posting-duplicate-guard.d.ts","sourceRoot":"","sources":["../src/bank-posting-duplicate-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bank-posting-duplicate-guard.d.ts","sourceRoot":"","sources":["../src/bank-posting-duplicate-guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bank-posting-duplicate-guard.js","sourceRoot":"","sources":["../src/bank-posting-duplicate-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bank-posting-duplicate-guard.js","sourceRoot":"","sources":["../src/bank-posting-duplicate-guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/banking/reconciliation/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAqB7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AA6D5E,OAAO,KAAK,EAEV,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EAGjB,mBAAmB,EAGnB,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EAInB,yBAAyB,EAKzB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAkBpB,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAUlD,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,eAAe,CAAC,CAAC,IACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACvC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAE3D;;;;GAIG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE,YAAY;IAA1C,YAAqB,OAAO,EAAE,YAAY,EAGzC;CACF;AAYD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,yBAAyB,CAAC,CAmMpC;AAyXD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CA0BjD;AAID,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,iBAAiB,EACxB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAq4BlC;AAuBD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CA6B9B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAoNjD"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/banking/reconciliation/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAqB7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AA+D5E,OAAO,KAAK,EAEV,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EAGjB,mBAAmB,EAGnB,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EAInB,yBAAyB,EAMzB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAkBpB,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAUlD,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,eAAe,CAAC,CAAC,IACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACvC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAE3D;;;;GAIG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE,YAAY;IAA1C,YAAqB,OAAO,EAAE,YAAY,EAGzC;CACF;AAYD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,yBAAyB,CAAC,CAmMpC;AAyXD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CA0BjD;AAID,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,iBAAiB,EACxB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAu6BlC;AAuBD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CA6B9B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAoNjD"}
@@ -22,7 +22,7 @@ import { buildInvoiceIndex, getIndexedCandidates } from "./invoice-index.js";
22
22
  import { legacyTruncatedCamtMarkerHint } from "../../camt/duplicate-identity.js";
23
23
  import { matchScore, getInvoiceMatchEligibility, buildSuggestedDistribution, comparableTransactionAmount, sameAmountToTheCent, isAmbiguousForeignInvoiceBase } from "./match-score.js";
24
24
  import { hasMeaningfulComparableAmount, resolveOneSidedTransferAmount, transactionCurrency } from "./amount-resolution.js";
25
- import { counterpartyIbanOf, hasUnverifiableCamtMarker, inferOneSidedTransfer, isCamtCounterpartyIbanOmitted, resolveTransfer, resolveWithReferences, transferReferenceOf, transferReferencesOf, unverifiedMarkerTransferClaim, getTransferPairCompatibility, camtInstructionIdOf, wiseReferenceInstructionIdOf, getSameTypeReciprocalEvidence, } from "./inter-account-matcher.js";
25
+ import { counterpartyIbanOf, COUNTERPARTY_IBAN_NOT_REGISTERED, ONE_SIDED_MIN_CONFIDENCE, hasUnverifiableCamtMarker, inferOneSidedTransfer, isCamtCounterpartyIbanOmitted, resolveTransfer, resolveWithReferences, transferReferenceOf, transferReferencesOf, unverifiedMarkerTransferClaim, getTransferPairCompatibility, camtInstructionIdOf, wiseReferenceInstructionIdOf, getSameTypeReciprocalEvidence, } from "./inter-account-matcher.js";
26
26
  import { computeExactMatchProjection, EXACT_CONFIRM_DEFAULT_MIN_CONFIDENCE } from "./duplicate-policy.js";
27
27
  import { checkReceiptLedger, invoiceLinksFromTransaction, } from "../receipt-ledger-check.js";
28
28
  import { exactMatchFingerprint, buildInterAccountPlanCommandProjections, interAccountFingerprint, } from "./projection.js";
@@ -654,10 +654,11 @@ export async function runInterAccountMatching(api, input, opts) {
654
654
  const unconfirmed = await loadPendingTransactions(api, listedTx);
655
655
  const allTx = new Map(unconfirmed.map(tx => [tx.id, tx]));
656
656
  const companyName = normalizeCompanyName(invoiceInfo.invoice_company_name ?? "");
657
- const { ownIbanToDimension, dimensionToIban, dimensionToTitle, dimensionToAccountsId, ownDimensionIds } = buildBankAccountLookups(bankAccounts, accountDimensions);
657
+ const { ownIbanToDimension, dimensionToIban, dimensionToTitle, dimensionToAccountsId, ownDimensionIds, ownIbansWithoutDimension } = buildBankAccountLookups(bankAccounts, accountDimensions);
658
658
  const lookups = {
659
659
  ownIbanToDimension,
660
660
  dimensionToIban,
661
+ ownIbansWithoutDimension,
661
662
  companyName,
662
663
  companyLegalName: invoiceInfo.invoice_company_name ?? "",
663
664
  targetAccountsDimensionsId: target_accounts_dimensions_id,
@@ -735,7 +736,9 @@ export async function runInterAccountMatching(api, input, opts) {
735
736
  ambiguousRefless.push({
736
737
  transaction_ids: [tx.id], amount: tx.amount, date: tx.date,
737
738
  source_account: dimensionToTitle.get(tx.accounts_dimensions_id) ?? `dim:${tx.accounts_dimensions_id}`,
738
- target_account: claimedTargets.map(d => dimensionToTitle.get(d) ?? `dim:${d}`).join(" / "),
739
+ target_account: claimedTargets.length > 0
740
+ ? claimedTargets.map(d => dimensionToTitle.get(d) ?? `dim:${d}`).join(" / ")
741
+ : claim.unbookableOwnIban ?? "",
739
742
  code: "camt_marker_unverified",
740
743
  reason: `Transaction ${tx.id} looks like an own-account transfer, but its CAMT statement marker fails the signature check, so its statement identity (counterparty IBAN, direction) cannot be verified. It is excluded from automatic matching; check the bank statement and resolve it manually.` +
741
744
  (legacyTruncatedCamtMarkerHint(tx) ? ` ${legacyTruncatedCamtMarkerHint(tx)}` : ""),
@@ -1301,7 +1304,19 @@ export async function runInterAccountMatching(api, input, opts) {
1301
1304
  for (const tx of remaining) {
1302
1305
  if (!tx.id || blockedOneSidedTxIds.has(tx.id) || consumedTxIds.has(tx.id))
1303
1306
  continue;
1304
- const { targetDimension, confidence, reasons, ambiguousTargetDimensions } = inferOneSidedTransfer(tx, lookups, oneSidedInferenceCache);
1307
+ const { targetDimension, confidence, reasons, ambiguousTargetDimensions, unbookableOwnIban } = inferOneSidedTransfer(tx, lookups, oneSidedInferenceCache);
1308
+ if (unbookableOwnIban) {
1309
+ // The company's own money, but the account on the other side cannot be booked:
1310
+ // never redirect it to a different own account.
1311
+ ambiguousRefless.push({
1312
+ transaction_ids: [tx.id], amount: tx.amount, date: tx.date,
1313
+ source_account: dimensionToTitle.get(tx.accounts_dimensions_id) ?? `dim:${tx.accounts_dimensions_id}`,
1314
+ target_account: unbookableOwnIban,
1315
+ code: "own_account_not_bookable",
1316
+ reason: `The counterparty IBAN ${unbookableOwnIban} is an own bank account without an accounting dimension, so the transfer cannot be booked to it; give that bank account a dimension in e-arveldaja, then reconcile again, or confirm inline.`,
1317
+ });
1318
+ continue;
1319
+ }
1305
1320
  if (ambiguousTargetDimensions) {
1306
1321
  ambiguousRefless.push({
1307
1322
  transaction_ids: [tx.id], amount: tx.amount, date: tx.date,
@@ -1315,15 +1330,24 @@ export async function runInterAccountMatching(api, input, opts) {
1315
1330
  // The payer is the company itself, but several own accounts could be
1316
1331
  // the other side: report it rather than silently dropping the row.
1317
1332
  const otherDimensions = [...dimensionToIban.keys()].filter(d => d !== tx.accounts_dimensions_id);
1333
+ const unregisteredIban = reasons.includes(COUNTERPARTY_IBAN_NOT_REGISTERED);
1318
1334
  ambiguousRefless.push({
1319
1335
  transaction_ids: [tx.id], amount: tx.amount, date: tx.date,
1320
1336
  source_account: dimensionToTitle.get(tx.accounts_dimensions_id) ?? `dim:${tx.accounts_dimensions_id}`,
1321
1337
  target_account: otherDimensions.map(d => dimensionToTitle.get(d) ?? `dim:${d}`).join(" / "),
1322
- reason: `The counterparty is the company itself, but several own accounts could be the other side (dimensions ${otherDimensions.join(", ")}); pass target_accounts_dimensions_id naming one of them, or confirm inline.`,
1338
+ // A target parameter would not help an unregistered IBAN: it is held until its mirror row proves it.
1339
+ ...(unregisteredIban
1340
+ ? {
1341
+ code: "unregistered_iban_needs_mirror",
1342
+ reason: `The counterparty is the company itself, but its counterparty IBAN is not a registered own bank account and several own accounts could be the other side (dimensions ${otherDimensions.join(", ")}). It is booked automatically only once the other account's mirror row proves the transfer; register the account or confirm inline.`,
1343
+ }
1344
+ : {
1345
+ reason: `The counterparty is the company itself, but several own accounts could be the other side (dimensions ${otherDimensions.join(", ")}); pass target_accounts_dimensions_id naming one of them, or confirm inline.`,
1346
+ }),
1323
1347
  });
1324
1348
  continue;
1325
1349
  }
1326
- if (confidence < 50 || !targetDimension)
1350
+ if (confidence < ONE_SIDED_MIN_CONFIDENCE || !targetDimension)
1327
1351
  continue;
1328
1352
  const sourceTitle = dimensionToTitle.get(tx.accounts_dimensions_id) ?? `dim:${tx.accounts_dimensions_id}`;
1329
1353
  const targetTitle = dimensionToTitle.get(targetDimension) ?? `dim:${targetDimension}`;
@@ -1413,6 +1437,14 @@ export async function runInterAccountMatching(api, input, opts) {
1413
1437
  continue;
1414
1438
  }
1415
1439
  consumedTxIds.add(tx.id);
1440
+ if (reasons.includes(COUNTERPARTY_IBAN_NOT_REGISTERED)) {
1441
+ ambiguousRefless.push({
1442
+ transaction_ids: [tx.id], amount: nominalAmount, currency, amount_eur: amountEur, date: tx.date,
1443
+ source_account: sourceTitle, target_account: targetTitle, code: "unregistered_iban_needs_mirror",
1444
+ reason: `The counterparty name is the company's, but its counterparty IBAN is not a registered own bank account (an own account not set up in e-arveldaja, or a payment provider's pooled account). It is booked automatically only once the other account's mirror row proves the transfer; register the account or confirm inline if this is a transfer to ${targetTitle}.`,
1445
+ });
1446
+ continue;
1447
+ }
1416
1448
  matchedOneSided.push({
1417
1449
  transaction_id: tx.id, type: tx.type, amount: nominalAmount, currency, amount_eur: amountEur, date: tx.date,
1418
1450
  source_account: sourceTitle, source_dimension_id: tx.accounts_dimensions_id,
@@ -1543,7 +1575,7 @@ export async function executeInterAccount(api, runtimeSafetyContext, input) {
1543
1575
  const lookups = { ...mapping, companyName: normalizeCompanyName(match.invoiceInfo.invoice_company_name ?? ""), companyLegalName: match.invoiceInfo.invoice_company_name ?? "", targetAccountsDimensionsId: input.targetAccountsDimensionsId };
1544
1576
  const sourceInference = inferOneSidedTransfer(source, lookups, new Map());
1545
1577
  if (!mirror)
1546
- return sourceInference.targetDimension === action.targetDimensionId && sourceInference.confidence >= 80;
1578
+ return sourceInference.targetDimension === action.targetDimensionId && sourceInference.confidence >= ONE_SIDED_MIN_CONFIDENCE && !sourceInference.reasons.includes(COUNTERPARTY_IBAN_NOT_REGISTERED);
1547
1579
  const compatibility = getTransferPairCompatibility(source, mirror, action.pairEvidence.maxDateGap);
1548
1580
  if (!compatibility || compatibility.conflictingComparableAmounts || !sameAmountToTheCent(compatibility.txAComparableAmount, action.distributionAmount))
1549
1581
  return false;