curl --request GET \
--url https://panel.sendcloud.sc/api/v3/invoices \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://panel.sendcloud.sc/api/v3/invoices"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://panel.sendcloud.sc/api/v3/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://panel.sendcloud.sc/api/v3/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: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://panel.sendcloud.sc/api/v3/invoices"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://panel.sendcloud.sc/api/v3/invoices")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/invoices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 5501,
"reference": "INV-2026-000123",
"created_at": "2026-05-31T00:00:00Z",
"due_date": "2026-06-30T00:00:00Z",
"price_taxable": {
"value": "1240.5000",
"currency": "EUR"
},
"price_non_taxable": {
"value": "0.0000",
"currency": "EUR"
},
"tax": {
"value": "260.5050",
"currency": "EUR"
},
"description": "Shipping charges — May 2026",
"category": "transactional",
"issuer": {
"business_name": "Sendcloud B.V.",
"address": "Stationsplein 32",
"postal_code": "5611 AC",
"city": "Eindhoven",
"country_name": "Netherlands",
"vat_id": "NL852587582B01",
"coc_id": "57500015"
}
},
{
"id": 5480,
"reference": "INV-2026-000099",
"created_at": "2026-05-01T00:00:00Z",
"due_date": null,
"price_taxable": {
"value": "49.0000",
"currency": "EUR"
},
"price_non_taxable": null,
"tax": {
"value": "10.2900",
"currency": "EUR"
},
"description": "Subscription — May 2026",
"category": "subscription",
"issuer": {
"business_name": "Sendcloud B.V.",
"address": "Stationsplein 32",
"postal_code": "5611 AC",
"city": "Eindhoven",
"country_name": "Netherlands",
"vat_id": "NL852587582B01",
"coc_id": "57500015"
}
}
]
}{
"errors": [
{
"detail": "Authentication credentials were not provided.",
"status": "401",
"code": "not_authenticated"
}
]
}Retrieve a list of invoices
Retrieve a paginated list of invoices for your organization.
This endpoint uses cursor-based pagination via Link headers. See Pagination for details.
This endpoint is currently in beta. Its shape may change in backwards-incompatible ways while we collect feedback.
curl --request GET \
--url https://panel.sendcloud.sc/api/v3/invoices \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://panel.sendcloud.sc/api/v3/invoices"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://panel.sendcloud.sc/api/v3/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://panel.sendcloud.sc/api/v3/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: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://panel.sendcloud.sc/api/v3/invoices"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://panel.sendcloud.sc/api/v3/invoices")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/invoices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 5501,
"reference": "INV-2026-000123",
"created_at": "2026-05-31T00:00:00Z",
"due_date": "2026-06-30T00:00:00Z",
"price_taxable": {
"value": "1240.5000",
"currency": "EUR"
},
"price_non_taxable": {
"value": "0.0000",
"currency": "EUR"
},
"tax": {
"value": "260.5050",
"currency": "EUR"
},
"description": "Shipping charges — May 2026",
"category": "transactional",
"issuer": {
"business_name": "Sendcloud B.V.",
"address": "Stationsplein 32",
"postal_code": "5611 AC",
"city": "Eindhoven",
"country_name": "Netherlands",
"vat_id": "NL852587582B01",
"coc_id": "57500015"
}
},
{
"id": 5480,
"reference": "INV-2026-000099",
"created_at": "2026-05-01T00:00:00Z",
"due_date": null,
"price_taxable": {
"value": "49.0000",
"currency": "EUR"
},
"price_non_taxable": null,
"tax": {
"value": "10.2900",
"currency": "EUR"
},
"description": "Subscription — May 2026",
"category": "subscription",
"issuer": {
"business_name": "Sendcloud B.V.",
"address": "Stationsplein 32",
"postal_code": "5611 AC",
"city": "Eindhoven",
"country_name": "Netherlands",
"vat_id": "NL852587582B01",
"coc_id": "57500015"
}
}
]
}{
"errors": [
{
"detail": "Authentication credentials were not provided.",
"status": "401",
"code": "not_authenticated"
}
]
}Authorizations
Basic Authentication using API key and secrets is currently the main authentication mechanism.
Query Parameters
The cursor query string is used as the pivot value to filter results. If no value is provided, the first page of results will be returned. To get this value, you must encode the offset, reverse and position into a base64 string.
There are 3 possible parameters to encode:
o: Offsetr: Reversep: Position
For example, r=1&p=300 encoded as a base64 string would be cj0xJnA9MzAw. The query string would then be cursor=cj0xJnA9MzAw.
"cj0xJnA9MzAw"
The size of the page to fetch. Defaults to 100, max 500.
1 <= x <= 500Response
OK
Retrieve invoices
Show child attributes
Show child attributes