Invoices
Invoice management
List invoices
AuthorizationBearer <token>
Session JWT or OAuth2 access token
In: header
Query Parameters
cursor?string
Pagination cursor
limit?integer
Number of items per page (1-100)
Default
20Range
1 <= value <= 100start_date?string
Start date (YYYY-MM-DD)
end_date?string
End date (YYYY-MM-DD)
total?string
total[eq]?string
total[neq]?string
total[gt]?string
total[gte]?string
total[lt]?string
total[lte]?string
total[in]?string
total[nin]?string
subtotal?string
subtotal[eq]?string
subtotal[neq]?string
subtotal[gt]?string
subtotal[gte]?string
subtotal[lt]?string
subtotal[lte]?string
subtotal[in]?string
subtotal[nin]?string
date?string
date[eq]?string
date[neq]?string
date[gt]?string
date[gte]?string
date[lt]?string
date[lte]?string
date[in]?string
date[nin]?string
due_date?string
due_date[eq]?string
due_date[neq]?string
due_date[gt]?string
due_date[gte]?string
due_date[lt]?string
due_date[lte]?string
due_date[in]?string
due_date[nin]?string
status?string
Filter by status
Value in
"draft" | "unpaid" | "paid" | "overdue" | "cancelled"status[eq]?string
status[neq]?string
status[gt]?string
status[gte]?string
status[lt]?string
status[lte]?string
status[in]?string
status[nin]?string
customer_id?string
customer_id[eq]?string
customer_id[neq]?string
customer_id[gt]?string
customer_id[gte]?string
customer_id[lt]?string
customer_id[lte]?string
customer_id[in]?string
customer_id[nin]?string
q?string
Search query
Response Body
application/json
application/json
curl -X GET "https://api.expensicat.com/api/v1/invoices"{
"data": [
{
"id": "string",
"organization_id": "string",
"customer_id": "string",
"number": "string",
"status": "draft",
"date": "string",
"due_date": "string",
"subtotal": 0,
"tax": 0,
"total": 0,
"from_details": "string",
"to_details": "string",
"items": [
{
"name": "string",
"quantity": 0,
"price": 0
}
],
"payment_details": "string",
"notes": "string",
"created_at": "string",
"updated_at": "string",
"template": null,
"token": "string",
"reminder_sent_at": "string",
"paid_at": "string",
"reminder_sent_to": "string",
"viewed_at": "string",
"is_recurring_inflow": true,
"recurring_contract_id": "string",
"recurring_series_id": "string",
"scheduled_send_at": "string",
"customer": {
"id": "string",
"name": "string",
"email": "string",
"website": "string"
}
}
],
"meta": {
"count": 0,
"next_cursor": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"details": {
"property1": null,
"property2": null
}
}
}Create invoice
AuthorizationBearer <token>
Session JWT or OAuth2 access token
In: header
Request Body
application/json
customer_id?|
number?string
status?string
Value in
"draft" | "unpaid" | "paid" | "overdue" | "cancelled"date?string
due_date?string
subtotal?number
tax?number
total?number
from_details?string
to_details?string
items?array<>
payment_details?|
notes?|
template?unknown
template_id?|
token?|
recurring_series_id?|
scheduled_send_at?|
Response Body
application/json
application/json
curl -X POST "https://api.expensicat.com/api/v1/invoices" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"id": "string",
"organization_id": "string",
"customer_id": "string",
"number": "string",
"status": "draft",
"date": "string",
"due_date": "string",
"subtotal": 0,
"tax": 0,
"total": 0,
"from_details": "string",
"to_details": "string",
"items": [
{
"name": "string",
"quantity": 0,
"price": 0
}
],
"payment_details": "string",
"notes": "string",
"created_at": "string",
"updated_at": "string",
"template": null,
"token": "string",
"reminder_sent_at": "string",
"paid_at": "string",
"reminder_sent_to": "string",
"viewed_at": "string",
"is_recurring_inflow": true,
"recurring_contract_id": "string",
"recurring_series_id": "string",
"scheduled_send_at": "string",
"customer": {
"id": "string",
"name": "string",
"email": "string",
"website": "string"
}
}
}{
"error": {
"code": "string",
"message": "string",
"details": {
"property1": null,
"property2": null
}
}
}Get invoice
AuthorizationBearer <token>
Session JWT or OAuth2 access token
In: header
Path Parameters
id*string
Response Body
application/json
application/json
application/json
curl -X GET "https://api.expensicat.com/api/v1/invoices/string"{
"data": {
"id": "string",
"organization_id": "string",
"customer_id": "string",
"number": "string",
"status": "draft",
"date": "string",
"due_date": "string",
"subtotal": 0,
"tax": 0,
"total": 0,
"from_details": "string",
"to_details": "string",
"items": [
{
"name": "string",
"quantity": 0,
"price": 0
}
],
"payment_details": "string",
"notes": "string",
"created_at": "string",
"updated_at": "string",
"template": null,
"token": "string",
"reminder_sent_at": "string",
"paid_at": "string",
"reminder_sent_to": "string",
"viewed_at": "string",
"is_recurring_inflow": true,
"recurring_contract_id": "string",
"recurring_series_id": "string",
"scheduled_send_at": "string",
"customer": {
"id": "string",
"name": "string",
"email": "string",
"website": "string"
}
}
}{
"error": {
"code": "string",
"message": "string",
"details": {
"property1": null,
"property2": null
}
}
}{
"error": {
"code": "string",
"message": "string",
"details": {
"property1": null,
"property2": null
}
}
}Update invoice
AuthorizationBearer <token>
Session JWT or OAuth2 access token
In: header
Path Parameters
id*string
Request Body
application/json
customer_id?|
number?string
status?string
Value in
"draft" | "unpaid" | "paid" | "overdue" | "cancelled"date?string
due_date?string
subtotal?number
tax?number
total?number
from_details?string
to_details?string
items?array<>
payment_details?|
notes?|
template?unknown
reminder_sent_at?|
paid_at?|
reminder_sent_to?|
viewed_at?|
is_recurring_inflow?boolean
recurring_contract_id?|
recurring_series_id?|
scheduled_send_at?|
Response Body
application/json
application/json
application/json
curl -X PATCH "https://api.expensicat.com/api/v1/invoices/string" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"id": "string",
"organization_id": "string",
"customer_id": "string",
"number": "string",
"status": "draft",
"date": "string",
"due_date": "string",
"subtotal": 0,
"tax": 0,
"total": 0,
"from_details": "string",
"to_details": "string",
"items": [
{
"name": "string",
"quantity": 0,
"price": 0
}
],
"payment_details": "string",
"notes": "string",
"created_at": "string",
"updated_at": "string",
"template": null,
"token": "string",
"reminder_sent_at": "string",
"paid_at": "string",
"reminder_sent_to": "string",
"viewed_at": "string",
"is_recurring_inflow": true,
"recurring_contract_id": "string",
"recurring_series_id": "string",
"scheduled_send_at": "string",
"customer": {
"id": "string",
"name": "string",
"email": "string",
"website": "string"
}
}
}{
"error": {
"code": "string",
"message": "string",
"details": {
"property1": null,
"property2": null
}
}
}{
"error": {
"code": "string",
"message": "string",
"details": {
"property1": null,
"property2": null
}
}
}Delete invoice
AuthorizationBearer <token>
Session JWT or OAuth2 access token
In: header
Path Parameters
id*string
Response Body
application/json
application/json
curl -X DELETE "https://api.expensicat.com/api/v1/invoices/string"Empty
{
"error": {
"code": "string",
"message": "string",
"details": {
"property1": null,
"property2": null
}
}
}{
"error": {
"code": "string",
"message": "string",
"details": {
"property1": null,
"property2": null
}
}
}