Search 800 + Posts

Apr 5, 2026

Oracle Fusion Order Management: Understanding “Cancellation Requested” Status (And Why Your Integration Might Miss It)

In enterprise Order-to-Cash integrations, order cancellation often appears simple on the surface—but in reality, it is one of the most misunderstood flows in Oracle Fusion Order Management.

One status in particular creates confusion across integration teams: “Cancellation Requested”

Most of the time we expect to see this status in events, logs, and downstream systems,but often, it never shows up.

So what’s really happening? A Real-World Scenario.we recently worked on a common enterprise pattern:

  • Users create and manage Sales Orders in Custom Web based UI

  • Cancellation is initiated from Custom Web based UI

  • UI Invoke OIC integration over REST call

  • OIC invokes Fusion REST API to cancel order lines

  • OIC subscribes to Fusion Order Events to sync status back

Everything worked perfectly—except one thing: We never received an event for “Cancellation Requested” . Though this is intermediate cancel events but it was a MUST for business requirements to report it back to custom application.

What is “Cancellation Requested” Status?

“Cancellation Requested” is not a final status.It represents:

✔ A cancellation request has been accepted
✔ Orchestration has started
❗ But fulfillment tasks are still in progress

Behind the scenes, Fusion triggers multiple activities:

  • Cancel inventory reservation

  • Cancel pick/ship tasks

  • Reverse supply orchestration

Only after these complete does the system move to: Canceled

The Key Insight Most Teams Miss

Here’s the critical architectural reality: Fusion does NOT guarantee event publication for “Cancellation Requested”

What Events Are Actually Published?

Here’s what you can reliably expect:

Status Transition

Event Published

Awaiting Shipment → Cancellation Requested

❌ Not guaranteed

Cancellation Requested → Canceled

✅ Yes


If your architecture looks like:

Custom Web based UI→ OIC → Fusion REST → Event → Custom Web based UI

Then this assumption is risky: ❌ “We will get an event for Cancellation Requested”

Recommended Enterprise Design Pattern

Step 1: Handle initiation yourself

When user clicks Cancel in Custom Web based:

  • Update Custom Web based status:

    • Cancel Initiated (or similar)

👉 Do NOT wait for Fusion to tell you this

Step 2: Call Fusion via OIC (This is Important Step)

  • Invoke REST API to cancel lines

  • Capture response (success/failure) in these response you will see Status Code like DOO_CANCELLATION_REQUESTED. Send these code back to web application and set the status of Order line to Cancellation requested

Step 3: Use events only for final state

Subscribe to events for:

  • Cancel Pending / Canceled

  • Shipped

  • Closed

Step 4: Update final state from event

When Fusion publishes: Status = Cancel pending /Canceled.  Update Custom Web application accordingly

Architecture Pattern (We Recommended)


Step 1: User (Custom Web based application )

  1. Cancel Action

  2. UI invoke OIC Integration

  3. OIC integration invoke Fusion REST API (to Cancel Line)

  4. Custom Web based → Set Status = "Cancel Initiated"

Step 2: Fusion Processing (internal)

  1. Is Cancel Requested status is a Must to be reported in Custom Application

    1. Yes

    2. Read response from Fusion cancel line REST API , 

      1. if Status Code in response is =DOO_CANCELLATION_REQUESTED then SET status in Web application Cancellation Requested.

  2. Is Cancel requested Status is  Must to be reported in Custom Application

    1. NO 

    2. Do nothing Wait for the Line events related to cancellation ( Fusion Processing )

  3. OIC has Event Subscription On

    1. As soon as events related to line cancellation triggered ( Cancel Pending /Canceled) , Update Status in Custom Web Application Cancel Pending and then "Canceled".


Architecture Pattern that we have leverage .

1. Initiation and Immediate Feedback

The process begins when a user initiates a Cancel Action from a Custom Web-based application.

  • Step: The UI should immediately update its own status to "Cancel Initiated".

  • Rationale: Do not wait for Fusion to confirm this initial step; controlling the initiation state within your own system ensures the user gets immediate feedback.

2. Synchronous Integration via OIC

The Custom UI invokes an Oracle Integration Cloud (OIC) integration via a REST call, which then invokes the Fusion REST API to cancel the order lines.

  • Capturing the Intermediate Status: Instead of waiting for an asynchronous event (which may never arrive), the integration should read the synchronous response from the Fusion REST API.

  • The "Must-Have" Decision:

    • If reporting "Cancellation Requested" is a requirement: The integration checks the response for the status code DOO_CANCELLATION_REQUESTED. If present, it updates the Web application status to "Cancellation Requested" immediately.

    • If it is NOT a requirement: The system simply waits for the final line events.

3. Asynchronous Event Subscription for Final State

Fusion then performs internal processing, such as canceling inventory reservations and pick/ship tasks.

  • Step: OIC remains subscribed to Fusion Order Events, but only for final or major milestones like Cancel Pending or Canceled.

  • Final Update: Once these final events are triggered, OIC updates the Custom Web application to its final status, such as "Canceled".

4. Critical Reconciliation

The architecture emphasizes that events can be missed due to edge cases or failures.

  • Requirement: Always implement a scheduled sync job to reconcile statuses between the Custom Web application and Fusion to ensure data integrity.

The core of this pattern is to treat "Cancellation Requested" as an internal/transient processing state rather than a guaranteed integration event. By using the REST API response for intermediate status and events only for the final state, the architecture avoids the pitfall of waiting for a "Cancellation Requested" event that may never be published.