# First IDentity integration

From sandbox setup through capture, webhook acknowledgement, and interpreting results.

## Scope and provenance

- Product: identity
- Status: Authored integration guide derived from linked IDentity references. Expected outcomes are checks to perform, not live verification.
- SDK version: Not declared for this page. Versions in examples must not be assumed current.
- Environment: Sandbox; match all credentials and endpoints to that environment.
- Source: Authored guidance; follow the source links in the body.
- Imported at: Not an imported page.
- Canonical page: https://docs.idmission.com/identity/first-integration
- Agent index: https://docs.idmission.com/llms.txt

---

<a id="prepare"></a>[]()

<a id="prepare-your-sandbox"></a>

## Prepare your sandbox

Start with credentials for the right environment.

Obtain access to the IDentity Portal. From Downloads, generate Sandbox Testing Credentials. Choose the service your integration needs before building its request.

**Expected outcome:** You have sandbox credentials and the input schema for your selected service.

**Troubleshooting:** Missing access? Contact your IDmission customer success team.

[Read the setup guide](https://docs.idmission.com/markdown/reference/getting-started-with-api.md)

<a id="connect"></a>[]()

<a id="connect-your-integration"></a>

## Connect your integration

Keep credentials on your server.

Use the authentication and request requirements for your selected IDentity API service. Match credentials, endpoints, and product configuration to the same environment.

**Expected outcome:** Your backend can make an authenticated request to the selected service.

**Troubleshooting:** Request rejected? Check the environment and required fields in the service reference.

[Find your service contract](https://docs.idmission.com/markdown/reference/api-services.md)

<a id="submit"></a>[]()

<a id="capture--submit"></a>

## Capture & submit

Collect the inputs your service expects.

Choose the appropriate SDK capture guide, or use existing capture inputs with the direct API. Submit the selected service’s required data and images. Preserve the identifiers returned for the submission.

**Expected outcome:** You have a submission response and the identifiers needed to correlate the later result.

**Troubleshooting:** A successful submission is not automatically an approved identity result.

[Choose your capture approach](https://docs.idmission.com/markdown/reference/api-overview.md)

<a id="webhook"></a>[]()

<a id="receive-the-webhook"></a>

## Receive the webhook

Bring the result back to your application.

Register your callback URL under My Account → Account Settings for the correct environment. Set POST_Data_API_Required to Y in the original API request.

Abbreviated, synthetic result · JSON

```json
{
  "Form_Status": "Approved",
  "Form_Id": "example-form-id",
  "Form_Data": {
    "Form_State_Code": "00"
  }
}
```

**Expected outcome:** Your receiver gets the result for the same Form_Id returned by the original API response.

**Troubleshooting:** No delivery? Check the callback URL, environment, and original request flag.

[Open the webhook reference](https://docs.idmission.com/markdown/reference/post-processing-api.md)

<a id="acknowledge"></a>[]()

<a id="acknowledge-receipt"></a>

## Acknowledge receipt

Respond using the IDentity contract.

The legacy reference specifies HTTP 200 and shows the acknowledgement below. Implement your application’s handling around this contract; confirm delivery and security requirements with your IDmission team.

Acknowledgement · HTTP 200

```json
{
  "status_code": 0,
  "status_message": "Success"
}
```

**Expected outcome:** Your receiver returns HTTP 200 with the documented acknowledgement body.

**Troubleshooting:** The legacy reference does not specify retry timing or signature verification. Do not assume ONBO’s rules apply.

[Read acknowledgement requirements](https://docs.idmission.com/markdown/reference/post-processing-api.md#post-api-expected-acknowledgement-response)

<a id="results"></a>[]()

<a id="interpret-the-result"></a>

## Interpret the result

Turn a form state into the right next step.

Read Form_Status together with Form_Data.Form_State_Code. Keep codes as strings. Distinguish processing, manual review, and result states before your application decides what happens next.

**Expected outcome:** Your application handles pending work, manual review, and completed outcomes separately.

**Troubleshooting:** Pending Review is not a final decision. Consult the separate review-state reference.

[Explore final & processing states](https://docs.idmission.com/markdown/reference/final-states.md)
