List debtors
/v1/reports/debtors
Clients with open sales invoices as of today, the same list as the Debtors page under Reports. Amounts incl. VAT in EUR. Sorted by overdue amount, then open amount (highest first); equal amounts by client name, then id. `scope=overdue` returns only clients with an overdue amount. `avg_days_late` covers the client's invoices paid in the last 12 months. Signed-in users need the right to view invoice totals; API keys have environment-wide access
Authorization: HTTP
Query
| Name | Type | Description |
|---|---|---|
scope
|
string | |
limit
|
integer |
Request body
None
Response
Null when the invoices have no existing client.
Open amount incl. VAT.
Part of `open` past its due date.
Number of open invoices.
Average days paid after the due date, for this client's invoices paid in the last 12 months.
{
"data": [
{
"client": {
"id": "c1d2e3f4-a5b6-7890-1234-567890abcdef",
"name": "Voorbeeld BV"
},
"open": 4235,
"overdue": 2420,
"invoice_count": 3,
"oldest_due_date": "2026-07-14",
"avg_days_late": 12.5
}
],
"meta": []
}
Examples
curl -X GET "https://api.appficient.nl/v1/reports/debtors" \
-H "Authorization: Bearer apf_xxxxxxxx" \
-H "Accept: application/json"
import requests
url = 'https://api.appficient.nl/v1/reports/debtors'
headers = {
'Authorization': 'Bearer apf_xxxxxxxx',
'Accept': 'application/json',
}
response = requests.get(url, headers=headers)
data = response.json()
const url = 'https://api.appficient.nl/v1/reports/debtors';
const options = {
method: 'GET',
headers: {
Authorization: 'Bearer apf_xxxxxxxx',
Accept: 'application/json',
},
};
const res = await fetch(url, options);
const json = await res.json();
<?php
$url = 'https://api.appficient.nl/v1/reports/debtors';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer apf_xxxxxxxx',
'Accept: application/json',
],
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$json = json_decode($response, true);
postman request GET 'https://api.appficient.nl/v1/reports/debtors' \
--header 'Authorization: Bearer apf_xxxxxxxx' \
--header 'Accept: application/json'
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "apf_xxxxxxxx");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
using var request = new HttpRequestMessage(
HttpMethod.Get,
"https://api.appficient.nl/v1/reports/debtors");
var response = await client.SendAsync(request);
var json = await response.Content.ReadAsStringAsync();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create("https://api.appficient.nl/v1/reports/debtors"))
.header("Accept", "application/json")
.header("Authorization", "Bearer apf_xxxxxxxx");
HttpRequest request = builder.GET().build();
HttpResponse<String> response = client.send(
request, HttpResponse.BodyHandlers.ofString());
String json = response.body();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
req, err := http.NewRequest("GET", "https://api.appficient.nl/v1/reports/debtors", nil)
if err != nil {
panic(err)
}
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "Bearer apf_xxxxxxxx")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(data))
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.appficient.nl/v1/reports/debtors')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
req = Net::HTTP::Get.new(uri)
req['Accept'] = 'application/json'
req['Authorization'] = 'Bearer apf_xxxxxxxx'
res = http.request(req)
data = JSON.parse(res.body)
{
"data": [
{
"client": {
"id": "c1d2e3f4-a5b6-7890-1234-567890abcdef",
"name": "Voorbeeld BV"
},
"open": 4235,
"overdue": 2420,
"invoice_count": 3,
"oldest_due_date": "2026-07-14",
"avg_days_late": 12.5
}
],
"meta": []
}
Curl, Node and response are shown to the right of this endpoint.