<!--
{
  "availability" : [
    "iOS: 26.5.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AccessoryNotifications",
  "identifier" : "/documentation/AccessoryNotifications",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "Accessory Notifications"
    ],
    "preciseIdentifier" : "AccessoryNotifications"
  },
  "title" : "Accessory Notifications"
}
-->

# Accessory Notifications

Receive forwarded iOS system notifications on an accessory that you develop.

## Overview

The Accessory Notifications framework allows accessory companion apps to request notification forwarding from people, and receive notification content from the system through an extension model. People can choose to forward notifications from all apps, no apps, or a subset of apps on their device.

> Important: This framework supports iPhone only. You can develop and test an app that uses this framework on devices in any region. Customer installations of your app can only use the framework on devices located in the EU that are signed in with an Apple Account with an EU country or region.

## Request notification forwarding

Call [`requestForwarding(for:)`](/documentation/AccessoryNotifications/AccessoryNotificationCenter/requestForwarding(for:)) from your companion app to prompt the person to allow notification forwarding. The system identifies your accessory through the reference you receive from <doc://com.apple.documentation/documentation/AccessorySetupKit>. The method returns a [`ForwardingDecision`](/documentation/AccessoryNotifications/ForwardingDecision) that indicates the person’s choice.

Check the current forwarding status for an accessory using [`forwardingStatus(for:)`](/documentation/AccessoryNotifications/AccessoryNotificationCenter/forwardingStatus(for:)), or present notification settings using [`presentSettings(for:scenePersistentIdentifier:)`](/documentation/AccessoryNotifications/AccessoryNotificationCenter/presentSettings(for:scenePersistentIdentifier:)).

## Receive and process notifications

To receive notifications, implement [`NotificationsForwarding.AccessoryNotificationsHandler`](/documentation/AccessoryNotifications/NotificationsForwarding/AccessoryNotificationsHandler) in an <doc://com.apple.documentation/documentation/AccessoryTransportExtension/AccessoryDataProvider> extension of the <doc://com.apple.documentation/documentation/AccessoryTransportExtension> framework. The system calls your handler’s methods for notification arrivals, updates, or removals. Curate just the notification information that your accessory needs from the [`AccessoryNotification`](/documentation/AccessoryNotifications/AccessoryNotification) structure, which includes content for display, icons, related file attachments, and interactive actions.

Send the curated data to your accessory using the session’s [`send(message:)`](/documentation/AccessoryNotifications/NotificationsForwarding/AccessoryNotificationsSession/send(message:)) method. The system encrypts the data using keys established through your app’s <doc://com.apple.documentation/documentation/AccessoryTransportExtension/AccessoryTransportSecurity> extension, then delivers the encrypted data to your app’s <doc://com.apple.documentation/documentation/AccessoryTransportExtension/AccessoryTransportAppExtension> for transmission to the accessory.

Your handler’s [`addNotification(_:alertingContext:)`](/documentation/AccessoryNotifications/NotificationsForwarding/AccessoryNotificationsHandler/addNotification(_:alertingContext:)) method returns a Boolean value that indicates whether your accessory alerted for the notification. Return `true` if the accessory successfully alerts the person. The system considers that information to coordinate alerting across multiple devices.

## Decrypt and display notifications

Your accessory receives the encrypted notification data and implements [HPKE (RFC9180)](https://datatracker.ietf.org/doc/rfc9180/) decryption to parse the notification details. Use [`AlertingContext`](/documentation/AccessoryNotifications/AlertingContext) to determine whether to send an alert for the notification. The [`shouldAlert`](/documentation/AccessoryNotifications/AlertingContext/shouldAlert) property provides the recommended behavior that matches the system’s alerting logic.

For specialized notification types, check [`kind`](/documentation/AccessoryNotifications/AlertingContext/kind-swift.property) to apply appropriate handling such as full-screen displays for incoming calls or distinct alert styles for alarms and timers. Use [`sound`](/documentation/AccessoryNotifications/AlertingContext/sound-swift.property) to determine sound characteristics, including whether the notification ignores silent mode.

## Communicate responses from the accessory

Your accessory can send information back to the companion app, such as notification actions or user text input. The accessory transmits data over Bluetooth to your transport extension, which forwards it to your data provider extension through [`messageHandler(_:)`](/documentation/AccessoryNotifications/NotificationsForwarding/AccessoryNotificationsHandler/messageHandler(_:)). Parse the message, create a [`NotificationResponse`](/documentation/AccessoryNotifications/NotificationResponse) instance, and send it to the system using the session’s [`sendResponse(_:)`](/documentation/AccessoryNotifications/NotificationsForwarding/AccessoryNotificationsSession/sendResponse(_:)) method.

## Topics

### Essentials

  <doc://com.apple.documentation/documentation/AccessoryTransportExtension/receiving-ios-notifications-on-an-accessory>

### Authorization

[`AccessoryNotificationCenter`](/documentation/AccessoryNotifications/AccessoryNotificationCenter)

A class that asks a person for permission to forward notifications.

[`ForwardingDecision`](/documentation/AccessoryNotifications/ForwardingDecision)

Possible decisions in response to the notification forwarding permission prompt.

### Notification receipt

[`NotificationsForwarding`](/documentation/AccessoryNotifications/NotificationsForwarding)

A class for handling notification forwarding in your accessory’s data provider extension.

[`NotificationsForwarding.AccessoryNotificationsHandler`](/documentation/AccessoryNotifications/NotificationsForwarding/AccessoryNotificationsHandler)

A protocol that defines methods for handling notification life cycle events in your extension.

[`NotificationsForwarding.Session`](/documentation/AccessoryNotifications/NotificationsForwarding/Session)

A session object that facilitates bidirectional communication between the system and your extension.

### Data curation and alerting

[`AccessoryNotification`](/documentation/AccessoryNotifications/AccessoryNotification)

A structure that contains the details of a notification that iOS provides to your accessory.

[`AlertingContext`](/documentation/AccessoryNotifications/AlertingContext)

A structure that provides guidance for how to alert for a notification.

### Interactive support

[`NotificationResponse`](/documentation/AccessoryNotifications/NotificationResponse)

A structure that represents a person’s response to a notification.

### Errors

[`AccessoryError`](/documentation/AccessoryNotifications/AccessoryError)

Errors the Accessory Notifications framework can throw.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)