Skip to main content
POST
/
expenses
Create an expense
curl --request POST \
  --url https://web.subly.app/api/v1/expenses \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "name": "<string>",
  "type": "subscription",
  "cost": 123,
  "project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "category": "<string>",
  "tags": [
    123
  ],
  "is_recurring": true,
  "billing_freq": 123,
  "billing_range": "day",
  "nextPaymentDate": "2023-11-07T05:31:56Z",
  "initialPaymentDate": "2023-11-07T05:31:56Z",
  "end_date": "2023-11-07T05:31:56Z",
  "refund_deadline": "2023-11-07T05:31:56Z",
  "currency": "<string>",
  "isActive": true,
  "website": "<string>",
  "renewal_date": "2023-11-07T05:31:56Z"
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "category": "<string>",
  "tags": [
    123
  ],
  "type": "subscription",
  "is_recurring": true,
  "billing_freq": 123,
  "billing_range": "day",
  "nextPaymentDate": "2023-11-07T05:31:56Z",
  "initialPaymentDate": "2023-11-07T05:31:56Z",
  "end_date": "2023-11-07T05:31:56Z",
  "refund_deadline": "2023-11-07T05:31:56Z",
  "cost": 123,
  "currency": "<string>",
  "isActive": true,
  "website": "<string>",
  "workspace_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "renewal_date": "2023-11-07T05:31:56Z"
}

Authorizations

x-api-key
string
header
required

Your private API key for authentication. This key identifies your workspace for all requests.

Body

application/json
name
string
required

Name of the expense.

type
enum<string>
required

The type of expense.

Available options:
subscription,
one-time,
ltd
cost
number<float>
required

Cost of the expense.

project_id
string<uuid>
required

Project to assign the expense to.

category
string

Category for the expense.

tags
integer[]

Array of tag IDs.

is_recurring
boolean

Is the expense recurring?

billing_freq
integer

Required if recurring.

billing_range
enum<string>

Required if recurring.

Available options:
day,
week,
month,
year
nextPaymentDate
string<date-time>

Required if recurring.

initialPaymentDate
string<date-time>
end_date
string<date-time>
refund_deadline
string<date-time>
currency
string

ISO 4217 currency code.

isActive
boolean
website
string<uri>
renewal_date
string<date-time>

Response

Expense created successfully.

id
string<uuid>

Unique identifier for the expense.

name
string

Name of the expense (e.g., 'Netflix Subscription').

category
string

Category for the expense (e.g., 'Software').

tags
integer[]

An array of tag IDs for organizational purposes.

type
enum<string>

The type of expense.

Available options:
subscription,
one-time,
ltd
is_recurring
boolean

Flag indicating if the expense is recurring. Automatically true if type is 'subscription'.

billing_freq
integer

Numeric value for the billing frequency (e.g., 1, 3). Required if recurring.

billing_range
enum<string>

The time unit for the billing frequency. Required if recurring.

Available options:
day,
week,
month,
year
nextPaymentDate
string<date-time>

The date of the next scheduled payment. Required if recurring.

initialPaymentDate
string<date-time>

The date the first payment was made.

end_date
string<date-time>

The date the recurring expense is set to end.

refund_deadline
string<date-time>

The final date a refund can be requested.

cost
number<float>

The monetary cost of the expense.

currency
string

The ISO 4217 currency code of the cost (e.g., 'USD', 'AUD').

isActive
boolean

Whether the expense is currently active.

website
string<uri>

URL of the service or product provider.

workspace_id
string<uuid>

Identifier of the workspace this expense belongs to.

project_id
string<uuid>

Identifier of the project this expense is assigned to.

renewal_date
string<date-time>

The date the subscription is set to renew.