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

# Provider Activation Flow

> Understand the activation flow for bringing eID providers live in sandbox and production.

Each provider must go through an activation flow before it can process verifications. The required steps depend on your environment and the specific provider.

Call [Get Activation Steps](/api-reference/workspace/activation/get-activation-steps) at any point to retrieve the exact step sequence and current progress. The response contains a `steps` array — each object has a `type` field (e.g., `enable`, `activation-form`) that tells you which step it is, and `currentStepIndex` tells you where you are in the sequence.

## Sandbox Quick Start

In **sandbox**, activation is the same for all providers — just enable the provider and it is immediately activated. No activation form or additional steps are needed.

```bash theme={null}
# 1. Enable the provider
curl -X PATCH \
  -H "Authorization: Bearer sk_workspace_test_..." \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}' \
  "https://sandbox.api.hopae.com/connect/v1/apps/abc123/providers/spid-ig/activation"

# Response: { "providerId": "spid-ig", "enabled": true, "currentStep": "activated" }
# Done — the provider is now active in sandbox.
```

## Production Activation

In **production**, additional steps are required depending on the provider. The exact steps are returned by the [Get Activation Steps](/api-reference/workspace/activation/get-activation-steps) endpoint. Below are the common step sequences:

| Steps                                                             | Example providers                                                    |
| ----------------------------------------------------------------- | -------------------------------------------------------------------- |
| `enable` → `activated`                                            | Angola NIN, Ghana Card, Kenya NID, Nigeria NIN, Passport (ICAO 9303) |
| `enable` → `activation-form` → `api-key` → `activated`            | Smart-ID, MitID, BankID SE, ID Austria, Singpass, UAE PASS           |
| `enable` → `activation-form` → `upload` → `api-key` → `activated` | FTN, SPID, iDIN                                                      |

<Note>Step sequences may be updated as providers evolve. Always use [Get Activation Steps](/api-reference/workspace/activation/get-activation-steps) as the source of truth rather than hardcoding the sequences above.</Note>

### Step-by-step walkthrough

#### 1. Check the required steps

Start by calling [Get Activation Steps](/api-reference/workspace/activation/get-activation-steps) to see what the provider requires and where you currently are:

```bash theme={null}
curl -H "Authorization: Bearer sk_workspace_..." \
  "https://api.hopae.com/connect/v1/apps/abc123/providers/spid-ig/activation/steps"
```

The response `state` will be `not_started`, `in_progress`, or `completed`. Use `currentStepIndex` and the `steps[].type` values to determine which step to complete next.

#### 2. Enable the provider

Every provider starts with the `enable` step. Call [Enable Provider](/api-reference/workspace/activation/enable-provider) with `{"enabled": true}`. The response includes `currentStep`, which tells you what to do next.

<Note>Disabling a provider does not reset progress. When you enable it again, the flow resumes from where you left off.</Note>

#### 3. Submit activation form

If the next step is `activation-form`, the step object in [Get Activation Steps](/api-reference/workspace/activation/get-activation-steps) contains a `requiredFields` array with the fields the provider needs, their types, and allowed values. Fill in the fields and submit via [Submit Activation Form](/api-reference/workspace/activation/submit-activation-form).

#### 4. Upload required documents

If the next step is `upload`, the step object in [Get Activation Steps](/api-reference/workspace/activation/get-activation-steps) contains a `documents` array listing each required document (with a `templateUrl` where a template is available) and an `uploaded` array showing what has already been submitted and its review `state`. Submit files via [Upload Activation Documents](/api-reference/workspace/activation/upload-documents). A document whose `state` is `rejected` holds the step at `in_progress` — re-upload a corrected file to clear it.

#### 5. API key issuance

Once all required steps are complete, production API keys are being issued. No action is required — use [Get Activation Steps](/api-reference/workspace/activation/get-activation-steps) to check `state` is `completed`. The provider is then fully activated and ready to process live verifications.

## Step Summary

Each step below corresponds to a `type` value in the `steps` array returned by [Get Activation Steps](/api-reference/workspace/activation/get-activation-steps).

| Step                  | Requires action | What needs to happen                                                                                                                             |
| --------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **`enable`**          | Yes             | Enable the provider. [Enable Provider](/api-reference/workspace/activation/enable-provider)                                                      |
| **`activation-form`** | Yes             | Submit the activation request form with required fields. [Submit Activation Form](/api-reference/workspace/activation/submit-activation-form)    |
| **`upload`**          | Yes             | Upload the documents listed in the step's `documents` array. [Upload Activation Documents](/api-reference/workspace/activation/upload-documents) |
| **`api-key`**         | —               | Production API keys are being issued.                                                                                                            |
| **`activated`**       | —               | Provider is fully activated and ready to go live.                                                                                                |
