---
title: Push Delivery Settings
description: This information is provided as part of the early-access program. API details described here might change before the official release of the feature.
component: pingone-api-ea
page_id: pingone-api-ea:platform:early-access/push-delivery-settings
canonical_url: https://developer.pingidentity.com/pingone-api-ea/platform/early-access/push-delivery-settings.html
llms_txt: https://developer.pingidentity.com/pingone-api-ea/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
section_ids:
  push-delivery-data-model: Push delivery data model
---

# Push Delivery Settings

|   |                                                                                                                                                       |
| - | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | This information is provided as part of the early-access program. API details described here might change before the official release of the feature. |

You can use the `pushDeliverySettings` endpoint to create a custom sender for push notifications.

This allows you to use a gateway of your own to send the push data to push notification services such as APNs and FCM, rather than having PingOne communicate directly with the push notification services.

If you define such a gateway, you just have to provide PingOne with the authentication credentials for your gateway rather than having to provide your credentials for the push notification service.

You can define up to three custom push senders.

## Push delivery data model

| Property                                    | Type   | Required? | Mutable?  | Description                                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------------------------- | ------ | --------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `authentication`                            | Object | Required  | Mutable   | Contains the information for authenticating with the provider.                                                                                                                                                                                                                                                                                                                                                    |
| `authentication.assertion`                  | String | Required  | Mutable   | The assertion to use if `authentication.grantType` is set to `JWT_BEARER`. Must be a valid JWT.                                                                                                                                                                                                                                                                                                                   |
| `authentication.authToken`                  | String | Required  | Mutable   | The authentication token for the custom provider account. Required when `authentication.method`=`BEARER`                                                                                                                                                                                                                                                                                                          |
| `authentication.authUrl`                    | String | Required  | Mutable   | The URL of the authorization server that provides the access token. Required when `authentication.method`=`OAUTH2`                                                                                                                                                                                                                                                                                                |
| `authentication.clientAuthenticationMethod` | String | N/A       | Read-only | The method used for sending credentials for OAuth2. Returned in responses for custom providers that require OAuth 2 authentication. For client ID/secret-based authentication, the value returned is `BASIC_AUTH_HEADER`. For JWT-based authentication, the value returned is `BODY`.                                                                                                                             |
| `authentication.clientId`                   | String | Required  | Mutable   | The client's public identifier. Required when `authentication.grantType` is set to `CLIENT_CREDENTIALS`.                                                                                                                                                                                                                                                                                                          |
| `authentication.clientSecret`               | String | Required  | Mutable   | The client's secret. Required when `authentication.grantType` is set to `CLIENT_CREDENTIALS`.                                                                                                                                                                                                                                                                                                                     |
| `authentication.grantType`                  | String | Optional  | Mutable   | The grant type used. Relevant for custom providers that require OAuth 2 authentication. Set to `JWT_BEARER` for JWT-based authentication, and to `CLIENT_CREDENTIALS` for authentication based on client ID and secret. If not specified in the request, the default value is `CLIENT_CREDENTIALS`.                                                                                                               |
| `authentication.headerName`                 | String | Required  | Mutable   | The name of the custom header used for authentication. Required when `authentication.method`=`CUSTOM_HEADER`                                                                                                                                                                                                                                                                                                      |
| `authentication.headerValue`                | String | Required  | Mutable   | The value to use for the custom header used for authentication. Required when `authentication.method`=`CUSTOM_HEADER`                                                                                                                                                                                                                                                                                             |
| `authentication.method`                     | String | Required  | Mutable   | The custom provider account's authentication method. Possible values:\* BASIC - username/password\* BEARER - bearer token\* OAUTH2 - OAuth 2\* CUSTOM\_HEADER - authentication using a custom header                                                                                                                                                                                                              |
| `authentication.password`                   | String | Required  | Mutable   | The password for the custom provider account. Required when `authentication.method`=`BASIC`                                                                                                                                                                                                                                                                                                                       |
| `authentication.scopes`                     | Array  | Optional  | Mutable   | When `authentication.method` is set to OAUTH2, use `scopes` to specify the capabilities that the issued token should have, for example, `["push:send"]`.                                                                                                                                                                                                                                                          |
| `authentication.username`                   | String | Required  | Mutable   | The username for the custom provider account. Required when `authentication.method`=`BASIC`                                                                                                                                                                                                                                                                                                                       |
| `name`                                      | String | Required  | Mutable   | The name you want to use for the provider.                                                                                                                                                                                                                                                                                                                                                                        |
| `provider`                                  | String | Required  | Immutable | Must be set to `CUSTOM_PROVIDER`.                                                                                                                                                                                                                                                                                                                                                                                 |
| `requests.body`                             | String | Required  | Mutable   | The body for the request sent to the push gateway. Must include the mandatory ${push-data} variable, which represents the data provided by PingOne so that you can make the appropriate API calls to the push notification service to send the push notifications to your users. You can also include the optional ${push-provider} variable to specify the push notification service, such as APNS, FCM, or HMS. |
| `requests.deliveryMethod`                   | String | Required  | Mutable   | The notification's delivery method. Must be set to `PUSH`.                                                                                                                                                                                                                                                                                                                                                        |
| `requests.headers`                          | Array  | Optional  | Mutable   | The headers to include for the request, for example, `{ "content-type":"application/json" }`.                                                                                                                                                                                                                                                                                                                     |
| `requests.method`                           | String | Required  | Mutable   | The type of HTTP request method. For push senders, must be set to `POST`.                                                                                                                                                                                                                                                                                                                                         |
| `requests.url`                              | String | Required  | Mutable   | The URL of the gateway for the provider, for example, https\://pushgateway.example.com                                                                                                                                                                                                                                                                                                                            |

[Run in Postman](https://god.gw.postman.com/run-collection/19814817-00f505f8-96d7-4957-9efd-2c9f7e345bc1?action=collection%2Ffork\&source=rip_markdown\&collection-url=entityId%3D19814817-00f505f8-96d7-4957-9efd-2c9f7e345bc1%26entityType%3Dcollection%26workspaceId%3D936f1637-06aa-461a-b23d-0964e90621c6)
