Expensicat

Transactions

Transaction management

List transactions

GET
/v1/transactions
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
booking_date?string
booking_date[eq]?string
booking_date[neq]?string
booking_date[gt]?string
booking_date[gte]?string
booking_date[lt]?string
booking_date[lte]?string
booking_date[in]?string
booking_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
bank_account_id?string
bank_account_id[eq]?string
bank_account_id[neq]?string
bank_account_id[gt]?string
bank_account_id[gte]?string
bank_account_id[lt]?string
bank_account_id[lte]?string
bank_account_id[in]?string
bank_account_id[nin]?string
is_recurring?string
is_recurring[eq]?string
is_recurring[neq]?string
is_recurring[gt]?string
is_recurring[gte]?string
is_recurring[lt]?string
is_recurring[lte]?string
is_recurring[in]?string
is_recurring[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)

categories?string

Category IDs (comma-separated) - legacy, use category_id[in]

bank_accounts?string

Bank account IDs (comma-separated) - legacy, use bank_account_id[in]

statuses?string

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

types?string

Types: credit,debit,under-50,50-200,200-500,over-500

sort?string

Sort column

Default"booking_date"
Value in"booking_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/transactions"
{
  "data": [
    {
      "id": "string",
      "organization_id": "string",
      "bank_account_id": "string",
      "transaction_id": "string",
      "booking_date": "string",
      "amount": 0,
      "currency": "string",
      "description": "string",
      "status": "string",
      "raw_data": null,
      "created_at": "string",
      "updated_at": "string",
      "name": "string",
      "method": "string",
      "category_id": "string",
      "converted_amount": 0,
      "base_amount": 0,
      "base_currency": "string",
      "exclude_from_analytics": true,
      "notes": "string",
      "is_recurring": true,
      "recurrence_period": "string",
      "recurring_last_detected_at": "string",
      "recurring_series_id": "string",
      "bank_account": {
        "id": "string",
        "name": "string"
      },
      "category": {
        "id": "string",
        "name": "string",
        "slug": "string",
        "color": "string"
      },
      "enrichment": {
        "display_name": "string",
        "category": {
          "id": "string",
          "name": "string",
          "slug": "string",
          "color": "string"
        }
      },
      "entries": [
        {
          "id": "string",
          "transaction_id": "string",
          "display_name": "string",
          "amount": 0,
          "currency": "string",
          "date": "string",
          "status": "string"
        }
      ]
    }
  ],
  "meta": {
    "count": 0,
    "next_cursor": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get transaction

GET
/v1/transactions/{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/transactions/string"
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "bank_account_id": "string",
    "transaction_id": "string",
    "booking_date": "string",
    "amount": 0,
    "currency": "string",
    "description": "string",
    "status": "string",
    "raw_data": null,
    "created_at": "string",
    "updated_at": "string",
    "name": "string",
    "method": "string",
    "category_id": "string",
    "converted_amount": 0,
    "base_amount": 0,
    "base_currency": "string",
    "exclude_from_analytics": true,
    "notes": "string",
    "is_recurring": true,
    "recurrence_period": "string",
    "recurring_last_detected_at": "string",
    "recurring_series_id": "string",
    "bank_account": {
      "id": "string",
      "name": "string"
    },
    "category": {
      "id": "string",
      "name": "string",
      "slug": "string",
      "color": "string"
    },
    "enrichment": {
      "display_name": "string",
      "category": {
        "id": "string",
        "name": "string",
        "slug": "string",
        "color": "string"
      }
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Update transaction

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

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Request Body

application/json

category_id?|
notes?|
exclude_from_analytics?boolean

Response Body

application/json

application/json

application/json

curl -X PATCH "https://api.expensicat.com/api/v1/transactions/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "bank_account_id": "string",
    "transaction_id": "string",
    "booking_date": "string",
    "amount": 0,
    "currency": "string",
    "description": "string",
    "status": "string",
    "raw_data": null,
    "created_at": "string",
    "updated_at": "string",
    "name": "string",
    "method": "string",
    "category_id": "string",
    "converted_amount": 0,
    "base_amount": 0,
    "base_currency": "string",
    "exclude_from_analytics": true,
    "notes": "string",
    "is_recurring": true,
    "recurrence_period": "string",
    "recurring_last_detected_at": "string",
    "recurring_series_id": "string",
    "bank_account": {
      "id": "string",
      "name": "string"
    },
    "category": {
      "id": "string",
      "name": "string",
      "slug": "string",
      "color": "string"
    },
    "enrichment": {
      "display_name": "string",
      "category": {
        "id": "string",
        "name": "string",
        "slug": "string",
        "color": "string"
      }
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Delete transaction

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