---
id: JNY-COM-FUL-005
title: Staff follow reversal enforcement and restored funds
feature: FEAT-COM-FUL-02
product_area: commerce
module: fulfillment
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes: []
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
actor: ACT-COM-008
goal: >-
  Track delivery consequences of chargebacks and restoration without rewriting
  the original sale's delivery outcome.
capabilities:
  - CAP-COM-FUL-006
  - CAP-COM-FUL-004
  - CAP-COM-FUL-008
screens:
  - '/console/{tenantId}/orders/operations'
steps:
  - 'n': 1
    surface: commerce_obligation_worker
    action: 'Start with completed membership, seat and merchandise deliveries.'
    capability: CAP-COM-FUL-004
    expected: Each original obligation retains completion.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#delivered
      the three fulfilments, the membership under the product policy that
      suspends on a reversal
  - 'n': 2
    surface: commerce_financial_facts (Accounting change events)
    action: Apply the relevant chargeback facts.
    capability: CAP-COM-FUL-006
    expected: >-
      Suspension and cancellation instructions dispatch while review remains
      with staff.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#answers
      succeeded for each event and enforces each: two dispatched (suspend,
      cancel_line), one for a person (review), the receipt saying so
  - 'n': 3
    surface: commerce_obligation_worker
    action: Complete the membership suspension instruction.
    capability: CAP-COM-FUL-004
    expected: Its enforcement completes beside the original delivery.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#suspends
      the membership in the participant with the enforcement id stored, the
      original obligation still completed, the enforcement completed
  - 'n': 4
    surface: '/console/{tenantId}/orders/operations'
    action: Inspect enforcement and informational findings.
    capability: CAP-COM-FUL-008
    expected: >-
      Staff can read seat review, merchandise follow-up and the order's reversal
      finding.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#leaves
      the seat’s enforcement for review and the T-shirt’s cancellation request
      with staff, with refund_without_cancellation once per order, on the
      operations routes
  - 'n': 5
    surface: commerce_financial_facts (funds restored)
    action: Apply the restored-funds event after the dispute is won.
    capability: CAP-COM-FUL-006
    expected: >-
      Supported membership restoration dispatches while unsupported merchandise
      restoration remains staff work.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#restores
      the membership through a dispatched restore and closes the suspension as
      restored; the T-shirt’s restore stays with staff (no restore declared)
  - 'n': 6
    surface: resolveEnforcement
    action: Resolve the seat review with an explanation and result.
    capability: CAP-COM-FUL-006
    expected: >-
      The first authorized resolution closes review and invalid repetition or
      reader access fails.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#resolves
      the seat’s review on its route with the reason and the resolution,
      refusing a reader and a repeat
alternates:
  - from_step: 2
    condition: Accounting replays the chargeback batch.
    path: Reuse enforcement identity for the already applied event.
    outcome: The batch creates no duplicate enforcement.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#enforces
      nothing twice when the batch is redelivered
failures:
  - from_step: 5
    condition: The application declares no restoration operation.
    path: Retain restoration for a staff decision.
    outcome: >-
      The evidence establishes pending staff work, not a completed manual
      restoration.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/integration/services/enforcement/enforcement-handler.integration.spec.js#dispatches
      a restore for the suspended and the notified deliveries (the unlimited
      product declares one) and leaves the capacity product’s with staff
rules_in_play:
  - BR-CAP-COM-FUL-006-01
  - BR-CAP-COM-FUL-006-02
  - BR-CAP-COM-FUL-006-03
  - BR-CAP-COM-FUL-006-04
  - BR-CAP-COM-FUL-006-07
  - BR-CAP-COM-FUL-006-08
  - BR-CAP-COM-FUL-006-10
assertions:
  - id: AS-JNY-COM-FUL-005-01
    statement: >-
      Enforcement progresses independently while original delivery obligations
      remain complete.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#suspends
      the membership in the participant with the enforcement id stored, the
      original obligation still completed, the enforcement completed
  - id: AS-JNY-COM-FUL-005-02
    statement: Enforcement history retains the correlation supplied by Accounting.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/enforcement.e2e.spec.js#writes
      the enforcement on the order’s history, with Accounting’s correlation id
  - id: AS-JNY-COM-FUL-005-03
    statement: An unexplained reversal creates one informational order finding.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/integration/services/enforcement/enforcement-handler.integration.spec.js#raises
      refund_without_cancellation once per delivered order, and the
      enforcement_created line on each history
e2e_policy: optional
e2e_reason: >-
  The service suite proves reversal and restoration behavior, while its
  queue-reading console step is shared with the recovery journey.
evidence:
  - >-
    services-commerce at c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b: the
    end-to-end and integration suites named in the step and assertion sources.
  - >-
    react-console at baf6dae382d6f41dce976c7f848667ccc37e076f: the console pages
    and adapters named in the steps.
proved_by: []
---

# Staff follow reversal enforcement and restored funds

## Story

Staff follow a chargeback after goods and services were delivered. Commerce records the configured enforcement beside the original completed work. When funds return, supported restoration proceeds through the application and unsupported cases remain visible for staff decisions.
