Expense Categories

These endpoints are used to manage categories for expense entries.


List Expense Categories

GET /api/expense-categories

Description: Retrieves a list of all expense categories for your company.

Authorization: API Key (Bearer Token) required.

Request

curl -X GET "https://your-summit-instance.com/api/expense-categories" \
     -H "Authorization: Bearer <YOUR_API_TOKEN>"

Response (Success: 200 OK)

{
  "data": [
    {
      "id": 1,
      "companyId": 1,
      "name": "Office Supplies",
      "createdAt": "2023-10-01T00:00:00.000Z",
      "updatedAt": "2023-10-01T00:00:00.000Z",
      "softDelete": false
    }
  ],
  "total": 1
}

Create Expense Category

POST /api/expense-categories

Description: Creates a new expense category.

Authorization: API Key (Bearer Token) required.

Request Body: application/json

  • Name
    name
    Type
    string
    Description

    Name of the expense category.

Error Responses:

  • 400 Bad Request: If a category with the same name already exists.

Request

curl -X POST "https://your-summit-instance.com/api/expense-categories" \
     -H "Authorization: Bearer <YOUR_API_TOKEN>" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "Travel Expenses"
     }'

Response (Success: 201 Created)

{
  "id": 2,
  "companyId": 1,
  "name": "Travel Expenses",
  "createdAt": "2023-10-27T13:00:00.000Z",
  "updatedAt": "2023-10-27T13:00:00.000Z",
  "softDelete": false
}

Get Category Details

GET /api/expense-categories/{categoryId}

Description: Retrieves details for a specific expense category.

Authorization: API Key (Bearer Token) required.

Path Parameters:

  • Name
    categoryId
    Type
    integer
    Description

    ID of the expense category to retrieve.

Request

curl -X GET "https://your-summit-instance.com/api/expense-categories/2" \
     -H "Authorization: Bearer <YOUR_API_TOKEN>"

Response (Success: 200 OK)

{
  "id": 2,
  "companyId": 1,
  "name": "Travel Expenses",
  "createdAt": "2023-10-27T13:00:00.000Z",
  "updatedAt": "2023-10-27T13:00:00.000Z",
  "softDelete": false
}

Update Expense Category

PUT /api/expense-categories/{categoryId}

Description: Updates an existing expense category.

Authorization: API Key (Bearer Token) required.

Path Parameters:

  • Name
    categoryId
    Type
    integer
    Description

    ID of the expense category to update.

Request Body: application/json

  • Name
    name
    Type
    string
    Description

    New name for the expense category.

Error Responses:

  • 400 Bad Request: If another category with the new name already exists.
  • 404 Not Found: If the category doesn't exist.

Request

curl -X PUT "https://your-summit-instance.com/api/expense-categories/2" \
     -H "Authorization: Bearer <YOUR_API_TOKEN>" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "Business Travel"
     }'

Response (Success: 200 OK)

{
  "id": 2,
  "companyId": 1,
  "name": "Business Travel",
  "createdAt": "2023-10-27T13:00:00.000Z",
  "updatedAt": "2023-10-27T14:00:00.000Z",
  "softDelete": false
}

Delete Expense Category

DELETE /api/expense-categories/{categoryId}

Description: Soft deletes an expense category.

Authorization: API Key (Bearer Token) required.

Path Parameters:

  • Name
    categoryId
    Type
    integer
    Description

    ID of the expense category to delete.

Error Responses:

  • 400 Bad Request: If the category is in use.
  • 404 Not Found: If the category doesn't exist.

Request

curl -X DELETE "https://your-summit-instance.com/api/expense-categories/2" \
     -H "Authorization: Bearer <YOUR_API_TOKEN>"

Response (Success: 200 OK)

{
  "message": "Category deleted successfully"
}

Was this page helpful?