curl --request GET \
--url https://logistics.api.smartcp.org/v1/invoices \
--header 'Authorization: Bearer <token>' \
--header 'X-Client-Directory: <api-key>'const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'X-Client-Directory': '<api-key>'}
};
fetch('https://logistics.api.smartcp.org/v1/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://logistics.api.smartcp.org/v1/invoices"
headers = {
"Authorization": "Bearer <token>",
"X-Client-Directory": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://logistics.api.smartcp.org/v1/invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-Client-Directory: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"status": 200,
"message": "OK",
"data": {
"invoices": [
{
"id": 1045,
"nr": "FV/2026/05/1045",
"type": "s",
"status": "issued",
"branch_id": 1,
"issue_date": 1778457600,
"service_date": 1778457600,
"payment_term": 1779062400,
"payment_date": null,
"customer_name": "ACME Logistics",
"customer_vat": "PL1234567890",
"customer_country": "pl",
"currency": "EUR",
"amount_net": 1000,
"amount_tax": 230,
"amount_gross": 1230,
"paid": 0,
"left_to_pay": 1230,
"orders": [
{
"type": "t",
"nr": "Tour 4036230",
"cmr": "CMR-2026-105",
"tasks": [],
"files": [],
"contacts": []
}
],
"correct_of": null,
"added_time": 1778486400
}
],
"pagination": {
"page": 1,
"per_page": 250,
"total": 1,
"total_pages": 1
}
}
}{
"status": 401,
"message": "Authentication failed",
"data": null
}{
"status": 422,
"message": "The given data was invalid.",
"data": null
}{
"status": 429,
"message": "Too Many Attempts.",
"data": null
}List
Returns a paginated invoice list with optional filtering and sorting.
curl --request GET \
--url https://logistics.api.smartcp.org/v1/invoices \
--header 'Authorization: Bearer <token>' \
--header 'X-Client-Directory: <api-key>'const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'X-Client-Directory': '<api-key>'}
};
fetch('https://logistics.api.smartcp.org/v1/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://logistics.api.smartcp.org/v1/invoices"
headers = {
"Authorization": "Bearer <token>",
"X-Client-Directory": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://logistics.api.smartcp.org/v1/invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-Client-Directory: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"status": 200,
"message": "OK",
"data": {
"invoices": [
{
"id": 1045,
"nr": "FV/2026/05/1045",
"type": "s",
"status": "issued",
"branch_id": 1,
"issue_date": 1778457600,
"service_date": 1778457600,
"payment_term": 1779062400,
"payment_date": null,
"customer_name": "ACME Logistics",
"customer_vat": "PL1234567890",
"customer_country": "pl",
"currency": "EUR",
"amount_net": 1000,
"amount_tax": 230,
"amount_gross": 1230,
"paid": 0,
"left_to_pay": 1230,
"orders": [
{
"type": "t",
"nr": "Tour 4036230",
"cmr": "CMR-2026-105",
"tasks": [],
"files": [],
"contacts": []
}
],
"correct_of": null,
"added_time": 1778486400
}
],
"pagination": {
"page": 1,
"per_page": 250,
"total": 1,
"total_pages": 1
}
}
}{
"status": 401,
"message": "Authentication failed",
"data": null
}{
"status": 422,
"message": "The given data was invalid.",
"data": null
}{
"status": 429,
"message": "Too Many Attempts.",
"data": null
}Authorizations
Client API key sent as a bearer token.
Client directory identifier. Legacy directory header is still accepted for backward compatibility.
Query Parameters
Page number. Default: 1.
x >= 1Number of results per page. Default: 250, maximum: 500.
1 <= x <= 500Predefined date range filter.
cur_month, prev_month, last_30_days, last_60_days, last_90_days, custom Invoice date field used together with period.
added_date, issue_date, service_date, payment_term, payment_date Start date for period=custom in YYYY-MM-DD format.
End date for period=custom in YYYY-MM-DD format.
Comma-separated invoice types. Available options: s - sales invoices, c - correcting invoices, p - purchase invoices.
"s,c"
Comma-separated invoice statuses. Available options: issued, paid, semipaid, overdue.
"issued,overdue"
Comma-separated branch IDs.
"1,2"
Comma-separated customer VAT numbers.
"PL1234567890,DE123456789"
Partial customer name.
Customer country code.
"pl"
Search by invoice number, related order number, or invoice item text.
Sort field. Default: issue_date.
issue_date, service_date, payment_term, payment_date, nr, amount_gross, amount_net, amount_tax, customer_name, added_time Sort direction. Default: desc.
asc, desc