Invoices
List Invoices
Retrieve a list of generated invoices for your company.
GET
/
api
/
public
/
v1
/
invoices
List Invoices
curl --request GET \
--url https://api.example.com/api/public/v1/invoicesimport requests
url = "https://api.example.com/api/public/v1/invoices"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/public/v1/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://api.example.com/api/public/v1/invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.example.com/api/public/v1/invoices"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/public/v1/invoices")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/v1/invoices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "inv_123...",
"invoiceNumber": "INV-2026-001",
"status": "ISSUED",
"issueDate": "2026-05-18T00:00:00.000Z",
"dueDate": "2026-06-18T00:00:00.000Z",
"totalAmount": 1500.00,
"currency": "USD"
}
]
}
This endpoint is typically used to sync your Shiftsheet invoices into external accounting software like Xero or QuickBooks.
Query Parameters
string
Filter invoices by their status (e.g.,
DRAFT, ISSUED, PAID, VOID).string
Filter invoices where the issue date is greater than or equal to this date (ISO 8601 format).
Response
{
"data": [
{
"id": "inv_123...",
"invoiceNumber": "INV-2026-001",
"status": "ISSUED",
"issueDate": "2026-05-18T00:00:00.000Z",
"dueDate": "2026-06-18T00:00:00.000Z",
"totalAmount": 1500.00,
"currency": "USD"
}
]
}
⌘I
List Invoices
curl --request GET \
--url https://api.example.com/api/public/v1/invoicesimport requests
url = "https://api.example.com/api/public/v1/invoices"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/public/v1/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://api.example.com/api/public/v1/invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.example.com/api/public/v1/invoices"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/public/v1/invoices")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/v1/invoices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "inv_123...",
"invoiceNumber": "INV-2026-001",
"status": "ISSUED",
"issueDate": "2026-05-18T00:00:00.000Z",
"dueDate": "2026-06-18T00:00:00.000Z",
"totalAmount": 1500.00,
"currency": "USD"
}
]
}