> ## Documentation Index
> Fetch the complete documentation index at: https://docs.predicate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Session Status

> Check the current status of a verification session

Retrieve the current status of a verification session. Use this for polling-based status checks.

<Tabs>
  <Tab title="Individual (KYC)">
    #### Request

    ```bash cURL theme={null}
    curl -X GET "https://api.identity.predicate.io/api/v1/status/individual/550e8400-e29b-41d4-a716-446655440000" \
      -H "Authorization: Bearer $PREDICATE_KYC_API_KEY"
    ```
  </Tab>

  <Tab title="Business (KYB)">
    #### Request

    ```bash cURL theme={null}
    curl -X GET "https://api.identity.predicate.io/api/v1/status/business/550e8400-e29b-41d4-a716-446655440000" \
      -H "Authorization: Bearer $PREDICATE_KYC_API_KEY"
    ```
  </Tab>
</Tabs>

#### Response (Completed)

```json theme={null}
{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "userId": "user-uuid-here",
  "completedAt": "2025-01-21T10:30:00Z",
  "verifiedWallets": [
    { "id": "wallet-uuid-1", "address": "0x1234...", "chain": "ethereum" },
    { "id": "wallet-uuid-2", "address": "0x5678...", "chain": "polygon" }
  ],
  "unverifiedWallets": []
}
```

#### Response (Pending)

```json theme={null}
{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "pending",
  "verifiedWallets": [],
  "unverifiedWallets": [
    { "id": "wallet-uuid", "address": "0x1234...", "chain": "ethereum" }
  ]
}
```

## Endpoint

```
GET https://api.identity.predicate.io/api/v1/status/{type}/{sessionId}
```

## Path Parameters

<ParamField path="type" type="string" required>
  Verification type: `individual` or `business`
</ParamField>

<ParamField path="sessionId" type="string" required>
  The session ID from the registration response (UUID format)
</ParamField>

## Response Fields

<ResponseField name="sessionId" type="string" required>
  The session ID
</ResponseField>

<ResponseField name="status" type="string" required>
  Current status: `pending`, `submitted`, `completed`, `rejected`, or `retry`
</ResponseField>

<ResponseField name="userId" type="string">
  User ID (present when session has an identity)
</ResponseField>

<ResponseField name="completedAt" type="string">
  ISO 8601 timestamp (only present when `completed`)
</ResponseField>

<ResponseField name="verifiedWallets" type="array">
  Wallets connected to this session. Populated when `completed`.
</ResponseField>

<ResponseField name="unverifiedWallets" type="array">
  Wallets connected to this session. Populated when not `completed`.
</ResponseField>

## Status Values

| Status      | Description                                           |
| ----------- | ----------------------------------------------------- |
| `pending`   | Session created, user in verification process         |
| `submitted` | Documents submitted, awaiting manual operator review  |
| `completed` | Verification successful, user is verified             |
| `rejected`  | Verification permanently failed (fraud, sanctions)    |
| `retry`     | Fixable issue (e.g., blurry document), user can retry |

<Warning>
  **Important:** A `submitted` status means documents are under manual review. The wallet is **not** verified until status becomes `completed`.
</Warning>

## Authentication

```
Authorization: Bearer YOUR_API_KEY
```
