---
title: PingFederate Authentication API support
description: You can use the PingFederate Authentication API to integrate the Symantec VIP IdP adapter into your application.
component: symantec-vip
page_id: symantec-vip::pf_symantec_vip_ik_pf_authn_api_support
canonical_url: https://docs.pingidentity.com/integrations/symantec-vip/pf_symantec_vip_ik_pf_authn_api_support.html
revdate: June 24, 2025
section_ids:
  models-objects-and-error-codes: Models, objects, and error codes
  objects: Objects
  error-codes: Error codes
---

# PingFederate Authentication API support

You can use the PingFederate Authentication API to integrate the Symantec VIP IdP adapter into your application.

The PingFederate Authentication API provides access to the current state of the authentication flow as a user steps through the PingFederate authentication policy. Learn more in [PingFederate Authentication API](https://docs.pingidentity.com/pingfederate/latest/developers_reference_guide/pf_authentication_api.html) in the PingFederate documentation.

To integrate the Symantec VIP IdP adapter into your authentication flow, configure your application based on the information in this section.

|   |                                                                                                                                                                                                                                                                                                                                                |
| - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | You can also explore integrating the Symantec VIP IdP adapter into your application using the PingFederate Authentication API Explorer. Learn more in [Exploring the Authentication API](https://docs.pingidentity.com/pingfederate/latest/developers_reference_guide/pf_exploring_authentication_api.html) in the PingFederate documentation. |

## Models, objects, and error codes

When using the Symantec VIP integration kit through the PingFederate Authentication API, the adapter uses the following state models, action models, objects, and error codes:

> **Collapse: State models**
>
> | Status                                       | Request model                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Action                                                                                       | Description                                                                               |
> | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
> | `VIP_AUTHENTICATION_REQUIRED`                | * `username`
>
>   The authenticating user's username.
>
> * `pushNotificationInfo`
>
>   An object with data required to complete push notification.
>
>   If number matching is enabled, the user must enter the number displayed on their device.
>
> * `VIPCredentialInfo`
>
>   An object with details about the VIP credential.                                                                                                                                                                                                                                    | - `initiatePushAuthentication`
>
> - `selectVIPCredential`
>
> - `checkSecurityCode`
>
> - `continue` | To continue, the user must authenticate with a credential or approve a push notification. |
> | `VIP_CREDENTIAL_REQUIRED`                    | * `username`
>
>   The authenticating user's username.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | - `submitVIPCredential`
>
> - `continue`                                                        | The user must submit a credential to complete the enrollment process.                     |
> | `VIP_CREDENTIAL_RESET_REQUIRED`              | * `username`
>
>   The authenticating user's username.
>
> * `resettableVipCredentials`
>
>   A list of `VIP Credential Info` objects with details about the resettable credentials.                                                                                                                                                                                                                                                                                                                                                                            | - `resetVIPCredential`
>
> - `continue`                                                         | The user must reset their credential to continue.                                         |
> | `VIP_EMAIL_CREDENTIAL_REQUIRED`              | * `username`
>
>   The authenticating user's username.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | - `submitEmailCredential`
>
> - `continue`                                                      | The user must submit an email credential to complete the enrollment process.              |
> | `VIP_EMAIL_CREDENTIAL_VERIFICATION_REQUIRED` | * `username`
>
>   The authenticating user's username.
>
> * `credentialId`
>
>   The email credential ID.
>
> * `credentialType`
>
>   The type of credential that's currently going through verification. This can be `SMS`, `Email`, or `Voice`.
>
> * `errorMessage`
>
>   An optional error message indicating the error encountered during validation, if applicable.
>
> * `informationMessage`
>
>   An optional message containing additional information about the error encountered during validation.
>
> * `friendlyName`
>
>   The friendly name of the added credential. | - `validateSecurityCode`
>
> - `continue`                                                       | The user must verify their email credential to complete the enrollment process.           |
> | `VIP_ENROLLMENT`                             | * `username`
>
>   The authenticating user's username.
>
> * `vipCredentials`
>
>   A list of `VIP Credential Info` objects with details about the credential.
>
> * `suppressAddCredentials`
>
>   Indicates whether the user can add credentials.
>
> * `enableAddingSMSCredential`
>
>   Indicates whether the user can add an SMS credential.
>
> * `enableAddingVoiceCredential`
>
>   Indicates whether the user can add a voice credential.
>
> * `enableAddingEmailCredential`
>
>   Indicates whether the user can add an email credential.                                    | - `addVIPCredential`
>
> - `continue`
>
> - `cancel`                                               | The user can either add a credential or continue to the authentication process.           |
> | `VIP_SMS_CREDENTIAL_REQUIRED`                | * `username`
>
>   The authenticating user's username.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | - `submitSMSCredential`
>
> - `continue`                                                        | The user must submit an SMS credential to complete the enrollment process.                |
> | `VIP_SMS_CREDENTIAL_VERIFICATION_REQUIRED`   | * `username`
>
>   The authenticating user's username.
>
> * `credentialId`
>
>   The SMS credential ID.
>
> * `credentialType`
>
>   The type of credential that's currently going through verification. This can be `SMS`, `Email`, or `Voice`.
>
> * `errorMessage`
>
>   An optional error message indicating the error encountered during validation, if applicable.
>
> * `informationMessage`
>
>   An optional message containing additional information about the error encountered during validation.
>
> * `friendlyName`
>
>   The friendly name of the added credential.   | - `validateSecurityCode`
>
> - `continue`                                                       | The user must verify their SMS credential to complete the enrollment process.             |
> | `VIP_VOICE_CREDENTIAL_REQUIRED`              | * `username`
>
>   The authenticating user's username.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | - `submitVoiceCredential`
>
> - `continue`                                                      | The user must submit a voice credential to complete the enrollment process.               |
> | `VIP_VOICE_CREDENTIAL_VERIFICATION_REQUIRED` | * `username`
>
>   The authenticating user's username.
>
> * `credentialId`
>
>   The voice credential ID.
>
> * `credentialType`
>
>   The type of credential that's currently going through verification. This can be `SMS`, `Email`, or `Voice`.
>
> * `errorMessage`
>
>   An optional error message indicating the error encountered during validation, if applicable.
>
> * `informationMessage`
>
>   An optional message containing additional information about the error encountered during validation.
>
> * `friendlyName`
>
>   The friendly name of the added credential. | - `validateSecurityCode`
>
> - `continue`                                                       | The user must verify their voice credential to complete the enrollment process.           |

> **Collapse: Action models**
>
> | Status                       | Request model                                                                                                                                                                                                               | Action                                                                                                                                                                                | Description                                                                                                                                                                                             |
> | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
> | `initiatePushAuthentication` | This action has no model.                                                                                                                                                                                                   | This action has no errors.                                                                                                                                                            | Initiates push notification authentication.                                                                                                                                                             |
> | `selectVIPCredential`        | * `vipCredentialId`
>
>   The credential ID to use.
>
> * `type`
>
>   The credential type. Possible values are `STANDARD_OTP`, `SMS_OTP`, `EMAIL_OTP`, AND `VOICE_OTP`.                                                             | - Error: `VALIDATION_ERROR`
>
>   ErrorDetail: `INVALID_VIP_CREDENTIAL_ID`: Credential ID isn't valid.
>
>   `AUTHENTICATION_FAILED`: Authentication failed.                                | Select the credential to use for authentication.                                                                                                                                                        |
> | `checkSecurityCode`          | * `securityCode`
>
>   The security code.
>
> * `type`
>
>   The credential type. Possible values are `STANDARD_OTP`, `SMS_OTP`, `EMAIL_OTP`, AND `VOICE_OTP`.                                                                       | - Error: `VALIDATION_ERROR`
>
>   ErrorDetail: `AUTHENTICATION_FAILED`: Failed to authenticate successfully with the given security code.                                                | Validates the entered security code.                                                                                                                                                                    |
> | `cancel`                     | This action has no model.                                                                                                                                                                                                   | This action has no errors.                                                                                                                                                            | Cancels the current authentication step.                                                                                                                                                                |
> | `submitVIPCredential`        | * `vipCredentialId`
>
>   The credential ID.
>
> * `securityCode`
>
>   The security code.                                                                                                                                           | - Error: `VALIDATION_ERROR`
>
>   ErrorDetail: `SUBMIT_VIP_CREDENTIAL_ERROR`: Error adding credential because of an incorrect security code.                                             | Submit a security code to complete the enrollment process of the VIP credential type.                                                                                                                   |
> | `resetVIPCredential`         | * `vipCredentialId`
>
>   The credential ID of the credential to be reset.
>
> * `securityCode`
>
>   A security code from the credential to be reset.
>
> * `nextSecurityCode`
>
>   The next security code from the credential to reset. | - Error: `VALIDATION_ERROR`
>
>   ErrorDetail: `INVALID_VIP_CREDENTIAL_ID`: Invalid credential ID was provided.
>
>   `RESET_VIP_CREDENTIAL_ERROR`: Error encountered resetting credential. | Process with two consecutive security codes to reset the credential.                                                                                                                                    |
> | `submitEmailCredential`      | * `credentialId`
>
>   The new credential ID (email address) to add.
>
> * `friendlyName`
>
>   The friendly name of the email credential.                                                                                           | - Error: `VALIDATION_ERROR`
>
>   ErrorDetail: `SUBMIT_EMAIL_CREDENTIAL_ERROR`: Error adding email credential.                                                                           | Enter your email credentials. An OTP will be sent to the provided email address.When the OTP is presented back for verification, this completes the credential addition process.                        |
> | `validateSecurityCode`       | * `securityCode`
>
>   A security code received by the new credential.                                                                                                                                                         | - Error: `VALIDATION_ERROR`
>
>   ErrorDetail: `AUTHENTICATION_FAILED`: Authentication failed.                                                                                           | Validate the received security code to prove device ownership and complete the credential addition process.                                                                                             |
> | `addVIPCredential`           | * `type`
>
>   The credential type. Acceptable values are `VIP Credential`, `SMS`, `VOICE`, and `Email`.
>
>   If not specified, `VIP Credential` will be used as the default value.                                              | - Error: `VALIDATION_ERROR`                                                                                                                                                           | Initiate credential enrollment process.                                                                                                                                                                 |
> | `continue`                   | This action has no model.                                                                                                                                                                                                   | This action has no errors.                                                                                                                                                            | Continues the current authentication flow.                                                                                                                                                              |
> | `submitSMSCredential`        | * `credentialId`
>
>   The new credential ID (SMS mobile device number) to add.
>
> * `friendlyName`
>
>   The friendly name of the SMS credential.                                                                                  | - Error: `VALIDATION_ERROR`
>
>   ErrorDetail: `SUBMIT_SMS_CREDENTIAL_ERROR`: Error adding SMS credential.                                                                               | Enter your mobile device number. An OTP will be sent to the provided SMS address.When the OTP is presented back for verification, this completes the credential addition process.                       |
> | `submitVoiceCredential`      | * `credentialId`
>
>   The new credential ID (voice mobile device number) to add.
>
> * `friendlyName`
>
>   The friendly name of the voice credential.                                                                              | - Error: `VALIDATION_ERROR`
>
>   ErrorDetail: `SUBMIT_VOICE_CREDENTIAL_ERROR`: Error adding voice credential.                                                                           | Enter your mobile device number. An OTP will be sent to the provided phone number through a voice call.When the OTP is presented back for verification, this completes the credential addition process. |

### Objects

> **Collapse: object**
>
> | Parameter Name           | Type   | Description                                                                      |
> | ------------------------ | ------ | -------------------------------------------------------------------------------- |
> | **numberChallengeValue** | String | If number matching is enabled, this is the number you must enter on the VIP app. |
> | **statusCode**           | String | The status code of the push notification request.                                |
> | **statusMessage**        | String | The status message of the push notification request.                             |

> **Collapse: object**
>
> | Parameter Name            | Type    | Description                                                                                                                                                                                                                                                                                                                                            |
> | ------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
> | **id**                    | String  | The credential ID.                                                                                                                                                                                                                                                                                                                                     |
> | **maskedCredentialId**    | String  | The masked credential ID for display purposes.                                                                                                                                                                                                                                                                                                         |
> | **friendlyName**          | String  | The credential's friendly name.                                                                                                                                                                                                                                                                                                                        |
> | **type**                  | String  | The credential type. Possible values are:- `STANDARD_OTP`
>
> - `SMS_OTP`
>
> - `EMAIL_OTP`
>
> - `VOICE_OTP`                                                                                                                                                                                                                                                   |
> | **authenticationInvoked** | Boolean | Indicates whether authentication with associated credentials has been initiated:- For SMS, voice, and email credentials this means Symantec VIP sent a security code using the respective channel.
>
> - For `STANDARD_OTP` credentials, use the code displayed within the app or approve the push notification if push was initiated for authentication. |
> | **pushEnabled**           | Boolean | Indicates whether the credential is push-enabled.                                                                                                                                                                                                                                                                                                      |

### Error codes

If the call flow state hasn't reached a dead end and the user can still authenticate with a device the PingFederate Authentication API returns an error code.

> **Collapse: Top level error codes**
>
> | Error code          | Message                                                                           | HTTP status |
> | ------------------- | --------------------------------------------------------------------------------- | ----------- |
> | `VALIDATION_ERROR`  | One or more validation errors occurred.                                           | `400`       |
> | `INVALID_ACTION_ID` | A push notification was initiated with no underlying support from the credential. | `400`       |

> **Collapse: Detail level error codes**
>
> | Error code                      | Message                                                                | userMessageKey                                                         | Parent code        |
> | ------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ------------------ |
> | `INVALID_VIP_CREDENTIAL_ID`     | Credential ID isn't valid.                                             | `vip.message.invalid.security.code`                                    | `VALIDATION_ERROR` |
> | `AUTHENTICATION_FAILED`         | Message varies based on the error status code returned by the VIP API. | Various message properties associated with `vip.status.message.*` keys | `VALIDATION_ERROR` |
> | `SUBMIT_EMAIL_CREDENTIAL_ERROR` | Error adding an email credential.                                      |                                                                        | `VALIDATION_ERROR` |
> | `SUBMIT_VIP_CREDENTIAL_ERROR`   | Error adding a credential.                                             |                                                                        | `VALIDATION_ERROR` |
> | `RESET_VIP_CREDENTIAL_ERROR`    | Error resetting a credential.                                          |                                                                        | `VALIDATION_ERROR` |
> | `SUBMIT_SMS_CREDENTIAL_ERROR`   | Error adding an SMS credential.                                        |                                                                        | `VALIDATION_ERROR` |
> | `SUBMIT_VOICE_CREDENTIAL_ERROR` | Error adding a voice credential.                                       |                                                                        | `VALIDATION_ERROR` |
