Get paid invoices grid
Returns a paginated, filterable, and sortable grid of invoices that have been marked as paid.
What are Paid Invoices? The “Paid” tab shows all invoices that have been fully settled. These invoices are in status “Paid” and represent completed transactions.
What is returned:
- Invoice identification (ID, number)
- Project reference (projectId)
- Invoice type (Mixed, Subscription, TimeBased, ExpressQuotation, SingleProject, InterimPayment)
- Creation date (createdAt)
- Net amount before taxes and fees (netto)
- Invoice status (Paid)
Filtering and search:
- Quick search across invoice number
- Filter by project, type, status, date, and amount
- Sort by any field
Retrieves a paginated grid of paid invoices with filtering and sorting capabilities. Quick search available on: number. Filterable fields: id, number, projectId, type, createdAt, netto, status. Sortable fields: id, number, projectId, type, createdAt, netto, status.
GET
/billing/invoices/paidAuthorization
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
- **netto** (number): Net amount (before taxes and fees)
- **status** (set): Invoice status (Paid)
**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
- **netto** (number): Net amount (before taxes and fees) (number filter). Available comparisons: equal, not_equal, >, <, >=, <=, is_empty, is_not_empty
- **status** (set): Invoice status (Paid) (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
- **netto**: Net amount (before taxes and fees)
- **status**: Invoice status (Paid)
**Sort Structure:**
```json
[
{
"field": "field_name",
"direction": "asc|desc"
}
]
```
**Default Sort:** createdAt (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, netto, status
Responses
200Successfully retrieved paid 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/paid" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/billing/invoices/paid", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/billing/invoices/paid",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
Successfully retrieved paid invoices grid
Invalid query parameters
Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions