> For the complete documentation index, see [llms.txt](https://apidocs.d6plus.co.za/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.d6plus.co.za/reference/finance+/debt-management/debtor-notes/create-note.md).

# Create Note

## Create a new debtor note

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

Use this endpoint to create a new debtor note for the specified school.&#x20;

The note must be linked to an accountable person and requires an `accountable_person_id`. The accountable person id can be retrieved using either the [Get School Debtors](/reference/finance+/debt-management/get-school-debtors.md) or [Get Learner Parent Info](/reference/finance+/debt-management/get-learner-parent-info.md) calls.

The `date` of the note is expected in a "yyyy-mm-dd" format and may not be earlier than the start of last year or later than the end of next year.

The `note_type_id` is also required and can be found using the [Get Note Type(s)](/reference/finance+/debt-management/debtor-notes/get-note-type-s.md) call. The `communication_type_id`, which can be found using the [Get Communication Type(s)](/reference/finance+/debt-management/debtor-notes/get-communication-type-s.md) call, is required for all types of note types except for `Internal` notes.

The actual text of the note should provided using the `note` field.

If you are creating a "Promise to Pay" note (note\_type\_id: 2), the payment arrangement data should  be included in the request body under the `promise_to_pays` array (see below for more information).

A promise-to-pay requires a `date_promised` (between the start of this year and the end of next year) and an `amount_promised` (without a currency symbol i.e. "100.00"). **Important:** The `amount_paid` value and the `promise_completed` flag may only be set by the school.

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

#### Request Body

<table><thead><tr><th width="261">Name</th><th width="98">Type</th><th>Description</th></tr></thead><tbody><tr><td>accountable_person_id<mark style="color:red;">*</mark></td><td>Integer</td><td>The id of the accountable person who the note belongs to.</td></tr><tr><td>date<mark style="color:red;">*</mark></td><td>String</td><td>The date of the note in "yyyy-mm-dd" format.</td></tr><tr><td>note_type_id<mark style="color:red;">*</mark></td><td>Integer</td><td>The id of the note type.</td></tr><tr><td>communication_type_id</td><td>Integer</td><td>The id of the communication type (not required for internal notes).</td></tr><tr><td>note</td><td>String</td><td>The note text</td></tr><tr><td>promise_to_pays</td><td>Array</td><td>An array of payment arrangement data for promise-to-pay notes</td></tr></tbody></table>

#### Request Examples

{% tabs %}
{% tab title="Promise-to-Pay Note" %}

```json
{
    "accountable_person_id": "40",
    "date": "2024-03-03",
    "note_type_id": "2",
    "communication_type_id": "2",
    "note": "Payment arrangement of R1000 to be paid off on outstanding school fees",
    "promise_to_pays": [
        {
            "date_promised": "2024-03-31",
            "amount_promised": "1000.00"
        },
        {
            "date_promised": "2024-04-30",
            "amount_promised": "1000.00"
        },
        {
            "date_promised": "2020-05-31",
            "amount_promised": "1000.00"
        }
    ]
}
```

{% endtab %}

{% tab title="Internal Note" %}

```json
{
    "accountable_person_id": "3",
    "date": "2024-04-15",
    "note_type_id": "3",
    "note": "Mr Webster asked to be phoned back tomorrow at 2pm",
    "status": "Created"
}
```

{% endtab %}
{% endtabs %}

#### Response Examples

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

```json
{
    "note_id": "6"
}
```

{% endtab %}

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

```json
{
    "note_id": "7",
    "promise_to_pays": [
        {
            "promise_to_pay_id": "11",
            "date_promised": "2024-03-31",
            "amount_promised": "1000.00"
        },
        {
            "promise_to_pay_id": "12",
            "date_promised": "2024-04-30",
            "amount_promised": "1000.00"
        },
        {
            "promise_to_pay_id": "13",
            "date_promised": "2020-05-31",
            "amount_promised": "1000.00"
        }
    ]
}
```

{% 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 = [
    'accountable_person_id' => 40,
    'date' => '2024-03-03',
    'note_type_id' => 2,
    'communication_type_id' => 2,
    'note' => 'Payment arrangement of R1000 to be paid off on outstanding school fees',
    'promise_to_pays' => [
        [
            'date_promised' => '2024-03-31',
            'amount_promised' => '1000.00'
        ]
    ]
];
const API_USERNAME = getenv('API_USERNAME'); // Assuming you have these environment variables set
const API_PASSWORD = getenv('API_PASSWORD');

$curl = curl_init();

$options = [
    CURLOPT_URL => BASE_URL . '/' . SCHOOL_LOGIN_ID,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => json_encode(PARAMS),
    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' \
--header 'HTTP-X-USERNAME: your_username' \
--header 'HTTP-X-PASSWORD: your_password' \
--header 'Content-Type: application/json' \
--data '{
    "accountable_person_id": "40",
    "date": "2024-03-03",
    "note_type_id": "2",
    "communication_type_id": "2",
    "note": "Payment arrangement of R1000 to be paid off on outstanding school fees",
    "promise_to_pays": [
        {
            "date_promised": "2024-03-31",
            "amount_promised": "1000.00"
        }
    ]
}'
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://apidocs.d6plus.co.za/reference/finance+/debt-management/debtor-notes/create-note.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
