---
id: CON-COM-FUL-001
name: Obligation
feature: FEAT-COM-FUL-01
product_area: commerce
module: fulfillment
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
definition: >-
  An obligation follows the delivery work owed by a sold line or unit and
  records the responsible application's progress under its saved conditions.
owned_by: MOD-COM-FUL
synonyms:
  - delivery
  - fulfilment item
  - what the order owes
not_to_be_confused_with:
  - The priced order line owned by Orders
  - The delivered membership or access owned by its application
  - Warehouse shipment work handling physical units
facets:
  - name: Gate
    meaning: >-
      The saved delivery policy and latest eligibility verdict retain the facts
      behind authorization.
    used_for: Understanding gate in the obligation workflow.
    provenance: observed
    source: 'services-commerce:modules/fulfillment/db/obligations.table.ts'
  - name: Authorization
    meaning: >-
      A particular delivery instruction has an authorization that the
      application can recognize on repetition.
    used_for: Understanding authorization in the obligation workflow.
    provenance: observed
    source: >-
      services-commerce:modules/fulfillment/db/obligation-authorizations.table.ts
  - name: Attempt
    meaning: Immutable attempt records preserve each delivery invocation and result.
    used_for: Understanding attempt in the obligation workflow.
    provenance: observed
    source: 'services-commerce:modules/fulfillment/db/obligation-attempts.table.ts'
  - name: Operation and kind
    meaning: >-
      The instruction distinguishes fulfillment, modification, replacement,
      termination, cancellation, allocation release and enforcement with its
      application-specific kind.
    used_for: Understanding operation and kind in the obligation workflow.
    provenance: observed
    source: >-
      services-commerce:modules/fulfillment/services/register/obligation-worker.ts
  - name: Unit grain
    meaning: >-
      Delivery can be followed for a complete line or for individual physical
      units.
    used_for: Understanding unit grain in the obligation workflow.
    provenance: observed
    source: 'services-commerce:modules/fulfillment/db/obligations.table.ts'
  - name: Staff hold and approval
    meaning: >-
      Staff can supply required approval or deliberately retain waiting work on
      hold.
    used_for: Understanding staff hold and approval in the obligation workflow.
    provenance: observed
    source: >-
      services-commerce:modules/fulfillment/services/register/obligation-interventions.ts
  - name: Same-order prerequisite
    meaning: >-
      Provisional member pricing links the purchased item to membership delivery
      within the same order.
    used_for: Understanding same-order prerequisite in the obligation workflow.
    provenance: observed
    source: >-
      services-commerce:modules/fulfillment/services/register/prerequisite-settlement.ts
  - name: Enforcement
    meaning: >-
      An enforcement records the review or application response to changed
      financial backing.
    used_for: Understanding enforcement in the obligation workflow.
    provenance: observed
    source: 'services-commerce:modules/fulfillment/db/enforcements.table.ts'
  - name: Intervention
    meaning: 'Staff actions retain their person, time and explanation.'
    used_for: Understanding intervention in the obligation workflow.
    provenance: observed
    source: 'services-commerce:modules/fulfillment/db/intervention-logs.table.ts'
relationships:
  - to: CON-COM-FUL-002
    statement: >-
      Placement retains the selected fulfillment policy as the obligation's
      gate.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/e2e/fulfillment-policies.e2e.spec.js#freezes
      the product policy on the obligation with the row’s version and source,
      and the replacement changes nothing on it
  - to: CON-COM-FUL-003
    statement: >-
      Permanent application refusal creates an exception concerning the failed
      obligation.
    provenance: test
    source: >-
      services-commerce:modules/fulfillment/tests/integration/services/register/obligation-worker.integration.spec.js#fails
      the obligation with the participant’s code, raises obligation_failed, and
      acknowledges the item
  - to: CON-COM-FUL-004
    statement: Physical departure completes the merchandise units' delivery obligations.
    provenance: test
    source: >-
      services-commerce:modules/shipping/tests/integration/services/fulfillment/shipping-flow.integration.spec.js#completes
      every unit’s obligation through the register (the allocation as the
      record), and emits one deferred cost relief fact per item
  - to: CON-COM-FUL-005
    statement: >-
      Inventory reconciliation flags a committed allocation whose obligation is
      cancelled.
    provenance: test
    source: >-
      services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#raises
      stale_allocation on the committed unit whose obligation is cancelled
lifecycle:
  - state: pending
    meaning: The delivery record is waiting on eligibility.
    how_it_changes: 'Evaluation can authorize, block or retain waiting work.'
  - state: blocked
    meaning: A staff-related condition prevents delivery.
    how_it_changes: >-
      Approval, release, override or cancellation can address the applicable
      block.
  - state: authorized and in progress
    meaning: Authorized application work has not reached its final outcome.
    how_it_changes: >-
      The application reports success or failure, or staff supply manual
      completion evidence.
  - state: completed
    meaning: The owed delivery has succeeded.
    how_it_changes: A later change can supersede the completed record.
  - state: failed
    meaning: Delivery cannot progress after refusal or exhausted recovery.
    how_it_changes: Staff can issue a fresh authorization or resolve the failure.
  - state: 'cancelled, resolved or superseded'
    meaning: 'The obligation is closed, resolved or replaced.'
    how_it_changes: The closed record retains its outcome rather than restarting delivery.
acted_on_by:
  - CAP-COM-FUL-001
  - CAP-COM-FUL-002
  - CAP-COM-FUL-003
  - CAP-COM-FUL-004
  - CAP-COM-FUL-005
  - CAP-COM-FUL-006
  - CAP-COM-FUL-014
  - CAP-COM-FUL-020
visible_to:
  - ACT-COM-008
  - ACT-COM-011
  - ACT-COM-013
evidence:
  - repository: services-commerce
    sources:
      - >-
        services-commerce:modules/fulfillment/tests/e2e/fulfillment-policies.e2e.spec.js#freezes
        the product policy on the obligation with the row’s version and source,
        and the replacement changes nothing on it
      - >-
        services-commerce:modules/fulfillment/tests/integration/services/register/obligation-worker.integration.spec.js#fails
        the obligation with the participant’s code, raises obligation_failed,
        and acknowledges the item
      - >-
        services-commerce:modules/shipping/tests/integration/services/fulfillment/shipping-flow.integration.spec.js#completes
        every unit’s obligation through the register (the allocation as the
        record), and emits one deferred cost relief fact per item
      - >-
        services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#raises
        stale_allocation on the committed unit whose obligation is cancelled
  - repository: react-console
    sources: []
supersedes: []
---

# Obligation

## What It Is

An obligation is the delivery work Commerce records for a sold line. It connects the sale to the application responsible for providing its result and gives staff a place to follow progress. A membership application can enroll a person, an entitlement application can provide access, and merchandise delivery can account for physical units leaving a warehouse. The order remains the commercial record; the obligation follows the work arising from it.

Some deliveries operate at line level, while physical goods can be tracked unit by unit. That distinction lets staff understand a partially fulfilled purchase without treating every shipment as another sale. The saved gate describes delivery eligibility, and the register retains authorizations, application answers and staff interventions. Together these records help distinguish an unmet condition from an application that has already begun work but has not finished.

## What It Is Not

The obligation does not own the membership or access it delivers. Those records remain with their applications. It also does not replace the order line's quantity, price or financial documents. Shipment work organizes physical departure; the obligation tracks whether the required delivery outcome is complete. Post-sale documents can require additional instructions, but their approval and financial meaning belong to the document-owning workflow.

## How It Is Used

Operations staff inspect an obligation when they need to explain an outstanding delivery. They review its eligibility and attempts before choosing an intervention. The delivery register and operations queue provide different entry points into that investigation. A successful application response supplies the result; a permanent failure leaves work that requires attention. Staff should distinguish evidence of delivery from a request to try again, because manual completion and re-authorization answer different questions.

## Its Facets

**Gate.** The saved delivery policy and latest eligibility verdict retain the facts behind authorization. Understanding gate in the obligation workflow.

**Authorization.** A particular delivery instruction has an authorization that the application can recognize on repetition. Understanding authorization in the obligation workflow.

**Attempt.** Immutable attempt records preserve each delivery invocation and result. Understanding attempt in the obligation workflow.

**Operation and kind.** The instruction distinguishes fulfillment, modification, replacement, termination, cancellation, allocation release and enforcement with its application-specific kind. Understanding operation and kind in the obligation workflow.

**Unit grain.** Delivery can be followed for a complete line or for individual physical units. Understanding unit grain in the obligation workflow.

**Staff hold and approval.** Staff can supply required approval or deliberately retain waiting work on hold. Understanding staff hold and approval in the obligation workflow.

**Same-order prerequisite.** Provisional member pricing links the purchased item to membership delivery within the same order. Understanding same-order prerequisite in the obligation workflow.

**Enforcement.** An enforcement records the review or application response to changed financial backing. Understanding enforcement in the obligation workflow.

**Intervention.** Staff actions retain their person, time and explanation. Understanding intervention in the obligation workflow.

## How It Relates

The order supplies the sale and the fulfillment policy supplies its eligibility settings. Accounting supplies current financial facts. The delivering application supplies completion or failure, and shipment handover provides physical-unit completion. Stock allocations identify the units associated with warehouse delivery. Operational exceptions draw staff attention to problems that these processes detect.

## What It Could Become

The product should make all supported staff interventions understandable and reachable in a coherent console workflow. Recovery after failed prerequisite settlement also needs stronger evidence because the scheduled stale-work scan excludes blocked obligations. Product can decide whether buyers need a delivery timeline, but that extension needs a deliberate visibility contract rather than reuse of the staff register.
