> For the complete documentation index, see [llms.txt](https://apidocs.d6plus.co.za/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.d6plus.co.za/reference/settings/clients/change-client-integration-state.md).

# Change Client Integration State

## Change the state of the client integration

<mark style="color:purple;">`PATCH`</mark> `https://integrate.d6plus.co.za/api/v1/settings/clients/{school_login_id}`

Use this endpoint to change the state of the integration for a client who has authorised your integration in their d6+ SAMS instance. This state indicates whether you are actively servicing the client or not.

#### Path Parameters

| Name                                                | Type    | Description                                      |
| --------------------------------------------------- | ------- | ------------------------------------------------ |
| school\_login\_id<mark style="color:red;">\*</mark> | Integer | The login ID of the school to retrieve data from |

#### Headers

| Name                                              | Type   | Description       |
| ------------------------------------------------- | ------ | ----------------- |
| HTTP-X-USERNAME<mark style="color:red;">\*</mark> | String | As provided by d6 |
| HTTP-X-PASSWORD<mark style="color:red;">\*</mark> | String | As provided by d6 |

#### Request Body

| Name                                            | Type    | Description                                            |
| ----------------------------------------------- | ------- | ------------------------------------------------------ |
| state<mark style="color:red;">\*</mark>         | Integer | The state you would like to set the integration to     |
| api\_type\_id<mark style="color:red;">\*</mark> | Integer | The api\_type\_id returned by the Get Clients endpoint |

{% tabs %}
{% tab title="200 The request was successful." %}

```json
[]
```

{% endtab %}

{% tab title="404: Not Found The resource was not found." %}

```json
{
    "error": "Not found",
    "error_description": "No client-authorised integrations found"
}
```

{% endtab %}

{% tab title="401: Unauthorized The server understood the request, but access is not allowed." %}

```json
{
    "error": "Unauthorized",
    "error_description": "Client access not authorised for this API type"
}
```

{% endtab %}

{% tab title="500: Internal Server Error The server experienced an error while attempting to perform the requested action." %}

```json
{
    "error": "Internal Server Error",
    "error_description": "Failed to update the integration state"
}
```

{% endtab %}

{% tab title="400: Bad Request The request was invalid. Normally due to missing or malformed parameters." %}

```json
{
    "error": "Bad Request",
    "error_description": "Invalid integration state provided"
}
```

{% endtab %}

{% tab title="204: No Content The request was understood and processed, but no changes were made." %}

```json
[]
```

{% endtab %}
{% endtabs %}

## Examples

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

```php
<?php

const BASE_URL = 'https://integrate.d6plus.co.za/api/v1/settings/clients';
const SCHOOL_LOGIN_ID = '1000';
const API_USERNAME = getenv('API_USERNAME'); // Assuming you have these environment variables set
const API_PASSWORD = getenv('API_PASSWORD');

$data = [
    "api_type_id" => 8,
    "state" => 1
]; 
$jsonData = json_encode($data);

$curl = curl_init();

$query = http_build_query(PARAMS);

$options = [
    CURLOPT_URL => BASE_URL . '/' . SCHOOL_LOGIN_ID,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_CUSTOMREQUEST => 'PATCH',
    CURLOPT_POSTFIELDS => $jsonData,    
    CURLOPT_HTTPHEADER => [
        "HTTP-X-USERNAME: " . API_USERNAME,
        "HTTP-X-PASSWORD: " . API_PASSWORD,
        "Content-Type: application/json",
        "Content-Length: " . strlen($jsonData)        
    ],
];

curl_setopt_array($curl, $options);

$response = curl_exec($curl);

if (curl_errno($curl)) {
    throw new Exception('Curl error: ' . curl_error($curl));
}

curl_close($curl);

echo $response;
```

{% endtab %}

{% tab title="cURL" %}

<pre class="language-bash"><code class="lang-bash"><strong>curl --location --request PATCH 'https://integrate.d6plus.co.za/api/v1/settings/clients/1000' \
</strong>--header 'HTTP-X-USERNAME: YOUR_API_USERNAME' \
--header 'HTTP-X-PASSWORD: YOUR_API_PASSWORD' \
--header 'Content-Type: application/json' \
--data '{"api_type_id": 8, "state": 1}'
</code></pre>

{% endtab %}
{% endtabs %}
