e-arveldaja-mcp 0.32.1 → 0.32.3

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 (82) hide show
  1. package/.claude/commands/import-wise.md +1 -0
  2. package/.claude/commands/reconcile-bank.md +25 -0
  3. package/CHANGELOG.md +26 -0
  4. package/CLAUDE.md +8 -0
  5. package/dist/bank-posting-duplicate-guard.d.ts +5 -1
  6. package/dist/bank-posting-duplicate-guard.d.ts.map +1 -1
  7. package/dist/bank-posting-duplicate-guard.js.map +1 -1
  8. package/dist/banking/reconciliation/executor.d.ts.map +1 -1
  9. package/dist/banking/reconciliation/executor.js +39 -7
  10. package/dist/banking/reconciliation/executor.js.map +1 -1
  11. package/dist/banking/reconciliation/inter-account-matcher.d.ts +9 -1
  12. package/dist/banking/reconciliation/inter-account-matcher.d.ts.map +1 -1
  13. package/dist/banking/reconciliation/inter-account-matcher.js +25 -2
  14. package/dist/banking/reconciliation/inter-account-matcher.js.map +1 -1
  15. package/dist/banking/reconciliation/presenter.d.ts +137 -15
  16. package/dist/banking/reconciliation/presenter.d.ts.map +1 -1
  17. package/dist/banking/reconciliation/presenter.js.map +1 -1
  18. package/dist/banking/reconciliation/types.d.ts +20 -6
  19. package/dist/banking/reconciliation/types.d.ts.map +1 -1
  20. package/dist/camt/duplicate-identity.d.ts +5 -5
  21. package/dist/camt/duplicate-identity.d.ts.map +1 -1
  22. package/dist/camt/duplicate-identity.js.map +1 -1
  23. package/dist/camt/iban-omission.js +3 -3
  24. package/dist/camt/iban-omission.js.map +1 -1
  25. package/dist/camt/journal-coverage.d.ts.map +1 -1
  26. package/dist/camt/journal-coverage.js +3 -1
  27. package/dist/camt/journal-coverage.js.map +1 -1
  28. package/dist/camt/marker-render-v1.d.ts +3 -3
  29. package/dist/camt/presenter.d.ts +150 -8
  30. package/dist/camt/presenter.d.ts.map +1 -1
  31. package/dist/camt/presenter.js.map +1 -1
  32. package/dist/camt/types.d.ts +2 -0
  33. package/dist/camt/types.d.ts.map +1 -1
  34. package/dist/plan-tools.d.ts +45 -0
  35. package/dist/plan-tools.d.ts.map +1 -1
  36. package/dist/plan-tools.js.map +1 -1
  37. package/dist/receipts/classification-operations.d.ts.map +1 -1
  38. package/dist/receipts/classification-operations.js +13 -0
  39. package/dist/receipts/classification-operations.js.map +1 -1
  40. package/dist/resolution/bank-account-resolution.d.ts.map +1 -1
  41. package/dist/resolution/bank-account-resolution.js +2 -1
  42. package/dist/resolution/bank-account-resolution.js.map +1 -1
  43. package/dist/tools/analyze-unconfirmed.d.ts +38 -0
  44. package/dist/tools/analyze-unconfirmed.d.ts.map +1 -1
  45. package/dist/tools/analyze-unconfirmed.js +21 -2
  46. package/dist/tools/analyze-unconfirmed.js.map +1 -1
  47. package/dist/tools/bank-reconciliation.d.ts +16 -0
  48. package/dist/tools/bank-reconciliation.d.ts.map +1 -1
  49. package/dist/tools/bank-reconciliation.js.map +1 -1
  50. package/dist/tools/camt-import.d.ts +26 -0
  51. package/dist/tools/camt-import.d.ts.map +1 -1
  52. package/dist/tools/camt-import.js.map +1 -1
  53. package/dist/tools/inter-account-utils.d.ts +6 -0
  54. package/dist/tools/inter-account-utils.d.ts.map +1 -1
  55. package/dist/tools/inter-account-utils.js +7 -2
  56. package/dist/tools/inter-account-utils.js.map +1 -1
  57. package/dist/tools/pdf-workflow.d.ts +165 -4
  58. package/dist/tools/pdf-workflow.d.ts.map +1 -1
  59. package/dist/tools/pdf-workflow.js.map +1 -1
  60. package/dist/types/api.d.ts +2 -0
  61. package/dist/types/api.d.ts.map +1 -1
  62. package/dist/wise/counterpart.d.ts.map +1 -1
  63. package/dist/wise/counterpart.js +3 -0
  64. package/dist/wise/counterpart.js.map +1 -1
  65. package/dist/wise/executor.js +2 -2
  66. package/dist/wise/executor.js.map +1 -1
  67. package/dist/wise/presenter.d.ts +100 -3
  68. package/dist/wise/presenter.d.ts.map +1 -1
  69. package/dist/wise/presenter.js.map +1 -1
  70. package/dist/wise/projection.d.ts +23 -2
  71. package/dist/wise/projection.d.ts.map +1 -1
  72. package/dist/wise/projection.js +110 -11
  73. package/dist/wise/projection.js.map +1 -1
  74. package/dist/wise/types.d.ts +5 -2
  75. package/dist/wise/types.d.ts.map +1 -1
  76. package/dist/workflow-response.d.ts +14 -4
  77. package/dist/workflow-response.d.ts.map +1 -1
  78. package/dist/workflow-response.js.map +1 -1
  79. package/package.json +9 -7
  80. package/server.json +2 -2
  81. package/workflows/import-wise.md +1 -0
  82. package/workflows/reconcile-bank.md +5 -0
@@ -124,6 +124,7 @@ Only the last two are releasable (Step 3, acknowledgement re-preview); the compa
124
124
  **Automatic matches.** Some rows are skipped automatically, and there is no flag to turn this off. Their skip reason names the stored transaction or journal (in `skipped_details`, read the per-row `records` for the ids):
125
125
  - `wise_untagged_ledger_unique`: a confirmed transaction without a `WISE:` tag is the only stored row of this movement on this Wise account.
126
126
  - `wise_transfer_journal_unique_legacy`: an inter-account journal is the only same-amount journal within one day and books exactly this transfer.
127
+ - Exact-label journal: a payment that is not an own transfer (a card payment, or a transfer to a third party such as a loan or a cash withdrawal) whose single registered journal is labelled with its exact Wise ID and books its amount on the Wise account in its direction. It is reported as already journalized ("is labelled with this Wise ID"), needs no counterpart account, and execute re-checks that journal. If the journal books the gross amount and the row has a separate fee, the fee leg is still imported, but stays held while the transfer's counterpart is undetermined.
127
128
  - "Fee already journalized": that journal books the transfer net of the fee, so the fee row is not created either.
128
129
 
129
130
  Do not report these as plain duplicates. Tell the owner which Wise IDs were skipped this way and the transaction or journal ID each one matched. If the owner says one is a different movement, the undo is to correct or delete that stored transaction or journal (after approval) and run the preview again.
@@ -216,6 +216,31 @@ Capability condition for `guided`: inspect the connected MCP server's advertised
216
216
  - `summary.next_action` is the ready-to-send execute call (`mode: "execute_inter_account"` with the `plan_handle` and the dry run's `max_date_gap` / `target_accounts_dimensions_id`); run it only after approval.
217
217
  <!-- E_ARVELDAJA_CAPABILITY_CONDITION_END:guided -->
218
218
  - Ambiguous transfers (including `direction_unresolved`) are never auto-confirmed — present them for a decision.
219
+ - Transfers needing review (<!-- E_ARVELDAJA_CAPABILITY_CONDITION_START:standard -->
220
+ Capability condition for `standard`: inspect the connected MCP server's advertised tool list before this section. Run this section only when every named tool is advertised: `confirm_transaction`. Otherwise skip this section and continue with the surrounding workflow. Never call a missing tool to probe capability.
221
+
222
+ `result.ambiguous_refless`
223
+ <!-- E_ARVELDAJA_CAPABILITY_CONDITION_END:standard --><!-- E_ARVELDAJA_CAPABILITY_CONDITION_START:guided -->
224
+ Capability condition for `guided`: inspect the connected MCP server's advertised tool list before this section. Run this section only when every named tool is advertised: `reconcile_bank_transactions`, and none of these is advertised: `confirm_transaction`. Otherwise skip this section and continue with the surrounding workflow. Never call a missing tool to probe capability.
225
+
226
+ the review warnings in `summary.warnings`
227
+ <!-- E_ARVELDAJA_CAPABILITY_CONDITION_END:guided -->) are never booked by execute; explain each by its `code`:
228
+ - `own_account_not_bookable`: the counterparty IBAN is one of the company's own bank accounts, but that account has no accounting dimension, so nothing can be booked to it. The owner adds the dimension in e-arveldaja, then re-run the dry run.
229
+ - `unregistered_iban_needs_mirror`: the counterparty is the company itself, but its IBAN is not a registered own bank account (an own account not set up in e-arveldaja, or a provider's pooled top-up account such as Wise). It books automatically once the other account's matching row exists: import that account's statement, then re-run the dry run.<!-- E_ARVELDAJA_CAPABILITY_CONDITION_START:standard -->
230
+ Capability condition for `standard`: inspect the connected MCP server's advertised tool list before this section. Run this section only when every named tool is advertised: `confirm_transaction`. Otherwise skip this section and continue with the surrounding workflow. Never call a missing tool to probe capability.
231
+
232
+ If the other account is set up in e-arveldaja, the owner confirms it, and no statement will follow, confirm the row inline against that account after approval (`confirm_transaction` with `block_on_duplicate: true`). An own account not set up in e-arveldaja has nothing to confirm against; the owner adds it first.
233
+ <!-- E_ARVELDAJA_CAPABILITY_CONDITION_END:standard -->
234
+ - `camt_marker_unverified`: the stored CAMT marker fails its check, so direction and counterparty are unproven; compare the row with the bank statement before doing anything.
235
+ - <!-- E_ARVELDAJA_CAPABILITY_CONDITION_START:guided -->
236
+ Capability condition for `guided`: inspect the connected MCP server's advertised tool list before this section. Run this section only when every named tool is advertised: `reconcile_bank_transactions`, and none of these is advertised: `confirm_transaction`. Otherwise skip this section and continue with the surrounding workflow. Never call a missing tool to probe capability.
237
+
238
+ `ambiguous_refless` (or `ambiguous_refless_more` for overflow)
239
+ <!-- E_ARVELDAJA_CAPABILITY_CONDITION_END:guided --><!-- E_ARVELDAJA_CAPABILITY_CONDITION_START:standard -->
240
+ Capability condition for `standard`: inspect the connected MCP server's advertised tool list before this section. Run this section only when every named tool is advertised: `confirm_transaction`. Otherwise skip this section and continue with the surrounding workflow. Never call a missing tool to probe capability.
241
+
242
+ Without a code
243
+ <!-- E_ARVELDAJA_CAPABILITY_CONDITION_END:standard -->: a same-key journal or several possible target accounts; follow the row's `reason`.
219
244
 
220
245
  Ask for approval. If the user does not explicitly approve, stop — the plan handle is not approval. If approved, call `reconcile_bank_transactions` with `mode: "execute_inter_account"` and `plan_handle` set to the handle from the reviewed dry run (required; consumed once). Pass the same `target_accounts_dimensions_id` / `max_date_gap` as the dry run, or the plan is refused with `plan_drift`.
221
246
  - After execute, inspect the execution report (`status`, `command_partitions`, `stop_reason`) — on a partial execution do not retry automatically, re-run the dry run.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.32.3] - 2026-10-26
6
+
7
+ ### Fixed
8
+
9
+ - **A Wise payment you already booked by hand with its Wise ID as the journal's document number is recognised as booked instead of held for review.** Before, such a row (e.g. a transfer to a person or a loan paid out from Wise, booked as `WISE:TRANSFER-…`) was held as an undeterminable counterpart, or as an inconsistent journal when `inter_account_dimension_id` was given. Details: `import_wise_transactions` skips the row as `already_journalized` (record_id = the journal) when exactly one live, registered journal carries the row's exact Wise ID, names no other Wise ID, has an EUR amount on every posting, and its Wise-account postings move the row's EUR amount in the row's direction (gross, or net of the fee while debiting exactly the fee on the fee account, in which case the fee row is skipped too). The journal is bound into the plan digest and re-checked on execute like other already-journalized rows; its reconciliation detail carries no `ownership_basis`. For transfer rows, several labelled journals, another amount or direction, an unregistered journal or a foreign posting without an EUR base still hold as before; a journal that would expense the fee twice, or a Wise ID with another leg, is not treated as covering the row. Own transfers keep their existing inter-account handling.
10
+
11
+ - **A bank statement row is no longer flagged as booked in the wrong direction just because a different same-day payment of the same amount went the other way.** Before, an outgoing 300 EUR loan was held for review because an incoming 300 EUR withdrawal from another provider was already confirmed on the same day. Details: the CAMT inverted-registration check (`process_camt053`, and the matching partition in transaction classification) now ignores registration journals whose source transaction carries a different bank reference; an inverted booking of the same movement is still reported.
12
+
13
+ ### Changed
14
+
15
+ - **The bank-reconciliation and Wise-import guides explain the new review reasons.** Details: `workflows/reconcile-bank.md` describes `own_account_not_bookable`, `unregistered_iban_needs_mirror` (import the other account's statement, or on `standard`/`full` confirm inline after approval) and `camt_marker_unverified`; `workflows/import-wise.md` describes the exact-Wise-ID journal match. Two wall-clock test bounds were loosened so a busy machine no longer fails the suite.
16
+
17
+ ## [0.32.2] - 2026-10-26
18
+
19
+ ### Fixed
20
+
21
+ - **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.
22
+ - **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.
23
+ - **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.
24
+ - **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.
25
+
26
+ ### Changed
27
+
28
+ - **Dependency maintenance updates.** Details: liteparse 2.17.0, MCP SDK 1.32.2, dotenv, vite and the Babel parser; `npm audit` is clean.
29
+ - 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.
30
+
5
31
  ## [0.32.1] - 2026-10-19
6
32
 
7
33
  ### 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;