Expensicat

Invoices

Invoice management

List invoices

GET
/v1/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)

Default20
Range1 <= value <= 100
start_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

POST
/v1/invoices
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

GET
/v1/invoices/{id}
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

PATCH
/v1/invoices/{id}
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

DELETE
/v1/invoices/{id}
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
    }
  }
}