---
title: "Get a single webhook notification"
method: GET
path: "/webhook_notifications/{id}"
tags: ["Webhook Notifications"]
---

# Get a single webhook notification

`GET /webhook_notifications/{id}`

## Query parameters

- `include` string

## Response `200`

- object
  - `data` WebhookNotification
    - `id` string, uuid
    - `type` 'webhook_notification'
    - `attributes` object
      - `event` 'container.transport.vessel_arrived' | 'container.transport.estimated.vessel_arrived' | 'container.transport.vessel_discharged' | 'container.transport.vessel_loaded' | 'container.transport.vessel_departed' | 'container.transport.estimated.vessel_departed' | 'container.transport.rail_departed' | 'container.transport.rail_arrived' | 'container.transport.rail_loaded' | 'container.transport.rail_unloaded' | 'container.transport.transshipment_arrived' | 'container.transport.transshipment_discharged' | 'container.transport.transshipment_loaded' | 'container.transport.transshipment_departed' | 'container.transport.feeder_arrived' | 'container.transport.feeder_discharged' | 'container.transport.feeder_loaded' | 'container.transport.feeder_departed' | 'container.transport.empty_out' | 'container.transport.full_in' | 'container.transport.full_out' | 'container.transport.empty_in' | 'container.transport.vessel_berthed' | 'shipment.estimated.arrival' | 'tracking_request.succeeded' | 'tracking_request.failed' | 'tracking_request.awaiting_manifest' | 'tracking_request.tracking_stopped' | 'container.created' | 'container.updated' | 'container.pod_terminal_changed' | 'container.transport.arrived_at_inland_destination' | 'container.transport.estimated.arrived_at_inland_destination' | 'container.pickup_lfd.changed' | 'container.pickup_lfd_line.changed' | 'container.pickup_lfd_terminal.changed' | 'container.pickup_lfd_rail.changed' | 'container.pickup_appointment.changed' | 'container.transport.available' | 'container.transport.not_available' | 'container.transport.delivered' | 'document_representation.created' | 'document_representation.failed', required
      - `delivery_status` 'pending' | 'succeeded' | 'failed', required — Whether the notification has been delivered to the webhook endpoint
      - `created_at` string, required
    - `relationships` object
      - `webhook` object, required
        - `data` object
          - `id` string, uuid
          - `type` 'webhook'
      - `reference_object` object
        - `data` object
          - `id` string, uuid
          - `type` 'tracking_request' | 'estimated_event' | 'transport_event' | 'container_updated_event' | 'document'
  - `included` union[]
    - union
      - Webhook
        - `id` string, uuid, required
        - `type` 'webhook', required
        - `attributes` object
          - `url` string, uri, required — https end point
          - `active` boolean, required — Whether the webhook will be delivered when events are triggered
          - `events` string[], required — The list of events to enabled for this endpoint
          - `secret` string, required — A random token that will sign all delivered webhooks
          - `headers` object[], nullable
            - `name` string
            - `value` string
      - TrackingRequest
        - `id` string, uuid, required
        - `type` 'tracking_request', required
        - `attributes` object
          - `request_number` string, required
          - `ref_numbers` string[], nullable
          - `tags` string[]
          - `status` 'pending' | 'awaiting_manifest' | 'created' | 'failed' | 'tracking_stopped', required
          - `failed_reason` 'booking_cancelled' | 'duplicate' | 'expired' | 'internal_processing_error' | 'invalid_number' | 'not_found' | 'retries_exhausted' | 'shipping_line_unreachable' | 'unrecognized_response' | 'data_unavailable' | 'scac_auto_detect_failed' | 'null', nullable — If the tracking request has failed, or is currently failing, the last reason we were unable to complete the request. `scac_auto_detect_failed` means `auto_detect_vocc_scac` was set but no supported carrier SCAC could be inferred from the request number.
          - `request_type` 'bill_of_lading' | 'booking_number' | 'container', required
          - `scac` string, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time
          - `is_retrying` boolean
          - `retry_count` integer, nullable — How many times T49 has attempted to get the shipment from the shipping line
        - `relationships` object
          - `tracked_object` object
            - `data` object, nullable
              - …
          - `customer` object
            - `data` object
              - …
      - TransportEvent
        - `id` string, uuid, required
        - `type` 'transport_event', required
        - `attributes` object
          - `event` 'container.transport.vessel_arrived' | 'container.transport.estimated.vessel_arrived' | 'container.transport.vessel_discharged' | 'container.transport.vessel_loaded' | 'container.transport.vessel_departed' | 'container.transport.estimated.vessel_departed' | 'container.transport.rail_departed' | 'container.transport.rail_arrived' | 'container.transport.rail_loaded' | 'container.transport.rail_unloaded' | 'container.transport.transshipment_arrived' | 'container.transport.transshipment_discharged' | 'container.transport.transshipment_loaded' | 'container.transport.transshipment_departed' | 'container.transport.feeder_arrived' | 'container.transport.feeder_discharged' | 'container.transport.feeder_loaded' | 'container.transport.feeder_departed' | 'container.transport.empty_out' | 'container.transport.full_in' | 'container.transport.full_out' | 'container.transport.empty_in' | 'container.transport.vessel_berthed' | 'container.transport.arrived_at_inland_destination' | 'container.transport.estimated.arrived_at_inland_destination' | 'container.pickup_lfd.changed' | 'container.pickup_lfd_line.changed' | 'container.pickup_lfd_terminal.changed' | 'container.pickup_lfd_rail.changed' | 'container.pickup_appointment.changed' | 'container.transport.available' | 'container.transport.not_available' | 'container.transport.delivered' | 'document_representation.created' | 'document_representation.failed'
          - `voyage_number` string, nullable
          - `timestamp` string, date-time, nullable
          - `timezone` string, nullable — IANA tz
          - `location_locode` string, nullable — UNLOCODE of the event location
          - `created_at` string, date-time
          - `data_source` 'shipping_line' | 'terminal' | 'ais' — The original source of the event data
        - `relationships` object
          - `shipment` object
            - `data` object
              - …
          - `location` object
            - `data` object, nullable
              - …
          - `vessel` object
            - `data` object, nullable
              - …
          - `terminal` object
            - `data` object, nullable
              - …
          - `container` object
            - `data` object
              - …
      - EstimatedEvent
        - `id` string, uuid, required
        - `type` 'estimated_event', required
        - `attributes` object, required
          - `created_at` string, date-time, required — When the estimated event was created
          - `estimated_timestamp` string, date-time, required
          - `event` 'shipment.estimated.arrival' | 'document_representation.created' | 'document_representation.failed', required
          - `location_locode` string, nullable — UNLOCODE of the event location
          - `timezone` string, nullable — IANA tz
          - `voyage_number` string, nullable
          - `data_source` 'shipping_line' | 'terminal' — The original source of the event data
        - `relationships` object, required
          - `shipment` object, required
            - `data` object, required
              - …
          - `port` object
            - `data` object, nullable
              - …
          - `vessel` object — 
            - `data` object, nullable
              - …
      - ContainerUpdatedEvent
        - `id` string
        - `type` string
        - `attributes` object
          - `changeset` object, required — A hash of all the changed attributes with the values being an array of the before and after. E.g. `{"pickup_lfd": [null, "2020-05-20"]}` The current attributes that can be alerted on are: - `available_for_pickup` - `pickup_lfd` - `fees_at_pod_terminal` - `holds_at_pod_terminal` - `pickup_appointment_at` - `pod_terminal`
          - `timestamp` string, date-time, required
          - `timezone` string — IANA tz
          - `data_source` 'terminal'
        - `relationships` object, required
          - `container` object, required
            - `data` object, required
              - …
          - `terminal` object, required
            - `data` object, required
              - …
      - Document
        - `id` string, uuid, required
        - `type` 'document', required
        - `attributes` object
          - `id` string, uuid — Unique identifier for the document.
          - `name` string — Display name of the document.
          - `document_type` string — System-classified document type.
          - `document_type_manual` string, nullable — Document type set manually by a user, when available.
          - `classification_notes` string, nullable — Additional notes captured during document classification.
          - `source` 'upload' | 'api' | 'email' | 'split_document' — How the document was created in Terminal49.
          - `file_name` string — Original file name of the uploaded or generated document.
          - `file_content_type` string, nullable — MIME type of the document file.
          - `file_size_bytes` integer, nullable — File size in bytes.
          - `parsed` object, nullable — Additional parsing metadata. Present for child documents created from a split packet.
            - `packetSegment` object — Page range of the child document within the original packet.
              - …
          - `created_at` string, date-time — Timestamp when the document was created.
          - `updated_at` string, date-time — Timestamp when the document was last updated.
        - `relationships` object
          - `account` object
            - `data` object
              - …
          - `user` object
            - `data` object, nullable
              - …
          - `email_submission` object
            - `data` object, nullable
              - …
          - `last_document_representation` object
            - `data` object, nullable
              - …
          - `parent_document` object — Present for child documents created from a split packet.
            - `data` object, nullable
              - …
          - `shipments` object
            - `data` object[]
              - …
          - `cargos` object
            - `data` object[]
              - …
        - `links` object
          - `self` string
          - `download` string
      - DocumentRepresentation
        - `id` string, uuid, required
        - `type` 'document_representation', required
        - `attributes` object
          - `schema_version` string
          - `payload` object
          - `created_at` string, date-time
          - `updated_at` string, date-time
      - DocumentEmailSubmission
        - `id` string, uuid, required
        - `type` 'email_submission', required
        - `attributes` object
          - `subject` string, nullable
          - `body_preview` string, nullable
          - `from` string[]
          - `to` string[]
          - `cc` string[]
          - `message_id` string, nullable
          - `sent_at` string, date-time, nullable
          - `created_at` string, date-time
          - `updated_at` string, date-time

---

[API](https://skmtc.dev/terminal49/apis/terminal49-api-reference.md) · [All operations](https://skmtc.dev/terminal49/apis/terminal49-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/terminal49/terminal49-api-reference/revisions/998a27e39c03/schema)
