> For the complete documentation index, see [llms.txt](https://docs.vida.id/identity-stack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vida.id/identity-stack/authentication/authentication-factors/password-api/api-reference/password-completion.md).

# Password - Completion

## **Provisioning Completion API**

The Password Provisioning Completion API serves as the second step in the password provisioning process. The user submits the password they have chosen, along with any required information, to the server. Upon successful verification, the server responds with a JSON Web Token (JWT) containing the newly provisioned credential ID.

### API  Description

**Method** : POST

**URL** : Follow up url received as part of the response of the Transaction Initiation API

#### Parameters

| Name                                         | Type   | Description                                         |
| -------------------------------------------- | ------ | --------------------------------------------------- |
| client\_id<mark style="color:red;">\*</mark> | String | A unique client id that is shared for each partner. |
| password<mark style="color:red;">\*</mark>   | String | password to be used for the authentication          |

#### Headers

| Name                                            | Type   | Description                                                     |
| ----------------------------------------------- | ------ | --------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer {Bearer Token Received in    Transaction Initiation API} |
| Content-Type                                    | String | application/x-www-form-urlencoded                               |

{% tabs %}
{% tab title="200: OK " %}

```json
{
    "entity": {
        "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJYbnNBNFVPdlkyU0JLSkdnX1ppTHN1Tk8tZ2dlLVB0RXZzX2twRTBhd3RnIn0.eyJleHAiOjE3MDMwNjI3OTIsIm5iZiI6MTcwMzA2MjQ5MiwiaWF0IjoxNzAzMDYyNDkyLCJhdXRoX3RpbWUiOjE3MDMwNjI0OTIsImp0aSI6IjVmZDVjMTRiLTFlNzQtNGE5NS1iZDZhLTA4YWZmOWIxYzNhNCIsImlzcyI6Imh0dHBzOi8va2V5Y2xvYWsuYXV0aC1zdGFnZS52aWRhLmlkL3JlYWxtcy9zcHJpbmdib290LXF1aWNrc3RhcnQiLCJzdWIiOiJkMmIzYjc4Yi0yYmE1LTQ0MjAtYTZmOC02MDFhODJhNGVmYjQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhcGkiLCJzZXNzaW9uX3N0YXRlIjoiNTRlYzQ0YzAtODQ5NS00MjEwLTljZDktMzhkNmQwMDQ4Yzg3Iiwic2NvcGUiOiIiLCJzaWQiOiI1NGVjNDRjMC04NDk1LTQyMTAtOWNkOS0zOGQ2ZDAwNDhjODciLCJzZXNzaW9uX2lkZW50aWZpZXIiOiJEeWhHZktGRHF5ayIsInR5cGUiOiJwYXNzd29yZCIsImNyZWRlbnRpYWxfaWQiOiI5Zjk1NGEyYi1mMDEwLTRhZWUtODE3MC0zODhiYjMwZTBlODgifQ.Il6wv47FF2ToovYx-4zXCxTyyCn006ZAXLvzSFcvxXsuBdoFDrajDkoWpd-OUS7ks2tvevNh1-Zz4JoZigfHVOjuMPHQma7tkeqdZ-nyhoiFqDyVxggykLsJyNZNrZoIUn3ROT42Qidp-b2nABSpzWqgEg_FclSbb5Fgdqy9v7F3Inq03Cu4qNxAdNOAm9Ekt-PqPB73RYUePaBok3mfJROzqKgAUAfbEr7YJaa-PdqGeubh3Cg2UQbkBgkvPdvN47fww7D3V4NtKvtdTZOq9nAwLbbcCh5dtZwf4jQ3o7En2nmGeL5C5LBFPI6dnOgjFcQM3-BPE6nONVl4tCXH3w",
        "accessExpiresIn": 300,
        "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjFhZGYyZS03NWU2LTQ5Y2UtOWYwZi00ZDEwNjE0MDA4NGEifQ.eyJleHAiOjE3MDMwNjQyOTIsImlhdCI6MTcwMzA2MjQ5MiwianRpIjoiNmM4YjYzOTMtMmNjNC00MDZhLTg2NzktM2IwNWVjY2RkMDA2IiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5hdXRoLXN0YWdlLnZpZGEuaWQvcmVhbG1zL3NwcmluZ2Jvb3QtcXVpY2tzdGFydCIsImF1ZCI6Imh0dHBzOi8va2V5Y2xvYWsuYXV0aC1zdGFnZS52aWRhLmlkL3JlYWxtcy9zcHJpbmdib290LXF1aWNrc3RhcnQiLCJzdWIiOiJkMmIzYjc4Yi0yYmE1LTQ0MjAtYTZmOC02MDFhODJhNGVmYjQiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiYXBpIiwic2Vzc2lvbl9zdGF0ZSI6IjU0ZWM0NGMwLTg0OTUtNDIxMC05Y2Q5LTM4ZDZkMDA0OGM4NyIsInNjb3BlIjoiIiwic2lkIjoiNTRlYzQ0YzAtODQ5NS00MjEwLTljZDktMzhkNmQwMDQ4Yzg3In0.xIZOQKLso47dD-g1-t4n2gxs8zqW40LLDsNyLnkOrso",
        "refreshExpiresIn": 1800,
        "authType": "password"
    },
    "uri": "https://{environment-url}/realms/{partner-id}/protocol/api/required-action",
    "bearerToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1NGVjNDRjMC04NDk1LTQyMTAtOWNkOS0zOGQ2ZDAwNDhjODciLCJleGVjdXRpb24iOiJ2aWRhLXBhc3N3b3JkLXJlZ2lzdGVyIiwidGFiX2lkIjoiRHloR2ZLRkRxeWsiLCJuYmYiOjE3MDMwNjI0OTIsInNlc3Npb25fY29kZSI6InRrWFJkQmJ4UE1UYVcyRk9laGo2VVVVVk5oYWhma2RTOXltWE1ZMExxbGsiLCJzZXNzaW9uX2lkZW50aWZpZXIiOiJEeWhHZktGRHF5ayIsImV4cCI6MTcwMzA2Mjc5MiwiaWF0IjoxNzAzMDYyNDkyLCJhdXRoX3Nlc3Npb25faWQiOiI1NGVjNDRjMC04NDk1LTQyMTAtOWNkOS0zOGQ2ZDAwNDhjODciLCJqdGkiOiI2N2IzYjIyYy0yODM0LTQ4OWYtYmUwYi1hNzM5Yjg4MDMwNWEifQ.466-r_jCinFdkvz_blqAGQFLS08Vpxu0B9uqicq_NRI",
    "authType": "password"
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Curl" %}

```http
curl --location -g --request POST '{{FOLLOW UP URI RECEIVED AS PART OF THE TRANSACTION INITIATION REQUEST}}' \
--header 'Authorization: Bearer <Bearer Token>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'password=156088' \
--data-urlencode 'client_id=<client_id>'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "{{FOLLOW UP URI RECEIVED AS PART OF THE TRANSACTION INITIATION REQUEST}}"

payload='password=156088&client_id=%3Cclient_id%3E'
headers = {
  'Authorization': 'Bearer <Bearer Token>',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

{% endtab %}

{% tab title="NodeJS" %}

```javascript
var axios = require('axios');
var qs = require('qs');
var data = qs.stringify({
  'password': '156088',
  'client_id': '<client_id>' 
});
var config = {
  method: 'post',
  url: '{{FOLLOW UP URI RECEIVED AS PART OF THE TRANSACTION INITIATION REQUEST}}',
  headers: { 
    'Authorization': 'Bearer <Bearer Token>', 
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
```

{% endtab %}

{% tab title="Java" %}

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "password=156088&client_id=<client_id>");
Request request = new Request.Builder()
  .url("{{FOLLOW UP URI RECEIVED AS PART OF THE TRANSACTION INITIATION REQUEST}}")
  .method("POST", body)
  .addHeader("Authorization", "Bearer <Bearer Token>")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
```

{% endtab %}

{% tab title="C#" %}

```csharp
var client = new RestClient("{{FOLLOW UP URI RECEIVED AS PART OF THE TRANSACTION INITIATION REQUEST}}");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <Bearer Token>");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("password", "156088");
request.AddParameter("client_id", "<client_id>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '%7B%7BFOLLOW%20UP%20URI%20RECEIVED%20AS%20PART%20OF%20THE%20TRANSACTION%20INITIATION%20REQUEST%7D%7D',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'password=156088&client_id=%3Cclient_id%3E',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <Bearer Token>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
```

{% endtab %}
{% endtabs %}

### Success Response

```json
{
    "entity": {
        "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJYbnNBNFVPdlkyU0JLSkdnX1ppTHN1Tk8tZ2dlLVB0RXZzX2twRTBhd3RnIn0.eyJleHAiOjE3MDMwNjI3OTIsIm5iZiI6MTcwMzA2MjQ5MiwiaWF0IjoxNzAzMDYyNDkyLCJhdXRoX3RpbWUiOjE3MDMwNjI0OTIsImp0aSI6IjVmZDVjMTRiLTFlNzQtNGE5NS1iZDZhLTA4YWZmOWIxYzNhNCIsImlzcyI6Imh0dHBzOi8va2V5Y2xvYWsuYXV0aC1zdGFnZS52aWRhLmlkL3JlYWxtcy9zcHJpbmdib290LXF1aWNrc3RhcnQiLCJzdWIiOiJkMmIzYjc4Yi0yYmE1LTQ0MjAtYTZmOC02MDFhODJhNGVmYjQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhcGkiLCJzZXNzaW9uX3N0YXRlIjoiNTRlYzQ0YzAtODQ5NS00MjEwLTljZDktMzhkNmQwMDQ4Yzg3Iiwic2NvcGUiOiIiLCJzaWQiOiI1NGVjNDRjMC04NDk1LTQyMTAtOWNkOS0zOGQ2ZDAwNDhjODciLCJzZXNzaW9uX2lkZW50aWZpZXIiOiJEeWhHZktGRHF5ayIsInR5cGUiOiJwYXNzd29yZCIsImNyZWRlbnRpYWxfaWQiOiI5Zjk1NGEyYi1mMDEwLTRhZWUtODE3MC0zODhiYjMwZTBlODgifQ.Il6wv47FF2ToovYx-4zXCxTyyCn006ZAXLvzSFcvxXsuBdoFDrajDkoWpd-OUS7ks2tvevNh1-Zz4JoZigfHVOjuMPHQma7tkeqdZ-nyhoiFqDyVxggykLsJyNZNrZoIUn3ROT42Qidp-b2nABSpzWqgEg_FclSbb5Fgdqy9v7F3Inq03Cu4qNxAdNOAm9Ekt-PqPB73RYUePaBok3mfJROzqKgAUAfbEr7YJaa-PdqGeubh3Cg2UQbkBgkvPdvN47fww7D3V4NtKvtdTZOq9nAwLbbcCh5dtZwf4jQ3o7En2nmGeL5C5LBFPI6dnOgjFcQM3-BPE6nONVl4tCXH3w",
        "accessExpiresIn": 300,
        "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjFhZGYyZS03NWU2LTQ5Y2UtOWYwZi00ZDEwNjE0MDA4NGEifQ.eyJleHAiOjE3MDMwNjQyOTIsImlhdCI6MTcwMzA2MjQ5MiwianRpIjoiNmM4YjYzOTMtMmNjNC00MDZhLTg2NzktM2IwNWVjY2RkMDA2IiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5hdXRoLXN0YWdlLnZpZGEuaWQvcmVhbG1zL3NwcmluZ2Jvb3QtcXVpY2tzdGFydCIsImF1ZCI6Imh0dHBzOi8va2V5Y2xvYWsuYXV0aC1zdGFnZS52aWRhLmlkL3JlYWxtcy9zcHJpbmdib290LXF1aWNrc3RhcnQiLCJzdWIiOiJkMmIzYjc4Yi0yYmE1LTQ0MjAtYTZmOC02MDFhODJhNGVmYjQiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiYXBpIiwic2Vzc2lvbl9zdGF0ZSI6IjU0ZWM0NGMwLTg0OTUtNDIxMC05Y2Q5LTM4ZDZkMDA0OGM4NyIsInNjb3BlIjoiIiwic2lkIjoiNTRlYzQ0YzAtODQ5NS00MjEwLTljZDktMzhkNmQwMDQ4Yzg3In0.xIZOQKLso47dD-g1-t4n2gxs8zqW40LLDsNyLnkOrso",
        "refreshExpiresIn": 1800,
        "authType": "password"
    },
    "uri": "https://{environment-url}/realms/{partner-id}/protocol/api/required-action",
    "bearerToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1NGVjNDRjMC04NDk1LTQyMTAtOWNkOS0zOGQ2ZDAwNDhjODciLCJleGVjdXRpb24iOiJ2aWRhLXBhc3N3b3JkLXJlZ2lzdGVyIiwidGFiX2lkIjoiRHloR2ZLRkRxeWsiLCJuYmYiOjE3MDMwNjI0OTIsInNlc3Npb25fY29kZSI6InRrWFJkQmJ4UE1UYVcyRk9laGo2VVVVVk5oYWhma2RTOXltWE1ZMExxbGsiLCJzZXNzaW9uX2lkZW50aWZpZXIiOiJEeWhHZktGRHF5ayIsImV4cCI6MTcwMzA2Mjc5MiwiaWF0IjoxNzAzMDYyNDkyLCJhdXRoX3Nlc3Npb25faWQiOiI1NGVjNDRjMC04NDk1LTQyMTAtOWNkOS0zOGQ2ZDAwNDhjODciLCJqdGkiOiI2N2IzYjIyYy0yODM0LTQ4OWYtYmUwYi1hNzM5Yjg4MDMwNWEifQ.466-r_jCinFdkvz_blqAGQFLS08Vpxu0B9uqicq_NRI",
    "authType": "password"
}
```

### Error Response

```json
{
    "error": "invalid_request",
    "errorDescription": "Client ID invalid"
}
```

Response Schema

```json
{
    "error": "{TYPE OF ERROR}",
    "errorDescription": "{REASONING FOR THE ERROR}"
}
```

For a complete list of error codes and their meanings, refer to the [Error Scenarios](broken://pages/CX6b1aDnL7RxltODUyu8) section.

## **Password Authentication Completion API**

The Password Authentication API is used for completing the user authentication process for a transaction. After initiating a request for authentication, the server responds with a session ID, bearer token, and a challenge. To finalize the transaction, the user responds to this challenge by submitting the password they have chosen. The API then validates this password against the credential stored during the provisioning phase.

### API  Description

**Method** : POST

**URL** : Follow up url received as part of the response of the [Transaction Initiation API](broken://pages/vMrV1MIpbiyLcXOoyly8#password-authentication-api)

#### Parameters

| Name                                         | Type   | Description                                         |
| -------------------------------------------- | ------ | --------------------------------------------------- |
| client\_id<mark style="color:red;">\*</mark> | String | A unique client id that is shared for each partner. |
| password                                     | String | Password to be used for the authentication          |

#### Headers

| Name          | Type   | Description                                                     |
| ------------- | ------ | --------------------------------------------------------------- |
| Authorization | String | Bearer {Bearer Token Received in    Transaction Initiation API} |
| Content-Type  | String | application/x-www-form-urlencoded                               |

{% tabs %}
{% tab title="200: OK " %}

```json
{
    "entity": {
        "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJYbnNBNFVPdlkyU0JLSkdnX1ppTHN1Tk8tZ2dlLVB0RXZzX2twRTBhd3RnIn0.eyJleHAiOjE3MDMwNjQxOTQsIm5iZiI6MTcwMzA2Mzg5NCwiaWF0IjoxNzAzMDYzODk0LCJhdXRoX3RpbWUiOjE3MDMwNjM4OTQsImp0aSI6IjY4NzNiOGZjLTRlMDMtNGFkMy05ZDUxLWVkMzNkNjM2MDY1NiIsImlzcyI6Imh0dHBzOi8va2V5Y2xvYWsuYXV0aC1zdGFnZS52aWRhLmlkL3JlYWxtcy9zcHJpbmdib290LXF1aWNrc3RhcnQiLCJzdWIiOiJkMmIzYjc4Yi0yYmE1LTQ0MjAtYTZmOC02MDFhODJhNGVmYjQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhcGkiLCJzZXNzaW9uX3N0YXRlIjoiMTVmMjQxYzEtMjk0Mi00YmU3LTk3ZWEtYWUxZTRkZjU4YjM2Iiwic2NvcGUiOiIiLCJzaWQiOiIxNWYyNDFjMS0yOTQyLTRiZTctOTdlYS1hZTFlNGRmNThiMzYiLCJzZXNzaW9uX2lkZW50aWZpZXIiOiJEWXVTWF9HamhMcyIsInR5cGUiOiJwYXNzd29yZCIsImNyZWRlbnRpYWxfaWQiOiI5Zjk1NGEyYi1mMDEwLTRhZWUtODE3MC0zODhiYjMwZTBlODgifQ.CxIEuWFou05xU9eIzo7LhBL8ChyLS6B_q_kB0gkQygH28X3kyV9KjxN2W1Fg9rr30tVdZhys46Gd9YS4-X2i286rD9pXq6ZlupdZBKE9YnAJ_GXntQVq1ZyykqVBa-gv2aqUME3zvMA3EJyRpDscLjKlZ1Ock3aReD3E8Jo6xOwtsVTEqx22QxiThMtPtlFPOXFS1YgkyUWGqbvSZVHL2ijer-OSn7eoCaZLjTKfJqbC6BIhhtvpAsq0r5fr09k9a2_6nO_TZJXd9n7gvimqat4jdilyYS8SKV__DVXKizzkazXj-GrP_c00jBKge9jI7OM_QCGnDPGE6rPGnutfFw",
        "accessExpiresIn": 300,
        "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjFhZGYyZS03NWU2LTQ5Y2UtOWYwZi00ZDEwNjE0MDA4NGEifQ.eyJleHAiOjE3MDMwNjU2OTQsImlhdCI6MTcwMzA2Mzg5NCwianRpIjoiMjg0NjdhMTMtYjI3NS00ZmNhLTlhNjgtNmEzYzA0MDM0NDIwIiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5hdXRoLXN0YWdlLnZpZGEuaWQvcmVhbG1zL3NwcmluZ2Jvb3QtcXVpY2tzdGFydCIsImF1ZCI6Imh0dHBzOi8va2V5Y2xvYWsuYXV0aC1zdGFnZS52aWRhLmlkL3JlYWxtcy9zcHJpbmdib290LXF1aWNrc3RhcnQiLCJzdWIiOiJkMmIzYjc4Yi0yYmE1LTQ0MjAtYTZmOC02MDFhODJhNGVmYjQiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiYXBpIiwic2Vzc2lvbl9zdGF0ZSI6IjE1ZjI0MWMxLTI5NDItNGJlNy05N2VhLWFlMWU0ZGY1OGIzNiIsInNjb3BlIjoiIiwic2lkIjoiMTVmMjQxYzEtMjk0Mi00YmU3LTk3ZWEtYWUxZTRkZjU4YjM2In0.2rleNOGvsJfrYE_Eg48xhpNYu4y8fH5reibrvrtZS80",
        "refreshExpiresIn": 1800,
        "authType": "password"
    },
    "uri": "https://{environment-url}/realms/{partner-id}/protocol/api/authenticate",
    "bearerToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNWYyNDFjMS0yOTQyLTRiZTctOTdlYS1hZTFlNGRmNThiMzYiLCJleGVjdXRpb24iOm51bGwsInRhYl9pZCI6IkRZdVNYX0dqaExzIiwibmJmIjoxNzAzMDYzODk0LCJzZXNzaW9uX2NvZGUiOiJuYmk1WGRSb2Q5QW1SRTBfT09JaTRpRldUdXZyeWRYMFpMbHJmQUR5MXlzIiwic2Vzc2lvbl9pZGVudGlmaWVyIjoiRFl1U1hfR2poTHMiLCJleHAiOjE3MDMwNjQxOTQsImlhdCI6MTcwMzA2Mzg5NCwiYXV0aF9zZXNzaW9uX2lkIjoiMTVmMjQxYzEtMjk0Mi00YmU3LTk3ZWEtYWUxZTRkZjU4YjM2IiwianRpIjoiYTA1ZjAyNDktYjc1ZC00MzYxLThiYjctMmFkMTI5YTUzNGEwIn0.ikQjm2qwo1li55ri_-xL7RAsxUqjw_OcY9XwSlkgoQY",
    "authType": "password"
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Curl" %}

```http
curl --location --request GET 'https://{environment-url}/realms/{partner-id}/protocol/api/init?type=password&client_id=api&client_secret=enESfot4PPpSWxTa74vR8D9nrW4UTtT3'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://{environment-url}/realms/{partner-id}/protocol/api/init?type=password&client_id=api&client_secret=enESfot4PPpSWxTa74vR8D9nrW4UTtT3"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
```

{% endtab %}

{% tab title="NodeJS" %}

```javascript
var axios = require('axios');

var config = {
  method: 'get',
  url: 'https://{environment-url}/realms/{partner-id}/protocol/api/init?type=password&client_id=api&client_secret=enESfot4PPpSWxTa74vR8D9nrW4UTtT3',
  headers: { }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
```

{% endtab %}

{% tab title="Java" %}

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://{environment-url}/realms/{partner-id}/protocol/api/init?type=password&client_id=api&client_secret=enESfot4PPpSWxTa74vR8D9nrW4UTtT3")
  .method("GET", body)
  .build();
Response response = client.newCall(request).execute();
```

{% endtab %}

{% tab title="C#" %}

```csharp
var client = new RestClient("https://{environment-url}/realms/{partner-id}/protocol/api/init?type=password&client_id=api&client_secret=enESfot4PPpSWxTa74vR8D9nrW4UTtT3");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://{environment-url}/realms/{partner-id}/protocol/api/init?type=password&client_id=api&client_secret=enESfot4PPpSWxTa74vR8D9nrW4UTtT3',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
```

{% endtab %}
{% endtabs %}

### Success Response

```json
{
    "entity": {
        "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJYbnNBNFVPdlkyU0JLSkdnX1ppTHN1Tk8tZ2dlLVB0RXZzX2twRTBhd3RnIn0.eyJleHAiOjE3MDMwNjQxOTQsIm5iZiI6MTcwMzA2Mzg5NCwiaWF0IjoxNzAzMDYzODk0LCJhdXRoX3RpbWUiOjE3MDMwNjM4OTQsImp0aSI6IjY4NzNiOGZjLTRlMDMtNGFkMy05ZDUxLWVkMzNkNjM2MDY1NiIsImlzcyI6Imh0dHBzOi8va2V5Y2xvYWsuYXV0aC1zdGFnZS52aWRhLmlkL3JlYWxtcy9zcHJpbmdib290LXF1aWNrc3RhcnQiLCJzdWIiOiJkMmIzYjc4Yi0yYmE1LTQ0MjAtYTZmOC02MDFhODJhNGVmYjQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhcGkiLCJzZXNzaW9uX3N0YXRlIjoiMTVmMjQxYzEtMjk0Mi00YmU3LTk3ZWEtYWUxZTRkZjU4YjM2Iiwic2NvcGUiOiIiLCJzaWQiOiIxNWYyNDFjMS0yOTQyLTRiZTctOTdlYS1hZTFlNGRmNThiMzYiLCJzZXNzaW9uX2lkZW50aWZpZXIiOiJEWXVTWF9HamhMcyIsInR5cGUiOiJwYXNzd29yZCIsImNyZWRlbnRpYWxfaWQiOiI5Zjk1NGEyYi1mMDEwLTRhZWUtODE3MC0zODhiYjMwZTBlODgifQ.CxIEuWFou05xU9eIzo7LhBL8ChyLS6B_q_kB0gkQygH28X3kyV9KjxN2W1Fg9rr30tVdZhys46Gd9YS4-X2i286rD9pXq6ZlupdZBKE9YnAJ_GXntQVq1ZyykqVBa-gv2aqUME3zvMA3EJyRpDscLjKlZ1Ock3aReD3E8Jo6xOwtsVTEqx22QxiThMtPtlFPOXFS1YgkyUWGqbvSZVHL2ijer-OSn7eoCaZLjTKfJqbC6BIhhtvpAsq0r5fr09k9a2_6nO_TZJXd9n7gvimqat4jdilyYS8SKV__DVXKizzkazXj-GrP_c00jBKge9jI7OM_QCGnDPGE6rPGnutfFw",
        "accessExpiresIn": 300,
        "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjFhZGYyZS03NWU2LTQ5Y2UtOWYwZi00ZDEwNjE0MDA4NGEifQ.eyJleHAiOjE3MDMwNjU2OTQsImlhdCI6MTcwMzA2Mzg5NCwianRpIjoiMjg0NjdhMTMtYjI3NS00ZmNhLTlhNjgtNmEzYzA0MDM0NDIwIiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5hdXRoLXN0YWdlLnZpZGEuaWQvcmVhbG1zL3NwcmluZ2Jvb3QtcXVpY2tzdGFydCIsImF1ZCI6Imh0dHBzOi8va2V5Y2xvYWsuYXV0aC1zdGFnZS52aWRhLmlkL3JlYWxtcy9zcHJpbmdib290LXF1aWNrc3RhcnQiLCJzdWIiOiJkMmIzYjc4Yi0yYmE1LTQ0MjAtYTZmOC02MDFhODJhNGVmYjQiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiYXBpIiwic2Vzc2lvbl9zdGF0ZSI6IjE1ZjI0MWMxLTI5NDItNGJlNy05N2VhLWFlMWU0ZGY1OGIzNiIsInNjb3BlIjoiIiwic2lkIjoiMTVmMjQxYzEtMjk0Mi00YmU3LTk3ZWEtYWUxZTRkZjU4YjM2In0.2rleNOGvsJfrYE_Eg48xhpNYu4y8fH5reibrvrtZS80",
        "refreshExpiresIn": 1800,
        "authType": "password"
    },
    "uri": "https://{environment-url}/realms/{partner-id}/protocol/api/authenticate",
    "bearerToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNWYyNDFjMS0yOTQyLTRiZTctOTdlYS1hZTFlNGRmNThiMzYiLCJleGVjdXRpb24iOm51bGwsInRhYl9pZCI6IkRZdVNYX0dqaExzIiwibmJmIjoxNzAzMDYzODk0LCJzZXNzaW9uX2NvZGUiOiJuYmk1WGRSb2Q5QW1SRTBfT09JaTRpRldUdXZyeWRYMFpMbHJmQUR5MXlzIiwic2Vzc2lvbl9pZGVudGlmaWVyIjoiRFl1U1hfR2poTHMiLCJleHAiOjE3MDMwNjQxOTQsImlhdCI6MTcwMzA2Mzg5NCwiYXV0aF9zZXNzaW9uX2lkIjoiMTVmMjQxYzEtMjk0Mi00YmU3LTk3ZWEtYWUxZTRkZjU4YjM2IiwianRpIjoiYTA1ZjAyNDktYjc1ZC00MzYxLThiYjctMmFkMTI5YTUzNGEwIn0.ikQjm2qwo1li55ri_-xL7RAsxUqjw_OcY9XwSlkgoQY",
    "authType": "password"
}
```

### Error Response

```json
{
    "error": "invalid_user_credentials",
    "errorDescription": "Unauthorized"
}
```

Response Schema

```json
{
    "error": "{TYPE OF ERROR}",
    "errorDescription": "{REASONING FOR THE ERROR}"
}
```

For a complete list of error codes and their meanings, refer to the [Error Scenarios](broken://pages/CX6b1aDnL7RxltODUyu8) section.
