Weel API (v1)

The Weel API empowers businesses with seamless expense management and real-time insights. Our platform makes it easy to integrate and automate expense workflows, manage receipts, and keep track of spending across your organization.

Download OpenAPI description
Languages
Servers
https://public.letsweel.com/

Users

This group of endpoints allows you to retrieve and manage user data, including listing users and fetching individual user details.

Operations

Transactions

This group of endpoints allows you to retrieve and manage transaction data, including listing transactions with various filters and fetching individual transaction details.

Operations

Budgets

This group of endpoints allows you to retrieve and manage budget data, including listing budgets and fetching individual budget details.

Budgets are organised in a hierarchy where a budget can have multiple members. Each member is associated with a user. Funds can be allocated at the budget level or at the member level, using the flag has_member_limits.

Budget Hierachy

Operations

Budget Members

This group of endpoints allows you to retrieve and manage budget member data, including listing budget members and fetching individual budget member details.

Operations

Budget Topups

This group of endpoints allows you to retrieve and create budget topups. Topups are used to increase or decrease the available amount of a budget or budget member.

Topups will be automatically approved, unless a Workflow or Policy has been configured in Weel for that requires approval for budget topups.

There are two types of topups:

  • Budget topups are used to increase or decrease the available amount of a budget. This is only permitted when has_member_limits is false for the budget.
  • Budget member topups are used to increase or decrease the available amount of a budget member. This is only permitted when has_member_limits is true for the budget.

has_member_limits is set to true when this toggle is enabled in the budget creation form. Has Member Limits is true

Operations

List budget topups

Request

List the topups for a budget.

Path
client_idintegerrequired

The ID of the business.

Example: 123
budget_idstringrequired

The ID of the budget.

curl -i -X GET \
  'https://public.letsweel.com/v1/businesses/{client_id}/budgets/{budget_id}/topups' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
countinteger

The total number of topups that match the query.

Example: 100
nextstring

The URL to the next page of topups.

Example: "offset=50&limit=50"
previousstring

The URL to the previous page of topups.

Example: "offset=0&limit=50"
resultsArray of objects(BudgetTopup)
Response
application/json
{ "count": 100, "next": "offset=50&limit=50", "previous": "offset=0&limit=50", "results": [ { … } ] }

Create budget topup

Request

Increase or decrease the available amount of a budget. Only permitted when has_member_limits is false for the budget.

Path
client_idintegerrequired

The ID of the business.

Example: 123
budget_idstringrequired

The ID of the budget.

Bodyapplication/json
amountnumberrequired

Positive values increase the available amount, negative values decrease it.

Example: 100
descriptionstringrequired

The description of the topup.

Example: "Additional funds for travel"
auto_approveboolean

By default, topups require approval before being added to the budget. Set this to true to automatically add the topup to the budget.

Example: true
curl -i -X POST \
  'https://public.letsweel.com/v1/businesses/{client_id}/budgets/{budget_id}/topups' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "amount": 100,
    "description": "Additional funds for travel",
    "auto_approve": true
  }'

Responses

OK

Bodyapplication/json
idstring

The ID of the topup.

Example: "e33b7c61-5124-4ba0-b238-e4c573133715"
amountnumber

Positive values increase the available amount, negative values decrease it.

Example: 100
descriptionstring

The description of the topup.

Example: "Additional funds for travel"
statusstring

The status of the topup.

Enum"APPROVED""CANCELLED""DECLINED""PENDING"
Example: "APPROVED"
requested_byobject or null(SubUser)

The user who requested the topup.

actioned_byobject or null(SubUser)

The user who actioned an approval or decline of the topup.

actioned_onstring(date-time)

The date and time when the topup was actioned.

Example: "2024-01-01T00:00:00Z"
Response
application/json
{ "id": "e33b7c61-5124-4ba0-b238-e4c573133715", "amount": 100, "description": "Additional funds for travel", "status": "APPROVED", "requested_by": { "id": 123, "first_name": "John", "last_name": "Doe" }, "actioned_by": { "id": 123, "first_name": "John", "last_name": "Doe" }, "actioned_on": "2024-01-01T00:00:00Z" }

List budget member topups

Request

List the topups for a budget member.

Path
client_idintegerrequired

The ID of the business.

Example: 123
budget_idstringrequired

The ID of the budget.

budget_member_idintegerrequired

The ID of the budget member.

curl -i -X GET \
  'https://public.letsweel.com/v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}/topups' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
countinteger

The total number of topups that match the query.

Example: 100
nextstring

The URL to the next page of topups.

Example: "offset=50&limit=50"
previousstring

The URL to the previous page of topups.

Example: "offset=0&limit=50"
resultsArray of objects(BudgetTopup)
Response
application/json
{ "count": 100, "next": "offset=50&limit=50", "previous": "offset=0&limit=50", "results": [ { … } ] }

Create budget member topup

Request

Increase or decrease the available amount of a budget member. Only permitted when has_member_limits is true for the budget.

Path
client_idintegerrequired

The ID of the business.

Example: 123
budget_idstringrequired

The ID of the budget.

budget_member_idintegerrequired

The ID of the budget member.

Bodyapplication/json
amountnumberrequired

Positive values increase the available amount, negative values decrease it.

Example: 100
descriptionstringrequired

The description of the topup.

Example: "Additional funds for travel"
auto_approveboolean

By default, topups require approval before being added to the budget. Set this to true to automatically add the topup to the budget.

Example: true
curl -i -X POST \
  'https://public.letsweel.com/v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}/topups' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "amount": 100,
    "description": "Additional funds for travel",
    "auto_approve": true
  }'

Responses

OK

Bodyapplication/json
idstring

The ID of the topup.

Example: "e33b7c61-5124-4ba0-b238-e4c573133715"
amountnumber

Positive values increase the available amount, negative values decrease it.

Example: 100
descriptionstring

The description of the topup.

Example: "Additional funds for travel"
statusstring

The status of the topup.

Enum"APPROVED""CANCELLED""DECLINED""PENDING"
Example: "APPROVED"
requested_byobject or null(SubUser)

The user who requested the topup.

actioned_byobject or null(SubUser)

The user who actioned an approval or decline of the topup.

actioned_onstring(date-time)

The date and time when the topup was actioned.

Example: "2024-01-01T00:00:00Z"
Response
application/json
{ "id": "e33b7c61-5124-4ba0-b238-e4c573133715", "amount": 100, "description": "Additional funds for travel", "status": "APPROVED", "requested_by": { "id": 123, "first_name": "John", "last_name": "Doe" }, "actioned_by": { "id": 123, "first_name": "John", "last_name": "Doe" }, "actioned_on": "2024-01-01T00:00:00Z" }