Get canceled invoices grid
Returns a paginated, filterable, and sortable grid of invoices that have been cancelled.
What are Canceled Invoices? The “Canceled” tab shows all invoices that were officially cancelled after being sent out. Cancellation happens via credit note and balances out the original amount correctly from an accounting point of view.
What is returned:
- Invoice identification (ID, number)
- Project reference (projectId)
- Invoice type (Mixed, Subscription, TimeBased, ExpressQuotation, SingleProject, InterimPayment)
- Creation date (createdAt)
- Cancellation date (statusChangedAt)
- Net amount before taxes and fees (netto)
- Invoice status (Cancelled)
Filtering and search:
- Quick search across invoice number
- Filter by project, type, status, dates, and amount
- Sort by any field
Retrieves a paginated grid of canceled invoices with filtering and sorting capabilities. Quick search available on: number. Filterable fields: id, number, projectId, type, createdAt, statusChangedAt, netto, status. Sortable fields: id, number, projectId, type, createdAt, statusChangedAt, netto, status.
GET
/billing/invoices/canceledAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:reador
AuthorizationBearer token (JWT) · headerrequiredQuery parameters
pagenumberPage number (1-based)
pageSizenumberNumber of items per page
viewIdstringView identifier for saved grid configurations
quickSearchstringQuick search text. Searches across: number
filtersstringJSON string containing filter configuration.
**Available Fields:**
- **id** (string): Invoice ID
- **number** (string): Invoice number
- **projectId** (string): Project ID
- **type** (set): Invoice type (Mixed, Subscription, TimeBased, ExpressQuotation, SingleProject, InterimPayment)
- **createdAt** (date): Invoice creation date
- **statusChangedAt** (date): Date when invoice was cancelled
- **netto** (number): Net amount (before taxes and fees)
- **status** (set): Invoice status (Cancelled)
**Filter Structure:**
```json
[
{
"type": "string|number|date|set|boolean|array|task_status|task_type",
"fieldName": "field_name",
"value": {
"comparison": "comparison_type",
"value": "filter_value"
}
}
]
```
**Group Filters (AND/OR Combinations):**
```json
[
{
"type": "group",
"fieldName": "group0.18807479823070028",
"value": {
"type": "or",
"filters": [
{
"type": "string",
"fieldName": "fileName",
"value": {
"comparison": "contain",
"value": "aa"
}
},
{
"type": "number",
"fieldName": "rowCount",
"value": {
"comparison": ">=",
"value": 33
}
}
]
}
}
]
```
**Available Comparison Operators:**
- **id** (string): Invoice ID (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- **number** (string): Invoice number (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- **projectId** (string): Project ID (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- **type** (set): Invoice type (Mixed, Subscription, TimeBased, ExpressQuotation, SingleProject, InterimPayment) (set filter). Available comparisons: in, not_in, is_empty, is_not_empty
- **createdAt** (date): Invoice creation date (date filter). Available comparisons: equal, not_equal, >, <, >=, <=, between, lastMonth, thisMonth, is_empty, is_not_empty
- **statusChangedAt** (date): Date when invoice was cancelled (date filter). Available comparisons: equal, not_equal, >, <, >=, <=, between, lastMonth, thisMonth, is_empty, is_not_empty
- **netto** (number): Net amount (before taxes and fees) (number filter). Available comparisons: equal, not_equal, >, <, >=, <=, is_empty, is_not_empty
- **status** (set): Invoice status (Cancelled) (set filter). Available comparisons: in, not_in, is_empty, is_not_empty
**Note:** Use `quickSearch` parameter for simple text search instead of adding it to filters.
sortstringJSON array of sort objects.
**Sortable Fields:**
- **id**: Invoice ID
- **number**: Invoice number
- **projectId**: Project ID
- **type**: Invoice type (Mixed, Subscription, TimeBased, ExpressQuotation, SingleProject, InterimPayment)
- **createdAt**: Invoice creation date
- **statusChangedAt**: Date when invoice was cancelled
- **netto**: Net amount (before taxes and fees)
- **status**: Invoice status (Cancelled)
**Sort Structure:**
```json
[
{
"field": "field_name",
"direction": "asc|desc"
}
]
```
**Default Sort:** statusChangedAt (desc)
fieldsToReturnany[]Comma-separated list of field names to include in response items. If not provided, all fields are returned.
**Available Fields:** id, number, projectId, type, createdAt, statusChangedAt, netto, status
Responses
200Successfully retrieved canceled invoices grid
400Invalid query parameters
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X GET "https://leadtime.app/api/public/billing/invoices/canceled" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/billing/invoices/canceled", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/billing/invoices/canceled",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
Successfully retrieved canceled invoices grid
Invalid query parameters
Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions