Age Analysis Report
GET
/v2/finplus/debtmanagement/ageanalysis
Use this endpoint to generate an age analysis report for the specified school.
Default Behavior:
The report returns only active accounts (i.e., current learners or accounts with an outstanding balance).
To include all accounts (including left learners and zero-balance accounts), set the
all_accounts
query parameter totrue
.
Grouping Options:
By default, the report is grouped by family and parent.
Use
per_learner
to group the data per learner.Use
per_category
to group the data per category.If both
per_learner
andper_category
are set totrue
, the report will be grouped per learner, per category.
Filtering Options:
Use
debtor_code
to filter by a specific debtor.Use
learner_id
to filter by a specific learner.Use
accountable_person_id
to filter by a specific accountable person.Use
category_id
to filter by a specific category.
The response provides balances across different aging periods (current
, 30 days
, 60 days
, etc.), along with optional learner-specific and category-specific breakdowns based on the provided parameters.
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'smeta
object.cursor: If the
meta
object contains anext_cursor
field, it indicates that more records are available. To fetch the next set of records, include thecursor
parameter in your request with the value ofnext_cursor
. If thenext_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
HTTP-X-USERNAME
*
String
As provided by d6
HTTP-X-PASSWORD
*
String
As provided by d6
HTTP-X-SCHOOLID
*
Integer
The unique identifier of the school for which the data is being queried.
Query Parameters
all_accounts
Boolean
Whether to include all accounts
per_learner
Boolean
Whether to group the data per learner
per_category
Boolean
Whether to group the data per category (can be used in conjunction with per_learner)
debtor_code
Integer
To filter on a specific Debtor Code
learner_id
Integer
To filter on a specific Learner ID
accountable_person_id
Integer
To filter on a specific Accountable Person ID
category_id
Integer
To filter on a specific Category ID
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": [
{
"debtor_code": "1001",
"accountable_person_id": "40",
"date": "2024-04-10",
"balance_current": "3500.00",
"balance_30days": "3500.00",
"balance_60days": "3500.00",
"balance_90days": "3500.00",
"balance_120days": "850.00",
"balance_150days": "5850.00",
"balance_180days": "4500.00",
"balance_total": "25200.00"
},
{
"debtor_code": "1002",
"accountable_person_id": "3",
"date": "2024-04-10",
"balance_current": "3500.00",
"balance_30days": "3500.00",
"balance_60days": "3500.00",
"balance_90days": "3500.00",
"balance_120days": "850.00",
"balance_150days": "5850.00",
"balance_180days": "20000.00",
"balance_total": "40700.00"
}
],
"meta": {
"limit": 10,
"max_allowed_limit": 50,
"cursor": "eyJpZCI6MjU0NiwiX2JhY2t3YXJkIjpmYWxzZX0"
}
}
Code Samples
<?php
// API Credentials
$api_username = 'your_username';
$api_password = 'your_password';
$school_id = 'your_school_id';
// Base API endpoint
$base_url = 'https://integrate.d6plus.co.za/api/v2/finplus/debtmanagement/ageanalysis';
// Query parameters (customize as needed)
$query_params = [
'all_accounts' => 1, // To include all accounts (including left learners and zero-balance accounts)
'per_learner' => 1, // To group by learner
'per_category' => 1, // To group by category
'debtor_code' => '1001', // Filter by specific debtor code
'learner_id' => '', // Filter by specific learner ID (optional)
'accountable_person_id' => '', // Filter by specific accountable person ID (optional)
'category_id' => '', // Filter by specific category ID (optional)
];
// Build the full request URL
$url = $base_url . '?' . http_build_query(array_filter($query_params));
// Initialize cURL
$curl = curl_init();
// Set cURL options
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30, // Prevents 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",
"Accept: application/json"
],
]);
// Execute request
$response = curl_exec($curl);
// Check for errors
if (curl_errno($curl)) {
throw new Exception('cURL Error: ' . curl_error($curl));
}
// Close cURL
curl_close($curl);
// Output the response
header('Content-Type: application/json');
echo $response;