curl --request GET \
--url https://api.widgetic.com/v1/invoices/partner/{partnerId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.widgetic.com/v1/invoices/partner/{partnerId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.widgetic.com/v1/invoices/partner/{partnerId}', 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.widgetic.com/v1/invoices/partner/{partnerId}",
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>"
],
]);
$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.widgetic.com/v1/invoices/partner/{partnerId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.widgetic.com/v1/invoices/partner/{partnerId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.widgetic.com/v1/invoices/partner/{partnerId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partnerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"number": "Example number",
"description": "Example description",
"amount": 42,
"subtotal": 42,
"taxAmount": 42,
"total": 42,
"amountDue": 42,
"amountPaid": 42,
"currency": "USD",
"failureReason": "Example failureReason",
"status": "Example status",
"invoiceDate": "2026-01-15T09:30:00.000Z",
"dueDate": "2026-01-15T09:30:00.000Z",
"paidDate": "2026-01-15T09:30:00.000Z",
"periodStart": "2026-01-15T09:30:00.000Z",
"periodEnd": "2026-01-15T09:30:00.000Z",
"paymentMethod": "Example paymentMethod",
"hostedInvoiceUrl": "Example hostedInvoiceUrl",
"pdfUrl": "Example pdfUrl",
"lineItems": [],
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z"
}
],
"meta": {
"page": 1,
"size": 20,
"total": 135,
"limit": 20,
"offset": 0,
"hasNextPage": true,
"hasPreviousPage": false,
"nextCursor": "<string>",
"warnings": [
"<string>"
]
}
}{
"success": false,
"message": "<string>",
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Composition not found",
"timestamp": "2026-10-15T10:00:00.000Z",
"param": "name",
"docUrl": "<string>",
"suggestedAction": "<string>",
"retryAfter": 60,
"details": {},
"correlationId": "req_123e4567-e89b-12d3-a456-426614174000"
}
}{
"success": false,
"message": "<string>",
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Composition not found",
"timestamp": "2026-10-15T10:00:00.000Z",
"param": "name",
"docUrl": "<string>",
"suggestedAction": "<string>",
"retryAfter": 60,
"details": {},
"correlationId": "req_123e4567-e89b-12d3-a456-426614174000"
}
}List a partner's invoices
Lists the invoices issued to a partner, newest first. Each carries the price (subtotal), the tax on
it (taxAmount) and what is paid (total), its status as the payment provider reports it, why the
last payment failed (failureReason), and the page where it is paid (hostedInvoiceUrl).
A partner reads its own: the caller must be the person who administers the partner (an API key of
that account works), and anyone else is refused with 403 whether or not the partner exists.
Widgetic administrators can read any partner’s and see exactly what the partner sees; the full
records, with the internal fields, are getAllInvoices filtered by partner.
The page is always bounded: limit defaults to 50 and is capped at 100, offset defaults to 0.
curl --request GET \
--url https://api.widgetic.com/v1/invoices/partner/{partnerId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.widgetic.com/v1/invoices/partner/{partnerId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.widgetic.com/v1/invoices/partner/{partnerId}', 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.widgetic.com/v1/invoices/partner/{partnerId}",
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>"
],
]);
$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.widgetic.com/v1/invoices/partner/{partnerId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.widgetic.com/v1/invoices/partner/{partnerId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.widgetic.com/v1/invoices/partner/{partnerId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"partnerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"number": "Example number",
"description": "Example description",
"amount": 42,
"subtotal": 42,
"taxAmount": 42,
"total": 42,
"amountDue": 42,
"amountPaid": 42,
"currency": "USD",
"failureReason": "Example failureReason",
"status": "Example status",
"invoiceDate": "2026-01-15T09:30:00.000Z",
"dueDate": "2026-01-15T09:30:00.000Z",
"paidDate": "2026-01-15T09:30:00.000Z",
"periodStart": "2026-01-15T09:30:00.000Z",
"periodEnd": "2026-01-15T09:30:00.000Z",
"paymentMethod": "Example paymentMethod",
"hostedInvoiceUrl": "Example hostedInvoiceUrl",
"pdfUrl": "Example pdfUrl",
"lineItems": [],
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z"
}
],
"meta": {
"page": 1,
"size": 20,
"total": 135,
"limit": 20,
"offset": 0,
"hasNextPage": true,
"hasPreviousPage": false,
"nextCursor": "<string>",
"warnings": [
"<string>"
]
}
}{
"success": false,
"message": "<string>",
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Composition not found",
"timestamp": "2026-10-15T10:00:00.000Z",
"param": "name",
"docUrl": "<string>",
"suggestedAction": "<string>",
"retryAfter": 60,
"details": {},
"correlationId": "req_123e4567-e89b-12d3-a456-426614174000"
}
}{
"success": false,
"message": "<string>",
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Composition not found",
"timestamp": "2026-10-15T10:00:00.000Z",
"param": "name",
"docUrl": "<string>",
"suggestedAction": "<string>",
"retryAfter": 60,
"details": {},
"correlationId": "req_123e4567-e89b-12d3-a456-426614174000"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The partner whose invoices to list
Query Parameters
Only invoices with this status
draft, open, pending, paid, failed, void, uncollectible, refunded, canceled Maximum number of invoices to return
1 <= x <= 100Number of invoices to skip
x >= 0