Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Weel Open API

The Weel Open API is a single RESTful interface that programmatically reads and writes a business's spend data in Weel — budgets, budget members, budget owners, budget top-ups, users, roles, transactions, statements, invites, categories, tax rates, accounting codes, and custom fields — to automate expense workflows and build custom integrations. OpenAPI 3.1.0, 30 documented operations across 15 resource tags, authenticated with a bearer API key. API access is available on the Enterprise plan.

Weel Open API is published by Weel on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Spend Management, Expense Management, Budgets, Transactions, and Card Issuing. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, authentication docs, and a getting-started guide.

This API exposes 51 operations across 30 paths, organized into 15 resource areas, and defines 63 schemas. It is described by OpenAPI 3.1.0, at version v1.

Requests are made against a single base URL, https://public.letsweel.com.

51 operations 30 paths 63 schemas 10 DELETE24 GET6 PATCH11 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
v1
Base URL
https://public.letsweel.com
Authentication
HTTP Bearer
Terms of Service
Resource Areas
15

Authentication & Security 1

Weel Open API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (BearerAuth). By default, every request must be authenticated.

Paths & Operations 51

Across 30 paths, the API surfaces 51 operations — 10 DELETE, 24 GET, 6 PATCH, 11 POST. They span 15 resource areas, including Transactions, Statements, Users, Roles, Invites, Budgets, Budget Topups, Budget Members, and 7 more. Each is listed below with its method, path, parameters, and response codes.

Transactions 2

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

GET
/v2/businesses/{client_id}/transactions
List transactions
listTransactions 8 params → 200401403
GET
/v2/businesses/{client_id}/transactions/{transaction_id}
Get transaction
getTransaction 2 params → 200401403404
Statements 2

This group of endpoints allows you to retrieve a list of balances for the required period for a given business.

GET
/v1/businesses/{client_id}/statements
List statements
listStatements 5 params → 200401403
GET
/v1/businesses/{client_id}/balance
Get account balances
listBalances 1 param → 200401403
Users 5

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

GET
/v1/businesses/{client_id}/users
List users
listUsers 3 params → 200401403
GET
/v1/businesses/{client_id}/users/{user_id}
Get user
getUser 2 params → 200401403404
PATCH
/v1/businesses/{client_id}/users/{user_id}
Update user
updateUser 2 params body → 200400401403404
DELETE
/v1/businesses/{client_id}/users/{user_id}
Delete user
deleteUser 2 params → 204400401403404503
GET
/v1/businesses/{client_id}/users/{user_id}/budget-members
List budget members by user ID
listBudgetMembersByUser 2 params → 200401403404
Roles 1

This group of endpoints allows you to retrieve the roles available within a business and the permissions assigned to each role.

GET
/v1/businesses/{client_id}/roles
List roles
listRoles 3 params → 200401403
Invites 3

This group of endpoints allows you to create, list, and cancel pending user invitations. An invite exists until the recipient accepts it, at which point they appear as a user in t…

GET
/v1/businesses/{client_id}/invites
List invites
listInvites 3 params → 200401403
POST
/v1/businesses/{client_id}/invites
Create invite
createInvite 1 param body → 201400401403
DELETE
/v1/businesses/{client_id}/invites/{invite_id}
Cancel invite
cancelInvite 2 params → 204400401403404
Budgets 5

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…

GET
/v1/businesses/{client_id}/budgets
List budgets
listBudgets 6 params → 200401403
POST
/v1/businesses/{client_id}/budgets
Create a budget
createBudget 1 param body → 201400401403429
GET
/v1/businesses/{client_id}/budgets/{budget_id}
Get budget
getBudget 2 params → 200401403404
PATCH
/v1/businesses/{client_id}/budgets/{budget_id}
Update a budget
updateBudget 2 params body → 200400401403404
DELETE
/v1/businesses/{client_id}/budgets/{budget_id}
Delete a budget
deleteBudget 2 params → 204400401403404
Budget Topups 4

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…

GET
/v1/businesses/{client_id}/budgets/{budget_id}/topups
List budget topups
listBudgetTopups 2 params → 200
POST
/v1/businesses/{client_id}/budgets/{budget_id}/topups
Create budget topup
createBudgetTopup 2 params body → 200400401403
GET
/v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}/topups
List budget member topups
listBudgetMemberTopups 3 params → 200
POST
/v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}/topups
Create budget member topup
createBudgetMemberTopup 3 params body → 200400401403
Budget Members 5

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

GET
/v1/businesses/{client_id}/budgets/{budget_id}/members
List budget members
listBudgetMembers 6 params → 200401403
POST
/v1/businesses/{client_id}/budgets/{budget_id}/members
Add budget member
createBudgetMember 2 params body → 201400401403404
GET
/v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}
Get budget member
getBudgetMember 3 params → 200401403404
PATCH
/v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}
Update budget member
updateBudgetMember 3 params body → 200400401403404
DELETE
/v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}
Remove budget member
deleteBudgetMember 3 params → 204400401403404
Budget Owners 3

This group of endpoints allows you to retrieve and manage budget owners. A budget owner is a user (or pending invite) who can approve spend, top up, and otherwise manage the budge…

GET
/v1/businesses/{client_id}/budgets/{budget_id}/owners
List budget owners
listBudgetOwners 5 params → 200400401403404
POST
/v1/businesses/{client_id}/budgets/{budget_id}/owners
Add budget owner
createBudgetOwner 2 params body → 201400401403404
DELETE
/v1/businesses/{client_id}/budgets/{budget_id}/owners/{budget_owner_id}
Remove budget owner
deleteBudgetOwner 3 params → 204400401403404
Custom Fields 5

This group of endpoints allows you to create and manage custom fields (dimensions/cost centres) for your business. Custom fields can be of type LIST (with predefined options) or F…

GET
/v1/businesses/{client_id}/custom-fields
List custom fields
listCustomFields 3 params → 200401403
POST
/v1/businesses/{client_id}/custom-fields
Create a custom field
createCustomField 1 param body → 201400401403
GET
/v1/businesses/{client_id}/custom-fields/{custom_field_id}
Get a custom field
getCustomField 2 params → 200401403404
PATCH
/v1/businesses/{client_id}/custom-fields/{custom_field_id}
Update a custom field
updateCustomField 2 params body → 200400401403404
DELETE
/v1/businesses/{client_id}/custom-fields/{custom_field_id}
Delete a custom field
deleteCustomField 2 params → 204401403404
Custom Field Options 4

This group of endpoints allows you to manage the list options for a LIST type custom field. Options created via the Public API can be disabled or deleted.

GET
/v1/businesses/{client_id}/custom-fields/{custom_field_id}/options
List custom field options
listCustomFieldOptions 4 params → 200401403404
POST
/v1/businesses/{client_id}/custom-fields/{custom_field_id}/options
Create a custom field option
createCustomFieldOption 2 params body → 201400401403404
PATCH
/v1/businesses/{client_id}/custom-fields/{custom_field_id}/options/{option_id}
Update a custom field option
updateCustomFieldOption 3 params body → 200400401403404
DELETE
/v1/businesses/{client_id}/custom-fields/{custom_field_id}/options/{option_id}
Delete a custom field option
deleteCustomFieldOption 3 params → 204400401403404
Custom Field Budgets 3

This group of endpoints allows you to link custom fields to budgets, controlling which budgets have a custom field assigned.

GET
/v1/businesses/{client_id}/custom-fields/{custom_field_id}/budgets
List budgets linked to a custom field
listCustomFieldBudgets 4 params → 200401403404
POST
/v1/businesses/{client_id}/custom-fields/{custom_field_id}/budgets
Link a budget to a custom field
linkCustomFieldBudget 2 params body → 201400401403404
DELETE
/v1/businesses/{client_id}/custom-fields/{custom_field_id}/budgets/{budget_id}
Unlink a budget from a custom field
unlinkCustomFieldBudget 3 params → 204401403404
Accounting Codes 3

This group of endpoints allows you to manage GL codes (accounting codes) for your business. GL codes are used to classify expenses for bookkeeping export. Businesses with a connec…

GET
/v1/businesses/{client_id}/accounting-codes
List accounting codes
listAccountingCodes 3 params → 200401403
POST
/v1/businesses/{client_id}/accounting-codes
Create or update an accounting code
upsertAccountingCode 1 param body → 200201400401403
DELETE
/v1/businesses/{client_id}/accounting-codes/{accounting_code_id}
Delete an accounting code
deleteAccountingCode 2 params → 204400401403404
Categories 4

This group of endpoints allow you to manage expense categories for your business. Categories classify transactions. System-defined categories (custom: false) can only have their e…

GET
/v1/businesses/{client_id}/categories
List categories
listCategories 4 params → 200401403
POST
/v1/businesses/{client_id}/categories
Create a category
createCategory 1 param body → 201400401403
PATCH
/v1/businesses/{client_id}/categories/{category_id}
Update a category
updateCategory 2 params body → 200400401403404
DELETE
/v1/businesses/{client_id}/categories/{category_id}
Delete a category
deleteCategory 2 params → 204400401403404
Tax Rates 2

This group of endpoints allows you to retrieve the tax rates configured for your business. Tax rates are read-only via the Public API. For businesses with a connected accounting i…

GET
/v1/businesses/{client_id}/tax-rates
List tax rates
listTaxRates 3 params → 200401403
GET
/v1/businesses/{client_id}/tax-rates/{tax_rate_id}
Get tax rate
getTaxRate 2 params → 200401403404

Schemas 63

The contract defines 63 schemas that model the data the API accepts and returns. The most detailed are Transaction (19 properties), Budget (17 properties), User (16 properties), BudgetCreateRequest (10 properties). Each schema is shown below with its type and property counts.

StatementListResponse
object
9 properties
DailyBalance
object
6 properties
TransactionListResponse
object
4 properties
Transaction
object
19 properties
TransactionBudget
object
3 properties
LineItem
object
7 properties
TaxRate
objectnull
A tax rate applied to a line item. May be null when itemised tax rates are enabled for the business but a rate could not be resolved.
7 properties
CustomFieldValue
object
2 properties
InviteListResponse
object
4 properties
PaymentType
string
Invite
object
8 properties
InviteCreateRequest
object
3 properties 3 required
UserListResponse
object
4 properties
RoleListResponse
object
4 properties
Role
object
4 properties 4 required
Permission
object
2 properties 2 required
User
object
16 properties
UserUpdate
object
Fields that may be updated on an active employee. All optional.
7 properties
SubUser
objectnull
4 properties
UserBudget
object
3 properties
UserBudgetMember
object
8 properties
UserBudgetMemberListResponse
object
4 properties
Budget
object
17 properties 17 required
BudgetListResponse
object
4 properties
BudgetResetPeriod
string
The reset cadence for the budget. JULYFINANCIALYEAR resets on 1 July; APRILFINANCIALYEAR resets on 1 April.
BudgetUserRef
object
Reference to an existing Weel user by id.
1 property 1 required
BudgetInviteRef
object
Reference to an outstanding invite by id.
1 property 1 required
BudgetMemberInput
object
A member to attach to the budget. Provide exactly one of user or invite. resetamount is required when hasmemberlimits is true and must be omitted otherwise; th…
3 properties
BudgetOwnerInput
object
An owner (budget approver) to attach to the budget. Provide exactly one of user or invite.
2 properties
BudgetCustomFieldInput
object
A custom field to attach to the budget. allowoptions restricts the visible list items for LIST-type custom fields. Pass [] to detach all options; omit the key…
2 properties 1 required
BudgetCreateRequest
object
10 properties 7 required
BudgetUpdateRequest
object
Partial update of a budget's configuration. To change members or owners, use their respective endpoints — [budget members](tag/Budget-Members) and [budget owne…
8 properties
BudgetMember
object
9 properties
BudgetMemberListResponse
object
4 properties
CreateBudgetMemberRequest
object
Provide exactly one of user or invite. resetamount is required when the budget has hasmemberlimits=true and must be omitted otherwise.
3 properties
UpdateBudgetMemberRequest
object
Updates the member's resetamount. Only valid when the budget has hasmemberlimits=true.
1 property 1 required
BudgetOwner
object
6 properties
BudgetOwnerListResponse
object
4 properties
CreateBudgetOwnerRequest
object
Provide exactly one of user or invite. If the invite has already been accepted by the time the request is processed, the response will contain user rather than…
2 properties
BudgetTopup
object
9 properties
BudgetTopupListResponse
object
4 properties
BudgetTopupCreate
object
3 properties 2 required
LineItemCategory
object
3 properties
Balance
object
2 properties 2 required
CustomField
object
8 properties
CustomFieldListResponse
object
4 properties
CreateCustomFieldRequest
object
3 properties 2 required
UpdateCustomFieldRequest
object
4 properties
CustomFieldOption
object
5 properties
CustomFieldOptionListResponse
object
4 properties
CreateCustomFieldOptionRequest
object
1 property 1 required
UpdateCustomFieldOptionRequest
object
2 properties
CustomFieldBudget
object
2 properties
CustomFieldBudgetListResponse
object
4 properties
CreateCustomFieldBudgetRequest
object
1 property 1 required
AccountingCode
object
5 properties
AccountingCodeListResponse
object
4 properties
CreateAccountingCodeRequest
object
2 properties 2 required
Category
object
7 properties
CategoryListResponse
object
4 properties
TaxRateListResponse
object
4 properties
CreateCategoryRequest
object
2 properties 1 required
UpdateCategoryRequest
object
3 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

weel-openapi.yml Raw ↑