Status. Proposed design only. Nothing in this vault is GGA client approval. The GGA client documents are supplied drafts: see GGA-Source-Digest. No application, service or test has been executed; every scenario is Not executed. Delivery fees and dates are open.
GS23 · Finance exceptions and duplicate payments
| Field | Value |
|---|---|
| Status | Not executed |
| Type | Balanced software (new in the GGA baseline) |
| Source | Blueprint pp. 8, 14, 15 (GGA-Requirement-Register); client-supplied draft, not accepted |
| Gate | GA12, GA06 |
| Blueprint delivery stage | Stage 3 Complete the service loop (p. 19) |
| Build step | 09 (primary; tests first) |
| Replaces or carries | DG17, DG19 |
| Decisions | GL05-staged |
Given
An invoice with a partial payment, a mismatched currency, a disputed payment and a duplicate payment against the same reference. Optionally a provider webhook.
When
Reconcile each; replay a webhook; submit a refund and a void with reasons.
Then / oracle
A partial, disputed or mismatched payment remains a finance exception. One processed settlement per provider transaction or verified bank reference; a duplicate payment creates no second term. Webhook, manual reconciliation and retry converge on one business identity. Voids, refunds and corrections are finance actions with reasons and history. Overlapping active terms are prevented; early payments go to finance review. Money is stored in minor units with an explicit currency.
Evidence required
Settlement uniqueness evidence; exception queue entries; term count after each replay.
Decision dependency
- GL05-staged: Refund handling and invoicing entity are finance decisions; a payment gateway is optional
Where a decision is pending, the dependent assertion is Blocked by that decision and no oracle is invented. A proposed default is a configuration value, not a promise. This note is a specification: it is Passed only on a named integrated build and fixture.
Back to GGA-Scenario-Index · GGA-Traceability-Matrix · Scenario-Dispositions.