# Custom Integrations

Custom integrations connect Incode to any system that does not have a dedicated pre-built connector. They are designed for organizations that want to integrate identity verification into internal tools, custom-built applications, ticketing systems, automation pipelines, or any workflow that can be reached through API or standard authentication protocols.

All custom integration types follow the same data model and are managed from the Integrations page in Dashboard.

<IntegrationsEnablement />

***

## Integration Mechanisms

You must choose one of these mechanisms to build a custom integration:

- **OIDC**: Use the OIDC mechanism to connect any system that supports the OpenID Connect protocol. Incode acts as the identity provider, issuing a signed ID token after a successful verification session. This is the right choice for applications that already use OIDC for authentication.
  > 📘 Note
  >
  > The OIDC integration type is also used under the hood by the Okta IDP Authenticator and similar IAM configurations. See [Incode IDP Integration with Okta](https://developer.incode.com/docs/okta-idp) for details.
- **API**: Use the API mechanism to trigger identity verification sessions from any system using the [Request New Onboarding API](https://developer.incode.com/docs/b2b-request-new-onboarding-api). This is the most flexible option and works with anything that can make an HTTP request: ticketing systems, automation tools, custom applications, and more.

### Set Up an OIDC Integration

1. Log in to Dashboard.
2. In the left menu, click **Integrations**.
3. Click **New Integration**.
4. From the **Custom&#x20;**&#x74;ab, click **OIDC**, then click **Continue**.
5. Enter a **Name** for this integration. This name appears in analytics and identifies verifications completed through this integration.
6. Configure the **Redirect URI**. This is the endpoint in your system that Incode will redirect to after verification is complete.
7. **Select a Workflow for this Integration&#x20;**&#x66;rom the drop-down.
8. Click **Save**. A client ID and client secret are generated for your integration.

### Set Up an API Integration

1. Log in to Dashboard.
2. In the left menu, click **Integrations**.
3. From the **Custom** tab, click **API**, then click **Continue**.
4. Enter a **Name** for this integration. This name appears in analytics and identifies verifications completed through this integration.
5. Optionally, enter a **Redirect URL** to send users to after verification is complete.
6. **Select a Workflow for this Integration&#x20;**&#x66;rom the drop-down.
7. Click **Save**. An integration ID is generated for use in API requests.

**Use an API Integration**

1. Call the [Request New Onboarding API](https://developer.incode.com/docs/b2b-request-new-onboarding-api) with your Integration ID to generate a unique verification link for a user. The API returns a URL you can deliver via email, SMS, or embed in your system.
2. Share the verification URL with the user. The user clicks the link to begin the verification process.
3. Listen for webhook notifications at the endpoint configured in **Dashboard** > **Configuration** > **Webhooks**. The relevant events are `SESSION_STARTED`, `SESSION_SUCCEEDED`, `SESSION_FAILED`, and `SESSION_PENDING_REVIEW`. See [Session Webhooks](https://developer.incode.com/docs/session-webhooks) for full payload documentation.

### Client Credentials

A Client Credentials integration is created automatically for organizations with Integrations Ecosystem enabled. It appears under **Integrations** > **Custom** > **OIDC Client Credentials** and is used to authenticate API requests to Incode using OAuth 2.0. On first use, generate a client secret. It is shown only once, so store it securely. See [Find Integration Details](https://developer.incode.com/docs/manage-integrations#find-integration-details) for instructions.

***

## Available Purpose-Built Integrations

The following integrations are pre-configured use cases built on top of the OIDC or API mechanisms above. Each has its own setup page.

<CustomIntegrations />

<br />

<br />
