Retrieve an invoice item
curl --request GET \
--url https://panel.sendcloud.sc/api/v3/invoice-items/{invoice_item_id} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://panel.sendcloud.sc/api/v3/invoice-items/{invoice_item_id}"
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/invoice-items/{invoice_item_id}', 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/invoice-items/{invoice_item_id}",
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/invoice-items/{invoice_item_id}"
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/invoice-items/{invoice_item_id}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/invoice-items/{invoice_item_id}")
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": 1042,
"type": "shipment",
"subtype": null,
"description": "Parcel 99887766 — NL → DE",
"created_at": "2026-05-14T08:21:00Z",
"updated_at": "2026-05-14T08:21:00Z",
"price": {
"value": "5.4200",
"currency": "EUR"
},
"tax": {
"value": "1.1382",
"currency": "EUR"
},
"tax_rate": "0.21",
"vat_code": "NL_STANDARD",
"reference": "99887766",
"parcel_id": 99887766,
"brand": {
"id": 3021,
"name": "Acme"
},
"integration": {
"id": 48210,
"name": "Acme Webshop"
},
"pickup_id": null,
"carrier_id": 17,
"from_country": "NL",
"invoice_id": 5501
}
}{
"errors": [
{
"detail": "Authentication credentials were not provided.",
"status": "401",
"code": "not_authenticated"
}
]
}{
"errors": [
{
"detail": "Not found.",
"status": "404",
"code": "not_found"
}
]
}Invoice items
Retrieve an invoice item
Retrieve a single invoice item by id.
The item may be invoiced (invoice_id set, tax and tax_rate populated) or pending (invoice_id, tax, and tax_rate are null).
Pending invoice items (where invoice_id is null) are not final. Amounts and types can still change, and Sendcloud may remove items, up until they are consolidated onto an invoice. Treat pending items as a preview, not a guarantee.
GET
/
invoice-items
/
{invoice_item_id}
Retrieve an invoice item
curl --request GET \
--url https://panel.sendcloud.sc/api/v3/invoice-items/{invoice_item_id} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://panel.sendcloud.sc/api/v3/invoice-items/{invoice_item_id}"
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/invoice-items/{invoice_item_id}', 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/invoice-items/{invoice_item_id}",
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/invoice-items/{invoice_item_id}"
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/invoice-items/{invoice_item_id}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://panel.sendcloud.sc/api/v3/invoice-items/{invoice_item_id}")
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": 1042,
"type": "shipment",
"subtype": null,
"description": "Parcel 99887766 — NL → DE",
"created_at": "2026-05-14T08:21:00Z",
"updated_at": "2026-05-14T08:21:00Z",
"price": {
"value": "5.4200",
"currency": "EUR"
},
"tax": {
"value": "1.1382",
"currency": "EUR"
},
"tax_rate": "0.21",
"vat_code": "NL_STANDARD",
"reference": "99887766",
"parcel_id": 99887766,
"brand": {
"id": 3021,
"name": "Acme"
},
"integration": {
"id": 48210,
"name": "Acme Webshop"
},
"pickup_id": null,
"carrier_id": 17,
"from_country": "NL",
"invoice_id": 5501
}
}{
"errors": [
{
"detail": "Authentication credentials were not provided.",
"status": "401",
"code": "not_authenticated"
}
]
}{
"errors": [
{
"detail": "Not found.",
"status": "404",
"code": "not_found"
}
]
}OAuth2 scopes required:
read:invoice. See Scopes for OAuth apps.Authorizations
HTTPBasicAuthOAuth2ClientCreds
Basic Authentication using API key and secrets is currently the main authentication mechanism.
Path Parameters
The id of the invoice item.
Response
OK
Retrieve invoice item
A single billable line on an invoice (or a pending, not-yet-invoiced item).
Show child attributes
Show child attributes