Life ConnectLife Connect
Wiki index
Architecture
Services
UI
Concepts
Runbooks
Infra
Swagger Docs
GitHub
Wiki index
Architecture
Services
UI
Concepts
Runbooks
Infra
Swagger Docs
GitHub
  • Cross-cutting concepts

    • EventBridge fanout
    • Atlas Triggers
    • ECS Fargate deploy lifecycle
    • Keycloak hosting
    • Cloudflare Pages auto-deploy
    • Bitbucket Pipelines (legacy)
    • Terraform-managed envs (legacy)
  • Accounting model

    • Accounting model
    • Events catalog
    • Accounting journals
    • Plan of accounts (PCG)
    • Auxiliary accounts
    • FEC fields (Fichier des Écritures Comptables)
    • pieceReference numbering
    • Tenant matrix (payable / receivable)
    • Owner matrix (payable / receivable)
    • Take-over UI display rules
    • Engine functional audit (2026-07) ↗
Last updated 2026-10-13

SUPPLIER_TO_OWNER

AI-generated content

This document was generated by an AI assistant from the 'Event Matrix Accounting' Google Sheet and the AccountingEventType Java enum. The "Code references" section is regenerated by adb-doc/scripts/sync-accounting-events.js. Verify accuracy before relying on the details.

Business case (verbatim from the sheet, French): Je transfère une dette fournisseur au compte du propriétaire (settlement de paiement sortant).

Transfer a supplier debt to the owner's account upon outgoing-payment settlement.

At a glance

FieldValue
Familytransfers
Enum constantAccountingEventType.SUPPLIER_TO_OWNER
PrefixSTO
Settlement priority100
Journal (catalog key)SUPPLIER_TO_OWNER
Journal (label)Transfert dettes fournisseurs au propriétaire
Recurrent?no
Manual?no
StatusDéveloppé
pieceReference chronoSTO_<serial>

Accounting entry

SideAccount
Debit466100 (RDC-xxx, owner aux.)
Credit800000 — Résultat (off-balance)

See plan-of-accounts.md for account labels and journals.md for the full journal list.

Code references

Definition — adb/adb-model/src/main/java/fr/lifeconnect/adb/model/accounting/AccountingEventType.java:106

Call sites in adb-accounting (5):

  • adb-accounting/src/main/java/fr/lifeconnect/adb/accounting/model/events/SupplierToOwner.java:51
  • adb-accounting/src/main/java/fr/lifeconnect/adb/accounting/model/events/SupplierToOwner.java:52
  • adb-accounting/src/main/java/fr/lifeconnect/adb/accounting/model/events/SupplierToOwner.java:72
  • adb-accounting/src/main/java/fr/lifeconnect/adb/accounting/model/mapper/AbstractAccountingEventMapper.java:113
  • adb-accounting/src/main/java/fr/lifeconnect/adb/accounting/model/mapper/AbstractAccountingEventMapper.java:258

Confluence

  • Confluence: not documented

Open questions

  • Agency fee lines — Cloudflare, owner decision 2026-10-13 (« option C »). A settled OUTGOING_AGENCY_INVOICE DEBIT line whose eventNature is one of the JVM's five POST_SETTLEMENT_ALLOWED_EVENT_NATURES (AccountingFunctions.java:64-70, admitted by preValidationPostSettlements :221-231) is transferred as the JVM's InvoiceAccountingEvent.postSettlement (InvoiceAccountingEvent.java:55-73) builds it: SUPPLIER_TO_OWNER of nature OUTGOING_INVOICE (:88-94), DEBIT the mandate's 466100 auxiliary / CREDIT 800000, for the settlement's amount, on the settlement's Paris day, key SUPPLIER_TO_OWNER-PROCESSED-<YYYY-MM>-<settlement id>, an STO_ piece; both sides of the settlement stamped transferred (services/accounting/src/posting/settlementTransferPosting.mjs resolveTransfer). A tenant-fee line (…_TENANT_FEES_… nature) is no candidate and is never transferred.
  • No automatic backfill (owner decision 2026-10-13). A settlement on an agency fee line that the invoice payment did NOT write — origin other than SETTLEMENT_ORIGIN.INVOICE_PAYMENT: the SPI import's SPI:FEELETTER letterings (origin MANUAL, backdated, never transferred), or any later lettering by hand — is never posted by an automatic run (PAYMENT_MODIFIED, the lettering route and its retry job, an entry message, a reversal's post-commit run): each logs a named skip. The repair route lists it as due, flagged manualFeeLettering: true (POST /accounting/repair/lost-side-effects/post-settlement-transfers, dry-run by default), and only its apply=true posts it (agencyFeeLines.mjs isFeeLetteringHeldForRepair, repair/lostSideEffects.mjs). Divergence from the JVM, which transfers any eligible settlement whatever its origin (PostSettlementsProcessorImpl.java:173-187).
  • Reversal. A transferred fee settlement whose payment is reversed is reversed by the existing path (the reversal copies the transfer stamp; the payment's PAYMENT_MODIFIED reverses the stamped transfer). Open: a fee lettering never transferred, then reversed, stays held by the guard — settledLineTransfers.mjs blockingReversals proves the cancelling pair on the stored line, which carries no mandate (the generator resolves it from the invoice header afterwards): nothing is posted, the line is listed as held.
  • Dated invoice payment — Cloudflare, 2026-10-13 (server defect S3 of the SPI import). POST /accounting/invoice-payment/{invoiceId}/{postingDate}/process and POST /accounting/invoice-payment/process take an optional ?settlementDate=YYYY-MM-DD, the manual lettering's parameter (PR #710, services/accounting/src/posting/settlementDate.mjs). Given, the payment's INVOICE_PAYMENT settlements are stamped at UTC midnight of that day, so the SUPPLIER_TO_OWNER the payment's change event posts for each lettered line is dated that day: posting and document date, period, key month, JE year. Absent, the clock stamps them, as on the JVM (SettlementServiceImpl.java:349); the screens send no date. Refused (400, nothing written) when the day is not a calendar day, is after today, or precedes the payment's posting date or an invoice line the payment letters (posting/invoicePaymentSettlements.mjs). Measured before the fix (staging, SPI import of 2026-10-13): 1 036 875.57 € of owner charges were dated the run day instead of January to September.
Edit this page
Last Updated:
Contributors: Grégory Horion