# Get Note(s)

## Get one or more debtor note records

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

Use this endpoint to fetch one or more debtor note records for the specified school.  By default, all  active debtor notes will be returned. To include deleted debtor notes in the results, provide the `include_deleted` query parameter.

It is possible to retrieve a single debtor note by providing the optional `note_id` query parameter.

Additionally it is also possible to search for a debtor note(s) using the `debtor_code`, `accountable_person_id` and/or `note_type_id` query parameters. To return notes for only a specific year, use the `year` query parameter.

To include the "Promise to Pay" payment arrangement data directly in the notes response payload, providing the additional `include_promise_to_pays` query parameter. The payment arrangement data will be included in a sub-array per note.

#### 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                                             |
| -------------------------- | ------- | ------------------------------------------------------- |
| note\_id                   | Integer | The ID of a specific note                               |
| note\_type\_id             | Integer | To only return notes of a given note type               |
| communication\_type\_id    | Integer | To only return notes of a given communication type      |
| accountable\_person\_id    | Integer | To only return a specific accountable person's notes    |
| debtor\_code               | Integer | To only return a given debtor code's notes              |
| year                       | Integer | To filter on a specific year                            |
| include\_deleted           | Boolean | Whether to include notes that have been deleted already |
| include\_promise\_to\_pays | Boolean | Whether to include promise-to-pay data in the response  |

#### Response Examples

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

```json
[
    {
        "note_id": "6",
        "accountable_person_id": "40",
        "accountable_person": "Mr James, John",
        "debtor_code": "1001",
        "debtor_reference": "James",
        "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",
        "status": "Created"
    },
    {
        "note_id": "7",
        "accountable_person_id": "3",
        "accountable_person": "Mr Webster, Nic",
        "debtor_code": "1002",
        "debtor_reference": "Webster",
        "date": "2024-04-15",
        "note_type_id": "3",
        "note_type": "Internal",
        "communication_type_id": "7",
        "communication_type": "Internal",
        "note": "Mr Webster asked to be phoned back tomorrow at 2pm",
        "status": "Created"
    }
]
```

{% endtab %}

{% tab title="200 Including Promise to Pays" %}

```json
[
    {
        "note_id": "6",
        "accountable_person_id": "40",
        "accountable_person": "Mr James, John",
        "debtor_code": "1001",
        "debtor_reference": "James",
        "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",
        "status": "Created",
        "promise_to_pays": [
            {
                "promise_to_pay_id": "8",
                "date_promised": "2024-03-31",
                "amount_promised": "1000.00",
                "amount_paid": "1000.00",
                "promise_completed": "Yes"
            },
            {
                "promise_to_pay_id": "10",
                "date_promised": "2024-04-30",
                "amount_promised": "1000.00",
                "amount_paid": "750.00",
                "promise_completed": "Partial"
            },
            {
                "promise_to_pay_id": "12",
                "date_promised": "2020-05-31",
                "amount_promised": "1000.00",
                "amount_paid": "",
                "promise_completed": "No"
            }
        ]
    }
]
```

{% 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 note 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/debtornotes/notes';
const SCHOOL_LOGIN_ID = '1000';
const PARAMS = [
    'note_id' => 133,
    'debtor_code' => 1270,
    'accountable_person_id' => 380,
    'note_type_id' => 2,
    'year' => 2024,
    'include_deleted' => 1,
    'include_promise_to_pays' => 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/notes/1000?note_id=133&debtor_code=1270&accountable_person_id=380&note_type_id=2&year=2024&include_deleted=1&include_promise_to_pays=1' \
--header 'HTTP-X-USERNAME: your_username' \
--header 'HTTP-X-PASSWORD: your_password'
```

{% endtab %}
{% endtabs %}
