Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 2025 Direct Cursus Technology L.L.C.
Yandex Cloud Notification Service
    • Overview
    • Getting started with mobile push notifications
    • Getting started with in-browser push notifications
    • Getting started with SMS
    • All guides
      • Creating a push notification channel
      • Updating a push notification channel
      • Deleting a push notification channel
      • Creating an endpoint
      • Updating an endpoint
      • Deleting an endpoint
      • Sending a push notification
    • Configuring logging
    • Overview
    • Mobile push notifications
    • In-browser push notifications
    • SMS
    • Quotas and limits
    • All tools
    • AWS CLI
    • AWS SDK for C++
    • AWS SDK for Go
    • AWS SDK for Java
    • AWS SDK for JavaScript
    • AWS SDK for Kotlin
    • AWS SDK for .NET
    • AWS SDK for PHP
    • AWS SDK for Python (boto3)
  • Pricing policy
  • Monitoring metrics
  • Logs Cloud Logging
  • Release notes
  1. Step-by-step operations
  2. Mobile push notifications
  3. Creating a push notification channel

Creating a push notification channel

Written by
Yandex Cloud
Updated at April 17, 2025

In Cloud Notification Service, messages to end users are sent through notification channels.

To create a channel:

Management console
AWS CLI
AWS SDK for Python
AWS SDK for PHP
API
  1. In the management console, select the folder you want to create a notification channel in.

  2. From the list of services, select Cloud Notification Service.

  3. Click Create notifications channel.

  4. Select a sending platform in the Mobile Push notifications tab:

    • Apple iOS: For iOS devices.
    • Google Android: For Android devices with Google Play services installed.
    • Huawei Android: For Android devices with Huawei services installed.
    • RuStore Android: For Android devices with the RuStore app marketplace installed.
  5. Depending on the platform you select, set the authentication parameters:

    Apple iOS

    • Select the Authentication method: Token or Certificate.

      • To authenticate with a token, you will need:

        • Signature key: File with the signature key that you will use to certify the authentication token.

          Create and download a signature key in your Apple developer account: Certificates, Identifiers & Profiles → Keys → . You can download the key file only once.

        • Key ID (Key ID): Get the ID in your Apple developer account: Certificates, Identifiers & Profiles → Keys. Make sure the ID matches the signature key you downloaded in the previous step. It must be 10 characters long.

        • Developer ID (Team ID): You can find it in the top-right corner of your Apple developer account. It must be 10 characters long and contain only numbers and Latin letters.

        • Bundle ID: Get the bundle ID in your Apple developer account: Certificates, Identifiers & Profiles → Identifiers or in the Xcode app: Target → General → Identity. It may contain only numbers, Latin letters, hyphens, and periods.

        Learn more about the token in the relevant Apple documentation.

      • To authenticate with a certificate, you will need:

        • Certificate: SSL certificate file in .pem format.
        • Private certificate key: Key file in .pem format.

        For more information about the certificate, see the Apple documentation.

        To save the certificate and the private key in individual .pem files, use the openssl Linux utility:

        openssl pkcs12 -in Certificates.p12 -nokeys -nodes -out certificate.pem
        openssl pkcs12 -in Certificates.p12 -nocerts -nodes -out privatekey.pem
        

      Token-based authentication is preferred as a faster, more modern and secure option.

    • Select the Environment: Development or Production. Use Development to test the application.

    Google Android

    Specify which FCM API version will be used: HTTP v1 or Legacy.

    You can authenticate with FCM using the API:

    • HTTP v1 API: You will need a Google Cloud service account key in JSON format. The key is used to generate OAuth 2.0 temporary tokens for authenticating requests in the FCM HTTP v1 API. You can get it in the Google Cloud management console.
    • Legacy API: You will need an API key (server key). You can get it in the Firebase management console.

    Note

    FCM no longer supports the legacy API starting June 2024.

    See more in the Firebase documentation.

    Huawei Android

    Explore the HMS documentation and get the authentication parameters:

    • Key ID.
    • API key.

    RuStore Android

    See the relevant RuStore article and get the authentication parameters:

    • Project ID.
    • Service token.

    You can get your authentication parameters in the RuStore developer console: Push notifications → Projects.

  6. Enter the notification channel Name. Channel names are unique within the entire CNS. It may contain lowercase and uppercase Latin letters, numbers, underscores, hyphens, and periods. It may be from 1 to 256 characters long. For APNs channels, we recommend specifying the bundle ID in the name; for FCM and HMS, the full package name; for RuStore, packageName.

  7. Optionally, click Add description and enter a description for your notification channel.

  8. Click Create.

  1. If you do not have the AWS CLI yet, install and configure it.

  2. Run this command:

    aws sns create-platform-application \
      --name <channel_name> \
      --platform <platform_type> \
      --attributes <parameter1>=<value1>, ... <parameterN>=<valueN>
    

    Where:

    • --name: Notification channel name, user-defined.

      The name must be unique throughout CNS. Once the channel is created, you will not be able to change the name. The name may contain lowercase and uppercase Latin letters, numbers, underscores, hyphens, and periods. It must be from 1 to 256 characters long. For APNs channels, we recommend specifying the bundle ID in the name; for FCM and HMS, the full package name; for RuStore, packageName.

    • --platform: Mobile platform type:

      • APNS and APNS_SANDBOX: Apple Push Notification service (APNs). Use APNS_SANDBOX to test the application.
      • GCM: Firebase Cloud Messaging (FCM).
      • HMS: Huawei Mobile Services (HMS).
      • RUSTORE: RuStore Android.
    • --attributes: Mobile platform authentication parameters in <parameter>=<value> format, comma-separated. The values depend on the platform:

      • APNs:

        • Token-based authentication:

          • PlatformPrincipal: Path to the signature key file from Apple.
          • PlatformCredential: Key ID.
          • ApplePlatformTeamID: Team ID.
          • ApplePlatformBundleID: Bundle ID.
        • Certificate-based authentication:

          • PlatformPrincipal: SSL certificate in .pem format.

          • PlatformCredential: Certificate private key in .pem format.

            To save the certificate and the private key in individual .pem files, use the openssl Linux utility:

            openssl pkcs12 -in Certificates.p12 -nokeys -nodes -out certificate.pem
            openssl pkcs12 -in Certificates.p12 -nocerts -nodes -out privatekey.pem
            

        Token-based authentication is preferred as a more modern option.

      • FCM: PlatformCredential is the Google Cloud service account key in JSON format for authentication with the HTTP v1 API or API key (server key) for authentication with the legacy API.

        We recommend escaping the file contents using the jq @json <<< cat private_key.json command, as the AWS CLI accepts this parameter in string format.

        The HTTP v1 API is preferred as FCM will no longer support the legacy API starting from June 2024.

      • HMS:

        • PlatformPrincipal: Key ID.
        • PlatformCredential: API key.
      • RuStore:

        • PlatformPrincipal: Project ID (ProjectID).
        • PlatformCredential: Service token (ServiceToken).

    As a result, you will get a notification channel ID (ARN). Save it for future use.

    For more information about the aws sns create-platform-application command, see the AWS documentation.

  1. If you do not have the AWS SDK for Python (boto3) yet, install and configure it.

  2. To create a push notification channel, use the following code:

    response = client.create_platform_application(
        Name="<channel_name>",
        Platform="<platform_type>",
        Attributes= {
             "<параметр1>": "<значение1>",
             ...
             "<parameterN>": "<valueN>"
        }
    )
    print ("Platform application ARN:", response['PlatformApplicationArn'])
    

    Where:

    • Name: Notification channel name, user-defined.

      The name must be unique throughout CNS. Once the channel is created, you will not be able to change the name. The name may contain lowercase and uppercase Latin letters, numbers, underscores, hyphens, and periods. It must be from 1 to 256 characters long. For APNs channels, we recommend specifying the bundle ID in the name; for FCM and HMS, the full package name; for RuStore, packageName.

    • Platform: Mobile platform type:

      • APNS and APNS_SANDBOX: Apple Push Notification service (APNs). Use APNS_SANDBOX to test the application.
      • GCM: Firebase Cloud Messaging (FCM).
      • HMS: Huawei Mobile Services (HMS).
      • RUSTORE: RuStore Android.
    • Attributes: Mobile platform authentication parameters in "<parameter>": "<value>" format, comma-separated. The values depend on the platform:

      • APNs:

        • Token-based authentication:

          • PlatformPrincipal: Path to the token signature key file from Apple.
          • PlatformCredential: Key ID.
          • ApplePlatformTeamID: Team ID.
          • ApplePlatformBundleID: Bundle ID.
        • Certificate-based authentication:

          • PlatformPrincipal: SSL certificate in .pem format.

          • PlatformCredential: Certificate private key in .pem format.

            To save the certificate and the private key in individual .pem files, use the openssl Linux utility:

            openssl pkcs12 -in Certificates.p12 -nokeys -nodes -out certificate.pem
            openssl pkcs12 -in Certificates.p12 -nocerts -nodes -out privatekey.pem
            

        Token-based authentication is preferred as a more modern option.

      • FCM: PlatformCredential is the Google Cloud service account key in JSON format for authentication with the HTTP v1 API or API key (server key) for authentication with the Legacy API.

        The HTTP v1 API is preferred as FCM will no longer support the Legacy API starting June 2024.

      • HMS:

        • PlatformPrincipal: Key ID.
        • PlatformCredential: API key.
      • RuStore:

        • PlatformPrincipal: Project ID (ProjectID).
        • PlatformCredential: Service token (ServiceToken).

    As a result, you will get a notification channel ID (ARN).

  1. If you do not have the AWS SDK for PHP yet, install and configure it.

  2. To create a push notification channel, use the following code:

    $response = $client->createPlatformApplication(
        [
            'Name' => '<channel_name>',
            'Platform' => '<platform_type>',
            'Attributes' => [
                '<parameter1>' => '<value1>',
                ...
                '<parameterN>' => '<valueN>'
            ],
        ]
    );
    
    print($response->get('PlatformApplicationArn'));
    

    Where:

    • Name: Notification channel name, user-defined.

      The name must be unique throughout CNS. Once the channel is created, you will not be able to change the name. The name may contain lowercase and uppercase Latin letters, numbers, underscores, hyphens, and periods. It must be from 1 to 256 characters long. For APNs channels, we recommend specifying the bundle ID in the name; for FCM and HMS, the full package name; for RuStore, packageName.

    • Platform: Mobile platform type:

      • APNS and APNS_SANDBOX: Apple Push Notification service (APNs). Use APNS_SANDBOX to test the application.
      • GCM: Firebase Cloud Messaging (FCM).
      • HMS: Huawei Mobile Services (HMS).
      • RUSTORE: RuStore Android.
    • Attributes: Mobile platform authentication parameters in '<parameter1>' => '<value1>' format, comma-separated. The values depend on the platform:

      • APNs:

        • Token-based authentication:

          • PlatformPrincipal: Path to the token signature key file from Apple.
          • PlatformCredential: Key ID.
          • ApplePlatformTeamID: Team ID.
          • ApplePlatformBundleID: Bundle ID.
        • Certificate-based authentication:

          • PlatformPrincipal: SSL certificate in .pem format.

          • PlatformCredential: Certificate private key in .pem format.

            To save the certificate and the private key in individual .pem files, use the openssl Linux utility:

            openssl pkcs12 -in Certificates.p12 -nokeys -nodes -out certificate.pem
            openssl pkcs12 -in Certificates.p12 -nocerts -nodes -out privatekey.pem
            

        Token-based authentication: The more modern and secure method.

      • FCM: PlatformCredential is the Google Cloud service account key in JSON format for authentication with the HTTP v1 API or API key (server key) for authentication with the legacy API.

        Use the HTTP v1 API because the FCM legacy API is no longer supported starting July 2024.

      • HMS:

        • PlatformPrincipal: Key ID.
        • PlatformCredential: API key.
      • RuStore:

        • PlatformPrincipal: Project ID (ProjectID).
        • PlatformCredential: Service token (ServiceToken).

    As a result, you will get a notification channel ID (ARN).

Use the create HTTP API method for the PlatformApplications resource in Yandex Cloud Notification Service.

Creating a notification channel may take some time.

Was the article helpful?

Previous
All guides
Next
Updating a push notification channel
© 2025 Direct Cursus Technology L.L.C.