# Get Promise To Pay(s)

## Get one or more Promise To Pay records

<mark style="color:blue;">`GET`</mark> `https://integrate.d6plus.co.za/api/v1/finplus/debtmanagement/debtornotes/promisetopays/{school_login_id}`

Use this endpoint to fetch one or more promise-to-pay records for the specified school.

It is possible to retrieve a single promise to pay record by providing the optional `promise_to_pay_id` query parameter.

To find promise-to-pay records belonging to a specific person, us the `debtor_code` or `accountable_person_id` query parameters.

Additionally, it's possible to filter on the status of the promise to pay record by using the `promise_completed` query parameter. The possible values are "Yes", "No" and "Partial".

It is also possible to return only a specific year's promise to pay records. Use the `year_promised` query parameter to do so.

To include the debtor note the promise to pay belongs to, directly in the response, providing the additional `include_debtor_note` query parameter.

#### 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 |

#### Query Parameters

| Name                    | Type    | Description                                                    |
| ----------------------- | ------- | -------------------------------------------------------------- |
| promise\_to\_pay\_id    | Integer | The ID of a promise to pay record                              |
| accountable\_person\_id | Integer | To only return a specific accountable person's promise to pays |
| debtor\_code            | Integer | To only return a specific debtor code's promise to pays        |
| promise\_completed      | String  | To filter on the status of the promise to pay                  |
| year\_promised          | Integer | To filter on a specific year                                   |
| include\_debtor\_note   | Boolean | Whether to include debtor note data in the response            |

#### Response Examples

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

```json
[
    {
        "promise_to_pay_id": "8",
        "accountable_person_id": "40",
        "accountable_person": "Mr James, John",
        "debtor_code": "1001",
        "debtor_reference": "James",
        "date_promised": "2024-03-31",
        "amount_promised": "1000.00",
        "amount_paid": "1000.00",
        "promise_completed": "Yes"
    },
    {
        "promise_to_pay_id": "10",
        "accountable_person_id": "40",
        "accountable_person": "Mr James, John",
        "debtor_code": "1001",
        "debtor_reference": "James",
        "date_promised": "2024-04-30",
        "amount_promised": "1000.00",
        "amount_paid": "750.00",
        "promise_completed": "Partial"
    },
    {
        "promise_to_pay_id": "12",
        "accountable_person_id": "40",
        "accountable_person": "Mr James, John",
        "debtor_code": "1001",
        "debtor_reference": "James",
        "date_promised": "2020-05-31",
        "amount_promised": "1000.00",
        "amount_paid": "",
        "promise_completed": "No"
    }
]
```

{% endtab %}

{% tab title="200 Including Debtor Notes" %}

```json
[
    {
        "promise_to_pay_id": "8",
        "accountable_person_id": "40",
        "accountable_person": "Mr James, John",
        "debtor_code": "1001",
        "debtor_reference": "James",
        "date_promised": "2024-03-31",
        "amount_promised": "1000.00",
        "amount_paid": "1000.00",
        "promise_completed": "Yes",
        "debtor_note": {
            "note_id": "6",
            "date": "2024-03-03",
            "note_type_id": "2",
            "note_type": "Promise to Pay",
            "communication_type_id": "2",
            "communication_type": "E-mail",
            "note": "Payment arrangement of R1000 to be paid off on outstanding school fees"
        }
    },
    {
        "promise_to_pay_id": "10",
        "accountable_person_id": "40",
        "accountable_person": "Mr James, John",
        "debtor_code": "1001",
        "debtor_reference": "James",
        "date_promised": "2024-04-30",
        "amount_promised": "1000.00",
        "amount_paid": "750.00",
        "promise_completed": "Partial",
        "debtor_note": {
            "note_id": "6",
            "date": "2024-03-03",
            "note_type_id": "2",
            "note_type": "Promise to Pay",
            "communication_type_id": "2",
            "communication_type": "E-mail",
            "note": "Payment arrangement of R1000 to be paid off on outstanding school fees"
        }
    },
    {
        "promise_to_pay_id": "12",
        "accountable_person_id": "40",
        "accountable_person": "Mr James, John",
        "debtor_code": "1001",
        "debtor_reference": "James",
        "date_promised": "2020-05-31",
        "amount_promised": "1000.00",
        "amount_paid": "",
        "promise_completed": "No",
        "debtor_note": {
            "note_id": "6",
            "date": "2024-03-03",
            "note_type_id": "2",
            "note_type": "Promise to Pay",
            "communication_type_id": "2",
            "communication_type": "E-mail",
            "note": "Payment arrangement of R1000 to be paid off on outstanding school fees"
        }
    }
]
```

{% endtab %}

{% tab title="204 No Content" %}

```json
```

{% endtab %}

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

```json
{
    "error": "Not found",
    "error_description": "The promise_to_pay_id does not exist"
}
```

{% endtab %}

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

```json
{
    "error": "Unauthorized",
    "error_description": "Client access not authorised"
}
```

{% endtab %}

{% tab title="403: Forbidden The server understood the request, but the requested action is not allowed." %}

```json
{
    "error": "Integration not activated",
    "error_description": "Please activate the Admin+ API for this client before making this request"
}
```

{% endtab %}
{% endtabs %}

## Code Samples

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

```php
<?php

const BASE_URL = 'https://integrate.d6plus.co.za/api/v1/finplus/debtmanagement/promisetopays/notes';
const SCHOOL_LOGIN_ID = '1000';
const PARAMS = [
    'promise_to_pay_id' => 12,
    'accountable_person_id' => 40,
    'debtor_code' => 1001,
    'promise_completed' => 'Partial',
    'year_promised' => 2024,
    'include_debtor_note' => 1
    ];
const API_USERNAME = getenv('API_USERNAME'); // Assuming you have these environment variables set
const API_PASSWORD = getenv('API_PASSWORD');

$curl = curl_init();

$query = http_build_query(PARAMS);

$options = [
    CURLOPT_URL => BASE_URL . '/' . SCHOOL_LOGIN_ID . '?' . $query,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        "HTTP-X-USERNAME: " . API_USERNAME,
        "HTTP-X-PASSWORD: " . API_PASSWORD
    ],
];

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" %}

````bash
curl --location 'https://integrate.d6plus.co.za/api/v1/finplus/debtmanagement/debtornotes/promisetopays/1000?```javascript
promise_to_pay_id=291&accountable_person_id=380&debtor_code=1270&promise_completed=Partial&year_promised=2024&include_debtor_note=1
```' \
--header 'HTTP-X-USERNAME: your_username' \
--header 'HTTP-X-PASSWORD: your_password'
````

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidocs.d6plus.co.za/reference/finance+/debt-management/debtor-notes/get-promise-to-pay-s.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
