Finance SystemsArticle

Decide which system owns each part of proposal to cash

3 min read
Illustration of four connected systems with one marked as the owner of a record

Connecting two systems does not resolve a disagreement between them. If a workflow tool and the accounting ledger both allow independent edits to the same invoice, the integration needs a rule for which change is authoritative. Without that rule, automation can distribute inconsistent information more quickly.

Stripe's documentation explicitly warns that events are not guaranteed to arrive in generation order.[1] That technical detail illustrates a broader operating requirement: each business record needs an owner, a defined state and a controlled way to reconcile differences.

Assign authority at the record level

Map ownership separately for the accepted proposal, customer billing identity, delivery approval, invoice, payment attempt, allocated receipt and bank balance. One application need not own every record. The accounting ledger might own posted invoices, while a project system owns delivery approval and a processor owns payment execution status.

Define where new records are created, where authorized changes occur, and what other systems are permitted to display or request. A reporting database can combine information without becoming the place where accounting transactions are independently edited.

For an illustrative IT services firm, the project system records milestone approval, a controlled workflow requests invoice creation, and the accounting platform returns the invoice identifier. The workflow shows that identifier and status. It does not invent a second accounting invoice because the first response was slow.

Use identifiers that survive name changes

Maintain explicit mappings for entity, customer, engagement, invoice and payment. A company name or email address is not a dependable primary key: names change, several contacts can use the same domain and one customer group can contain multiple bill-to entities.

Record the source system and source identifier alongside the shared reference. A support person should be able to move from an exception to the actual underlying transaction. The integration acceptance tests should verify that this traceability survives retries, corrections and partial payments.

Separate financial state from workflow state

An internal task can be complete while an invoice remains unpaid. A payment can be initiated while settlement is pending. A dispute can be resolved by credit rather than cash. Keep these states distinct and define how they affect customer communication.

If the accounting connection fails, show the last successful refresh and route an exception to the responsible person. Decide whether customer reminders should pause when payment information is too stale. Do not let a dashboard's green connection icon substitute for evidence that specific transactions transferred successfully.

For several legal entities, keep entity identifiers on every record and reconcile each entity before consolidating. Do not net unrelated customer balances across entities merely because the customer group name is the same. Consolidation and currency translation require explicit accounting rules.

Design for operation after launch

Name the owner for credentials, access, monitoring, failed transfers and upgrades. Define who can approve a correction and how the original evidence remains available. Set a recovery procedure that checks whether a transaction already exists before replaying it.

The reconciliation process provides an independent control over the transfer. The dashboard definitions govern how combined data is presented. These controls are part of the solution's operating cost and should appear in the scope.

Start with the smallest reliable connection that removes a demonstrated handoff problem. A system architecture is useful when staff can explain where the truth resides, how a failure becomes visible and who restores a correct record.

If AI will use these records, apply the human review boundaries for receivables AI so a generated recommendation cannot quietly override financial authority.

Sources

  1. Stripe. Receive Stripe events in your webhook endpoint (opens in a new tab). Living documentation accessed 28 September 2026. Technical documentation.↩