Integrate
Integrate v2
Integrate v2
  • Getting Started
    • 🤝Authorisation & Activation
    • 🔗API v2 URL
    • 🔢Versioning
    • 🔐Authentication
    • 🟰Additional Headers
    • 🆗Response Status Codes
    • 🛑Rate Limiting
    • ⁉️Errors and Bad Requests
    • 📖Pagination
    • ⏭️Upgrading to v2
  • Reference
    • Settings
      • Client Integrations
        • Get Client Integrations
        • Change Client Integration State
    • Finance+
      • Debt Management
        • Debtor Notes
          • Get Communication Type(s)
          • Get Note Type(s)
          • Get Note(s)
          • Create Note
          • Update Note
          • Delete Note
          • Get Promise To Pay Record(s)
          • Delete Promise To Pay
        • Age Analysis Report
        • Financial Transactions Report
        • Get Schools
        • Get Accountable Person(s)
        • Get Learner(s)
        • Get Transaction Type(s)
        • Get Transaction Category(s)
Powered by GitBook
On this page
  • Pagination
  • Request Headers
  • Query Parameters
  • Response Examples
  • Code Samples
  1. Reference
  2. Settings
  3. Client Integrations

Get Client Integrations

GET /v2/settings/clientintegrations

This endpoint retrieves a list of client integrations, representing schools that have authorized your integration in their d6+ SAMS instance.

Each record in the response corresponds to a unique client/API type combination, meaning a single school may appear multiple times if it has authorized multiple integrations.

Pagination

The response data includes a meta object that contains pagination-specific metadata. You can use the following query parameters to control pagination:

  • limit: This parameter allows you to override the default limit of records returned, up to the max_allowed_limit specified in the response's meta object.

  • cursor: If the meta object contains a next_cursor field, it indicates that more records are available. To fetch the next set of records, include the cursor parameter in your request with the value of next_cursor. If the next_cursor field is not present, it means there are no more records to retrieve.

  • reverse_order: This parameter can be used to reverse the order in which the data is returned, useful for fetching the latest records first.

Request Headers

Name
Type
Description

HTTP-X-USERNAME*

String

As provided by d6

HTTP-X-PASSWORD*

String

As provided by d6

Query Parameters

Name
Type
Description

school_id

Integer

Optional ID of the school to retrieve data from

api_type_id

Integer

For filtering on a specific API Type

cursor

Boolean

To retrieve the next group of items (if any)

limit

Integer

To override the default limit of records returned (up to the max_allowed_limit provided in the response metadata).

reverse_order

Boolean

To reverse the order the data is returned in

Response Examples

Status: 200 OK

[
    "data": [
        {
            "school_id": 1000,
            "school_name": "d6+ Primary School",
            "admin_email_address": "support@d6plus.co.za",
            "telephone_calling_code": "27",
            "telephone_number": "0123334444",
            "api_type_id": 8,
            "api_type": "Admin+ API",
            "activated_by_integrator": "No"
        },
        {
            "school_id": 1000,
            "school_name": "d6+ Primary School",
            "admin_email_address": "support@d6plus.co.za",
            "telephone_calling_code": "27",
            "telephone_number": "0123334444",
            "api_type_id": 9,
            "api_type": "Curriculum+ API",
            "activated_by_integrator": "Yes"
        },
        {
            "school_id": 1001,
            "school_name": "d6+ Secondary School",
            "admin_email_address": "support@d6plus.co.za",
            "telephone_calling_code": "27",
            "telephone_number": "0123334444",
            "api_type_id": 8,
            "api_type": "Debt manager",
            "activated_by_integrator": "Yes"
        }
    ],
    "meta": {
        "limit": 10,
        "max_allowed_limit": 50,
        "cursor": "eyJpZCI6MjU0NiwiX2JhY2t3YXJkIjpmYWxzZX0"
    }
]

Description: When validation failed for one or more fields

Status: 400 Bad Request

{
    "success": false,
    "message": "Validation Failed",
    "validation_errors": {
        "school_id": "The School id must be integer",
        "api_type_id": "The Api type id must be integer",
        "limit": "The Limit maximum is 50"
    }
}

Code Samples

<?php

// API Credentials
$api_username = 'your_username';
$api_password = 'your_password';

// Base API endpoint
define('BASE_URL', 'https://integrate.d6plus.co.za/api/v2/settings/clientintegrations');

// Query parameters (optional)
$query_params = [
    'school_id'   => 1000,
    'api_type_id' => 8,
    'limit'       => 50,
    'cursor'      => 'eyJpZCI6MTY5NCwiX2JhY2t3YXJkIjpmYWxzZX0',
];

$url = BASE_URL;
if (!empty($query_params)) {
    $url .= '?' . http_build_query($query_params);
}

// Initialize cURL
$curl = curl_init();

// Set cURL options
curl_setopt_array($curl, [
    CURLOPT_URL            => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,  // Set timeout to prevent hanging requests
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST  => 'GET',
    CURLOPT_HTTPHEADER     => [
        "HTTP-X-USERNAME: $api_username",
        "HTTP-X-PASSWORD: $api_password"
    ],
]);

// Execute request
$response = curl_exec($curl);

// Check for errors
$error = curl_error($curl);
if ($error) {
    curl_close($curl);
    throw new Exception("cURL Error: $error");
}

// Close cURL and output response
curl_close($curl);
echo $response;
curl --request GET "https://integrate.d6plus.co.za/api/v2/settings/clientintegrations?school_id=1000&api_type_id=8&limit=50" \
     --header "HTTP-X-USERNAME: your_username" \
     --header "HTTP-X-PASSWORD: your_password"
PreviousClient IntegrationsNextChange Client Integration State