Get Schools

GET /v2/finplus/debtmanagement/schools (/{id})

Use this endpoint to fetch one or more school records.

By default, this endpoint returns a collection of records, wrapped in a data array. To retrieve a single record, provide its ID in the URL, which will return a single object instead of a collection.

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.

Path Parameters

Name
Type
Description

{id}

Integer

Optionally provide the School ID for retrieving a single record.

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

cursor

String

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",
            "school_short_name": "primary",
            "ownership_type": "Public",
            "country": "South Africa",
            "province": "Gauteng",
            "town": "Pretoria",
            "suburb": "Waterkloof Glen",
            "district": "METRO EAST",
            "district_code": "D1",
            "circuit": "Circuit 2",
            "quantile": "4",
            "emis_number": "600000001",
            "telephone_number": "0123334444",
            "lowest_grade": "Grade R",
            "highest_grade": "Grade 7",
            "admin_email_address": "[email protected]",
            "debtors_email_address": "[email protected]",
            "finance_email_address": "[email protected]",
            "physical_address": "Spaces Building, Floor 3,/r/n210 Amarand Ave,/r/nWaterkloof Glen,/r/nPretoria,/r/n0010",
            "postal_address": "Spaces Building, Floor 3,/r/n210 Amarand Ave,/r/nWaterkloof Glen,/r/nPretoria,/r/n0010",
            "has_after_school_center": "Yes",
            "has_hostel": "No",
            "uses_debit_orders": "No",
            "uses_cashless": "Yes"
        },
        {
            "school_id": "1001",
            "school_name": "d6+ Secondary School",
            "school_short_name": "secondary",
            "ownership_type": "Public",
            "country": "South Africa",
            "province": "Western Cape",
            "town": "Stellenbosch",
            "suburb": "Techno Park",
            "district": "CAPE WINELANDS",
            "district_code": "D1",
            "circuit": "Circuit 10",
            "quantile": "5",
            "emis_number": "600000002",
            "telephone_number": "0213337654",
            "lowest_grade": "Grade 8",
            "highest_grade": "Grade 12",
            "admin_email_address": "[email protected]",
            "debtors_email_address": "[email protected]",
            "finance_email_address": "[email protected]",
            "physical_address": "Octo Place, Block B\r\nElektron Road\r\nTechno Park\r\nStellenbosch\r\n7600",
            "postal_address": "Octo Place, Block B\r\nElektron Road\r\nTechno Park\r\nStellenbosch\r\n7600",
            "has_after_school_center": "No",
            "has_hostel": "Yes",
            "uses_debit_orders": "Yes",
            "uses_cashless": "No"
        }
    ],
    "meta": {
        "limit": 10,
        "max_allowed_limit": 50,
        "cursor": "eyJpZCI6MjU0NiwiX2JhY2t3YXJkIjpmYWxzZX0"
    }
]

Code Samples

<?php

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

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

// Optional: Set an ID to fetch a specific school (or leave empty for all)
$id = '';

$url = BASE_URL;
if (!empty($id)) {
    $url .= '/' . $id;
}

// Query parameters (optional)
$query_params = [
    'reverse_order' => 1,
    'limit' => 10,
    'cursor' => 'eyJpZCI6MjU0NiwiX2JhY2t3YXJkIjpmYWxzZX0',
];

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",
        "HTTP-X-SCHOOLID: $school_id"
    ],
]);

// 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;

Last updated