Expensicat

Entries

Entry management (receipts, invoices, etc.)

List entries

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

amount?string
amount[eq]?string
amount[neq]?string
amount[gt]?string
amount[gte]?string
amount[lt]?string
amount[lte]?string
amount[in]?string
amount[nin]?string
base_amount?string
base_amount[eq]?string
base_amount[neq]?string
base_amount[gt]?string
base_amount[gte]?string
base_amount[lt]?string
base_amount[lte]?string
base_amount[in]?string
base_amount[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
status?string
status[eq]?string
status[neq]?string
status[gt]?string
status[gte]?string
status[lt]?string
status[lte]?string
status[in]?string
status[nin]?string
category_id?string
category_id[eq]?string
category_id[neq]?string
category_id[gt]?string
category_id[gte]?string
category_id[lt]?string
category_id[lte]?string
category_id[in]?string
category_id[nin]?string
project_id?string
project_id[eq]?string
project_id[neq]?string
project_id[gt]?string
project_id[gte]?string
project_id[lt]?string
project_id[lte]?string
project_id[in]?string
project_id[nin]?string
type?string
type[eq]?string
type[neq]?string
type[gt]?string
type[gte]?string
type[lt]?string
type[lte]?string
type[in]?string
type[nin]?string
currency?string
currency[eq]?string
currency[neq]?string
currency[gt]?string
currency[gte]?string
currency[lt]?string
currency[lte]?string
currency[in]?string
currency[nin]?string
q?string

Search query (FTS)

statuses?string

Statuses (comma-separated) - legacy, use status[in]

sort?string

Sort column

Default"date"
Value in"date" | "amount" | "created_at"
order?string

Sort order

Default"desc"
Value in"asc" | "desc"

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/entries"
{
  "data": [
    {
      "id": "string",
      "organization_id": "string",
      "amount": 0,
      "currency": "string",
      "display_name": "string",
      "status": "string",
      "meta": null,
      "created_at": "string",
      "date": "string",
      "due_date": "string",
      "type": "string",
      "website": "string",
      "transaction_id": "string",
      "document_type": "string",
      "payment_terms": "string",
      "original_currency": "string",
      "reference_number": "string",
      "category_id": "string",
      "items": null,
      "notes": "string",
      "exclude_from_analytics": true,
      "base_amount": 0,
      "base_currency": "string",
      "project_id": "string",
      "cluster_id": "string",
      "cluster_index": 0,
      "primary_document_id": "string",
      "primary_document": {
        "id": "string",
        "file_path": "string",
        "file_name": "string",
        "content_type": "string",
        "size": 0
      },
      "category": {
        "id": "string",
        "name": "string",
        "color": "string"
      },
      "project": {
        "id": "string",
        "name": "string"
      },
      "match_candidates": [
        {
          "entry_id": "string",
          "confidence_score": "string",
          "status": "string"
        }
      ]
    }
  ],
  "meta": {
    "count": 0,
    "next_cursor": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Create entry

POST
/v1/entries
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Request Body

application/json

display_name?string
amount?|
currency?|
date?|
due_date?|
type?|
Value in"credit" | "debit"
document_type?|
Value in"invoice" | "receipt" | "purchase_order" | "other"
category_id?|
project_id?|
notes?|
items?unknown
status?string
Value in"processing" | "pending" | "archived" | "new" | "deleted"

Response Body

application/json

application/json

curl -X POST "https://api.expensicat.com/api/v1/entries" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "amount": 0,
    "currency": "string",
    "display_name": "string",
    "status": "string",
    "meta": null,
    "created_at": "string",
    "date": "string",
    "due_date": "string",
    "type": "string",
    "website": "string",
    "transaction_id": "string",
    "document_type": "string",
    "payment_terms": "string",
    "original_currency": "string",
    "reference_number": "string",
    "category_id": "string",
    "items": null,
    "notes": "string",
    "exclude_from_analytics": true,
    "base_amount": 0,
    "base_currency": "string",
    "project_id": "string",
    "cluster_id": "string",
    "cluster_index": 0,
    "primary_document_id": "string",
    "primary_document": {
      "id": "string",
      "file_path": "string",
      "file_name": "string",
      "content_type": "string",
      "size": 0
    },
    "category": {
      "id": "string",
      "name": "string",
      "color": "string"
    },
    "project": {
      "id": "string",
      "name": "string"
    },
    "match_candidates": [
      {
        "entry_id": "string",
        "confidence_score": "string",
        "status": "string"
      }
    ]
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get entry

GET
/v1/entries/{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/entries/string"
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "amount": 0,
    "currency": "string",
    "display_name": "string",
    "status": "string",
    "meta": null,
    "created_at": "string",
    "date": "string",
    "due_date": "string",
    "type": "string",
    "website": "string",
    "transaction_id": "string",
    "document_type": "string",
    "payment_terms": "string",
    "original_currency": "string",
    "reference_number": "string",
    "category_id": "string",
    "items": null,
    "notes": "string",
    "exclude_from_analytics": true,
    "base_amount": 0,
    "base_currency": "string",
    "project_id": "string",
    "cluster_id": "string",
    "cluster_index": 0,
    "primary_document_id": "string",
    "primary_document": {
      "id": "string",
      "file_path": "string",
      "file_name": "string",
      "content_type": "string",
      "size": 0
    },
    "category": {
      "id": "string",
      "name": "string",
      "color": "string"
    },
    "project": {
      "id": "string",
      "name": "string"
    },
    "match_candidates": [
      {
        "entry_id": "string",
        "confidence_score": "string",
        "status": "string"
      }
    ]
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Update entry

PATCH
/v1/entries/{id}
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Request Body

application/json

display_name?|
amount?|
currency?|
date?|
due_date?|
type?|
Value in"credit" | "debit"
document_type?|
Value in"invoice" | "receipt" | "purchase_order" | "other"
category_id?|
project_id?|
notes?|
exclude_from_analytics?boolean
items?unknown
status?string
Value in"processing" | "pending" | "archived" | "new" | "deleted"
transaction_id?|

Response Body

application/json

application/json

application/json

curl -X PATCH "https://api.expensicat.com/api/v1/entries/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "amount": 0,
    "currency": "string",
    "display_name": "string",
    "status": "string",
    "meta": null,
    "created_at": "string",
    "date": "string",
    "due_date": "string",
    "type": "string",
    "website": "string",
    "transaction_id": "string",
    "document_type": "string",
    "payment_terms": "string",
    "original_currency": "string",
    "reference_number": "string",
    "category_id": "string",
    "items": null,
    "notes": "string",
    "exclude_from_analytics": true,
    "base_amount": 0,
    "base_currency": "string",
    "project_id": "string",
    "cluster_id": "string",
    "cluster_index": 0,
    "primary_document_id": "string",
    "primary_document": {
      "id": "string",
      "file_path": "string",
      "file_name": "string",
      "content_type": "string",
      "size": 0
    },
    "category": {
      "id": "string",
      "name": "string",
      "color": "string"
    },
    "project": {
      "id": "string",
      "name": "string"
    },
    "match_candidates": [
      {
        "entry_id": "string",
        "confidence_score": "string",
        "status": "string"
      }
    ]
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Delete entry

DELETE
/v1/entries/{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/entries/string"
Empty
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}