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)

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

order?string

Sort order

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

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",
    "approval_action": "string",
    "approval_at": "string",
    "approval_actor": {
      "id": "string",
      "full_name": "string",
      "email": "string",
      "avatar_url": "string"
    },
    "approval_reason": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
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",
    "approval_action": "string",
    "approval_at": "string",
    "approval_actor": {
      "id": "string",
      "full_name": "string",
      "email": "string",
      "avatar_url": "string"
    },
    "approval_reason": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
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",
    "approval_action": "string",
    "approval_at": "string",
    "approval_actor": {
      "id": "string",
      "full_name": "string",
      "email": "string",
      "avatar_url": "string"
    },
    "approval_reason": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
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
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}