Expensicat
API Reference

Inbox

GET
/v1/inbox

List inbox items with filtering, search, and pagination

Authorization

bearerAuth
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; higher values cap at 100)

Range1 <= value
Default20
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
document_type?string
document_type[eq]?string
document_type[neq]?string
document_type[gt]?string
document_type[gte]?string
document_type[lt]?string
document_type[lte]?string
document_type[in]?string
document_type[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
vendor_id?string
vendor_id[eq]?string
vendor_id[neq]?string
vendor_id[gt]?string
vendor_id[gte]?string
vendor_id[lt]?string
vendor_id[lte]?string
vendor_id[in]?string
vendor_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]

document_types?string

Document types (comma-separated) - legacy, use document_type[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://example.com/v1/inbox"
{  "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": [        {          "inbox_id": "string",          "confidence_score": "string",          "status": "string"        }      ],      "vendor_id": "string",      "buyer": {        "name": "string",        "country": "string",        "tax_id": "string",        "tax_type": "string"      },      "seller": {        "name": "string",        "country": "string",        "tax_id": "string",        "tax_type": "string"      },      "subtotal": 0,      "tax_amount": 0,      "reference_document_number": "string",      "source": "string",      "source_reference_id": "string",      "approval_action": "string",      "approval_at": "string",      "approval_actor": {        "id": "string",        "full_name": "string",        "email": "string",        "avatar_url": "string"      },      "approval_reason": "string"    }  ],  "meta": {    "count": 0,    "next_cursor": "string"  }}
POST
/v1/inbox

Create a new inbox item. When primary_document_id is provided without amount, OCR runs automatically to extract financial data from the linked document.

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/inbox" \  -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": [      {        "inbox_id": "string",        "confidence_score": "string",        "status": "string"      }    ],    "vendor_id": "string",    "buyer": {      "name": "string",      "country": "string",      "tax_id": "string",      "tax_type": "string"    },    "seller": {      "name": "string",      "country": "string",      "tax_id": "string",      "tax_type": "string"    },    "subtotal": 0,    "tax_amount": 0,    "reference_document_number": "string",    "source": "string",    "source_reference_id": "string",    "approval_action": "string",    "approval_at": "string",    "approval_actor": {      "id": "string",      "full_name": "string",      "email": "string",      "avatar_url": "string"    },    "approval_reason": "string"  }}
GET
/v1/inbox/{id}

Get a single inbox item by ID

Authorization

bearerAuth
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://example.com/v1/inbox/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": [      {        "inbox_id": "string",        "confidence_score": "string",        "status": "string"      }    ],    "vendor_id": "string",    "buyer": {      "name": "string",      "country": "string",      "tax_id": "string",      "tax_type": "string"    },    "seller": {      "name": "string",      "country": "string",      "tax_id": "string",      "tax_type": "string"    },    "subtotal": 0,    "tax_amount": 0,    "reference_document_number": "string",    "source": "string",    "source_reference_id": "string",    "approval_action": "string",    "approval_at": "string",    "approval_actor": {      "id": "string",      "full_name": "string",      "email": "string",      "avatar_url": "string"    },    "approval_reason": "string"  }}
PATCH
/v1/inbox/{id}

Update inbox item fields

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/inbox/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": [      {        "inbox_id": "string",        "confidence_score": "string",        "status": "string"      }    ],    "vendor_id": "string",    "buyer": {      "name": "string",      "country": "string",      "tax_id": "string",      "tax_type": "string"    },    "seller": {      "name": "string",      "country": "string",      "tax_id": "string",      "tax_type": "string"    },    "subtotal": 0,    "tax_amount": 0,    "reference_document_number": "string",    "source": "string",    "source_reference_id": "string",    "approval_action": "string",    "approval_at": "string",    "approval_actor": {      "id": "string",      "full_name": "string",      "email": "string",      "avatar_url": "string"    },    "approval_reason": "string"  }}
DELETE
/v1/inbox/{id}

Delete an inbox item by ID

Authorization

bearerAuth
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/inbox/string"
Empty