PingOne Platform APIs

Application MFA Push Credentials

Push credentials are required for the purpose of sending push notifications to a native application. Push credentials must be defined for the application.

The push credentials endpoint implements functions to create, read, update and delete the push credentials associated with native application resources.

There are three types of push credentials:

  • APNS (Apple)

  • FCM_HTTP_V1 (Google)

  • HMS (Huawei)

The FCM type, used previously for Google Play-based applications, is no longer supported. Use FCM_HTTP_V1 instead.

The request bodies, their mandatory properties, and responses vary according to the push credential type.

MFA push credentials data model

Property Type Required Mutable Description

type

String

Required

Immutable

Specifies the push credential type.
Valid values:

* APNS (for Apple)

* FCM_HTTP_V1 (for Google)

* HMS (for Huawei)

* FCM (no longer supported, used previously for Google)

clientId

String

Required

Immutable

Used only if type is set to HMS. OAuth 2.0 Client ID from the Huawei Developers API console.

clientSecret

String

Required

Immutable

Used only if type is set to HMS. The client secret associated with the OAuth 2.0 Client ID.

googleServiceAccountCredentials

String

Required

Immutable

Used when type is set to FCM_HTTP_V1. The value should be the contents of the JSON file that represents your Service Account Credentials (the Firebase Admin SDK private key).

key

String

Required

Immutable

Used when type is set to APNS. The value should be the key ID. Before the deprecation of the FCM type, this was also used for the server key.

teamId

String

Required

Immutable

Used only if type is set to APNS. Used to identify teams.

token

String

Required

Immutable

Used only if type is set to APNS. Used as the authentication token signing key to securely connect to APNS. This is a p8 file with a private key format.

Response codes

Code Message

200

Successful operation.

201

Successfully created.

204

Successfully removed. No content.

400

The request could not be completed.

401

You do not have access to this resource.

403

You do not have permissions or are not licensed to make this request.

404

The requested resource was not found.

500

Unexpected server error.

Application MFA push credential errors

In addition to the general error codes, application MFA push credential operations can return the following errors:

HTTP status Top‑level code Detail code When it happens and what the response contains

400

INVALID_DATA

EMPTY_VALUE

Message: Validation Error : [<property> <message>]

When and details

When: A POST or PUT /pushCredentials request omits a property required for the credential type: key, token, or teamId for APNS, clientId or clientSecret for HMS, or googleServiceAccountCredentials for FCM_HTTP_V1

Details: must not be blank, for example Validation Error : [token must not be blank]

400

INVALID_DATA

INVALID_VALUE

Message: Validation Error : [customProvider must have an id]

When and details

When: A POST or PUT /pushCredentials request supplies a customProvider relationship without an id

Details: must have an id

400

INVALID_DATA

INVALID_VALUE

Message: Validation Error : [<property> <message>]

When and details

When: A POST or PUT /pushCredentials request supplies a credential value that fails format validation: an APNS token that is not a PKCS8 private key, or googleServiceAccountCredentials that is not a valid Google service account key file

Details: must be a valid PKCS8 private key or Google Service Account Credentials are not valid, for example Validation Error : [token must be a valid PKCS8 private key]

400

INVALID_DATA

INVALID_VALUE

Message: Invalid value for attribute.

When and details

When: A POST /pushCredentials request creates credentials of a type that the application already has (each application can have only one set of credentials per type)

Details: <type> credentials already exists in environment '<environmentId>' for application <applicationId>, with target type and the existing credentials ID in innerError.existingId

400

INVALID_DATA

INVALID_VALUE

Message: Invalid value for attribute.

When and details

When: A POST or PUT /pushCredentials request uses the FCM type, which is no longer supported

Details: Push Credentials of type FCM are not supported, with target type

400

INVALID_DATA

INVALID_VALUE

Message:

Property 'type' is immutable and cannot be changed on push credentials '<pushCredentialsId>' in environment '<environmentId>', application '<applicationId>'
When and details

When: A PUT /pushCredentials/{ID} request changes the type of the existing credentials

Details: property cannot be changed

400

INVALID_REQUEST

None

Message: The request could not be completed. One or more validation errors were in the request.

When and details

When: A path identifier cannot be parsed as a UUID. The top‑level code is INVALID_REQUEST even though the message text is the INVALID_DATA default message.

Details: None.

400

INVALID_REQUEST

INVALID_VALUE or None

Message: The request could not be completed. The request was malformed or invalid.

When and details

When: A POST or PUT /pushCredentials request body cannot be deserialized as one of the supported credential types (APNS, FCM_HTTP_V1, HMS)

Details: For a JSON field conversion error, the target is the field path. Otherwise no detail is returned.

403

ACCESS_FAILED

None

Message: The actor attempting to perform the request is not authorized.

When and details

When: The actor lacks the applications:read:pushCredentials permission (GET operations), the applications:create:pushCredentials permission (POST), the applications:update:pushCredentials permission (PUT), or the applications:delete:pushCredentials permission (DELETE)

Details: None.

404

NOT_FOUND

None

Message: The request could not be completed. The requested resource was not found.

When and details

When: The application ID in the request URL does not exist (applies to all operations)

Details: None.

404

NOT_FOUND

None

Message: The request could not be completed. The requested resource was not found.

When and details

When: GET, PUT, or DELETE /pushCredentials/{ID} references push credentials that do not exist for the application

Details: None.

404

NOT_FOUND

INVALID_VALUE

Message: The request could not be completed. The requested resource was not found.

When and details

When: A POST or PUT /pushCredentials request references a custom provider through customProvider.id that does not exist

Details: PushDeliverySettings resource not found, id=<customProviderId>