Watcher NOTAM Lifecycle

This document explains what the Watcher API delivers to listeners and how filters.notam_type differs from lifecycle_enabled.

Two Delivery Types

Watcher can send two kinds of webhook events:

  1. kind = "interpretation" Standard interpreted NOTAM delivery. Listener filters are evaluated here.

  2. kind = "lifecycle" Additional lifecycle delivery for a NOTAM that was already delivered earlier and was later cancelled (NOTAMC) or replaced (NOTAMR).

What filters.notam_type Means

filters.notam_type applies only to standard interpreted deliveries.

Supported values:

  • N or NOTAMN

  • R or NOTAMR

Not supported:

  • C or NOTAMC

Important:

  • Selecting notam_type = ["R"] means: deliver interpreted NOTAMs whose own type is R.

  • It does not mean: deliver the old NOTAM that got replaced.

  • It does not control lifecycle cancellation or replacement notifications.

What lifecycle_enabled Means

lifecycle_enabled = true enables separate lifecycle webhook events.

Lifecycle events are sent only when all of the following are true:

  • the listener is active

  • the listener is in prod mode

  • the listener has a webhook URL

  • the listener previously received the original NOTAM by successful production webhook delivery

Normal listener filters are not re-evaluated for lifecycle events. Lifecycle routing is based on prior delivery tracking of the original NOTAM.

Lifecycle Payload Semantics

In a lifecycle payload:

  • kind is "lifecycle"

  • event_id is a lifecycle event identifier

  • notam is the lifecycle NOTAM itself

  • change.changed_notam_id is the previously delivered NOTAM that changed

  • change.notam_type is C or R

That means:

  • for NOTAMR, notam is the replacement NOTAM

  • for NOTAMC, notam is the cancellation NOTAM

  • in both cases, change.changed_notam_id points to the old NOTAM that was replaced or cancelled

Example: Replacement

Assume the listener already received interpreted delivery for:

  • old NOTAM ID: old-uuid

  • old NOTAM number: A1234/26

Later the stream receives:

  • new NOTAM ID: new-uuid

  • new NOTAM number: A1300/26

  • message contains NOTAMR A1234/26

Watcher sends:

Interpretation:

  • the payload notam is the new replacement NOTAM

  • change.changed_notam_id is the old NOTAM that was replaced

Example: Cancellation

Assume the listener already received interpreted delivery for:

  • old NOTAM ID: old-uuid

  • old NOTAM number: A1553/26

Later the stream receives:

  • cancellation NOTAM ID: cancel-uuid

  • cancellation NOTAM number: A1572/26

  • message contains NOTAMC A1553/26

Watcher sends:

Interpretation:

  • the payload notam is the cancellation NOTAM

  • change.changed_notam_id is the old NOTAM that was cancelled

Common Questions

chevron-rightIf I set filters.notam_type = ["R"], will I receive the old NOTAM that got replaced?hashtag

No.

You will receive interpreted replacement NOTAMs whose own type is R. The old replaced NOTAM is not sent as the main notam object.

If you also enable lifecycle delivery, then lifecycle payloads will include:

  • the replacement NOTAM in notam

  • the old replaced NOTAM ID in change.changed_notam_id

chevron-rightIf I set filters.notam_type = ["N"] and enable lifecycle delivery, can I still receive lifecycle replacement events later?hashtag

Yes.

If the listener already received the original NOTAM by production webhook, later lifecycle notifications are based on that prior delivery, not on re-running the current filters.

chevron-rightCan the same replacement NOTAM (NOTAMR) be delivered twice?hashtag

Yes.

If all of the following are true:

  • the listener previously received the old original NOTAM

  • lifecycle_enabled = true

  • the new replacement NOTAM is also interpreted and matches the listener filtering for normal interpreted delivery

then the same replacement NOTAM can be delivered twice:

  • once as kind = "lifecycle"

  • once as kind = "interpretation"

In that case:

  • both messages may contain the same notam.id

  • kind will be different

  • event_id will be different

  • delivery order is not guaranteed

Consumers should treat kind and event_id as the event identity, not only notam.id.

chevron-rightAre lifecycle events billable?hashtag

No.

Lifecycle webhook deliveries do not increment shipment credits or metadata.notams_shipped

Last updated