# Splitwise

Splitwise helps you split bills and expenses with friends and family.

- **Category:** payment processing
- **Auth:** OAUTH2, API_KEY
- **Composio Managed App Available?** Yes
- **Tools:** 27
- **Triggers:** 0
- **Slug:** `SPLITWISE`
- **Version:** 20260316_00

## Tools

### Add Friend

**Slug:** `SPLITWISE_ADD_FRIEND`

Tool to add a new friend to Splitwise. Use when you have the friend's email and name details ready.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_email` | string | Yes | Email address of the friend to add |
| `user_last_name` | string | No | Last name of the friend (optional) |
| `user_first_name` | string | No | First name of the friend; required if they are not already a Splitwise user |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add User to Group

**Slug:** `SPLITWISE_ADD_USER_TO_GROUP`

Tool to add a user to a group. Use when you need to add an existing Splitwise user to a specific group. Note: 200 OK does not indicate success; always check the response 'success' field.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | Yes | The ID of the user being added to the group |
| `group_id` | integer | Yes | The ID of the group to add the user to |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Comment

**Slug:** `SPLITWISE_CREATE_COMMENT`

Tool to create a comment on a specific expense. Use when you need to add a comment or note to an existing expense.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The text content of the comment. |
| `expense_id` | integer | Yes | The ID of the expense to which the comment will be added. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Expense

**Slug:** `SPLITWISE_CREATE_EXPENSE`

Tool to create a new Splitwise expense. Use when you need to record a payment or bill in a group or between users. Provide exactly one of split_equally or users for shares — supplying both or neither causes a validation error and no expense is created.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cost` | string | Yes | Total cost as string decimal (up to 2 decimal places) |
| `date` | string | No | Date when the expense occurred (ISO 8601 format). Defaults to current time if omitted |
| `users` | array | No | List of participants with custom share amounts. Required when using custom splits instead of split_equally Each user object must include `paid_share` and `owed_share` as decimal strings with up to 2 decimal places (e.g., '25.00'). |
| `details` | string | No | Additional notes or details about the expense |
| `group_id` | integer | Yes | ID of the group to add this expense to. Use 0 for expenses between friends (not in a group) |
| `category_id` | integer | No | Expense category ID (use get_categories action to retrieve valid IDs). Defaults to 'General' |
| `description` | string | Yes | Brief description of what the expense is for |
| `currency_code` | string | No | 3-letter ISO currency code (e.g., USD, EUR, GBP). Defaults to user's default currency |
| `split_equally` | boolean | No | Set to true to split cost equally. When group_id=0, you must also provide users list to specify participants |
| `repeat_interval` | string ("never" | "weekly" | "fortnightly" | "monthly" | "yearly") | No | How often this expense repeats. Use 'never' or omit for one-time expenses |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Friends

**Slug:** `SPLITWISE_CREATE_FRIENDS`

Tool to add multiple friends at once to Splitwise. Use when you need to add several friends in a single operation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `users` | array | Yes | List of users to add as friends. Each user must have an email and first_name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Group

**Slug:** `SPLITWISE_CREATE_GROUP`

Tool to create a new group in Splitwise. Use when you need to create a group for tracking shared expenses. The current user is automatically added to the group. You can optionally add other members during creation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the group to create |
| `users` | array | No | List of users to add to the group. Each user needs either user_id or email. First and last name are optional. |
| `group_type` | string ("home" | "trip" | "couple" | "other" | "apartment" | "house") | No | Type of group being created. Options: 'home', 'trip', 'couple', 'other', 'apartment', 'house' |
| `simplify_by_default` | boolean | No | Whether to turn on simplified debts for this group |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Comment

**Slug:** `SPLITWISE_DELETE_COMMENT`

Tool to delete a comment by its ID. Use after confirming you have a valid comment ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the comment to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Expense

**Slug:** `SPLITWISE_DELETE_EXPENSE`

Tool to delete an existing expense by its ID. Deletion is irreversible — no undelete capability exists. Use after confirming you have the correct expense ID. Inspect the response's `success` and `error` fields to verify deletion succeeded; failures (e.g., user lacks owner/participant permissions) are surfaced there.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the expense to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Friend

**Slug:** `SPLITWISE_DELETE_FRIEND`

Tool to delete an existing friend by ID. Use when you need to remove a friend relationship by its user ID. Call after confirming the correct friend ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `friend_id` | integer | Yes | The unique identifier of the friend to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Group

**Slug:** `SPLITWISE_DELETE_GROUP`

Tool to delete a group and all associated records by its ID. Use when you need to permanently remove a group and its expenses. Call after confirming the correct group ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the group to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Categories

**Slug:** `SPLITWISE_GET_CATEGORIES`

Tool to retrieve expense categories. Use when you need to list available categories before creating an expense.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Comments

**Slug:** `SPLITWISE_GET_COMMENTS`

Tool to retrieve all comments associated with a specific expense. Use when you need to view comments on an expense, including both system-generated updates and user-authored messages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expense_id` | integer | Yes | The ID of the expense for which to retrieve comments. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Currencies

**Slug:** `SPLITWISE_GET_CURRENCIES`

Tool to retrieve a list of supported currencies. Use when you need to display or validate currency options.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Current User

**Slug:** `SPLITWISE_GET_CURRENT_USER`

Tool to retrieve information about the current authenticated user. Use when you need profile details of the logged-in user.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Expense

**Slug:** `SPLITWISE_GET_EXPENSE`

Tool to retrieve detailed information about a specific expense by ID. Use when you need to view expense details including participants, shares, and repayments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier for the expense. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Expenses

**Slug:** `SPLITWISE_GET_EXPENSES`

Tool to list the current user's expenses from Splitwise account. Use when you need to view expenses with optional filters like date ranges, groups, or friends.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of expenses to return per request. Useful for controlling page size. |
| `offset` | integer | No | Number of expenses to skip for pagination. Use for loading subsequent pages of results. |
| `visible` | boolean | No | Show only non-deleted expenses when true. Set to false to include deleted expenses. |
| `group_id` | integer | No | Filter expenses by specific group ID. Returns only expenses belonging to this group. |
| `friend_id` | integer | No | Filter expenses by specific friend ID. Returns only expenses involving this friend. |
| `dated_after` | string | No | Return expenses dated after this date. Must be ISO 8601 datetime format. |
| `dated_before` | string | No | Return expenses dated before this date. Must be ISO 8601 datetime format. |
| `updated_after` | string | No | Return expenses updated after this date. Must be ISO 8601 datetime format. |
| `updated_before` | string | No | Return expenses updated before this date. Must be ISO 8601 datetime format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Friend Details

**Slug:** `SPLITWISE_GET_FRIEND`

Tool to retrieve detailed information about a specific friend. Use when you need to get profile details and balance information for a friend by their user ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | User ID of the friend to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Friends

**Slug:** `SPLITWISE_GET_FRIENDS`

Tool to list current user's friends on Splitwise. Use when you need to view all friends, their balances, and shared groups.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Group Details

**Slug:** `SPLITWISE_GET_GROUP`

Tool to retrieve detailed information about a specific group. Returns full group details including members, balances, debts (both original and simplified), avatar URLs, and group settings. Use this when you need comprehensive information about a particular group, such as viewing who owes what to whom. Use group ID of 0 to get non-group expenses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the group to retrieve. Use 0 to get non-group expenses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Groups

**Slug:** `SPLITWISE_GET_GROUPS`

Retrieves all groups the authenticated user belongs to, including group details, members, balances, and debt information. Returns a 'groups' array with no server-side filtering; all name- or ID-based filtering must be done client-side on the full response. Group names may share similar strings or differ in case/whitespace — normalize when matching and prefer group_id once identified. The groups array may be empty if the user belongs to no groups.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Notifications

**Slug:** `SPLITWISE_GET_NOTIFICATIONS`

Tool to retrieve recent activity notifications from the user's Splitwise account. Returns notifications with HTML content suitable for display, with the most recent items first. Use when you need to view recent account activity or updates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of notifications to return. Omit or provide 0 to get the maximum number of notifications. The server sets arbitrary (but large) limits on the number returned. |
| `updated_after` | string | No | If provided, returns only notifications after this time. Must be ISO 8601 datetime format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Information

**Slug:** `SPLITWISE_GET_USER`

Retrieves basic profile information about any Splitwise user by their ID. Returns the user's name, email, registration status, and profile picture. This endpoint only returns public user information. For the authenticated user's full profile (including notifications, currency preferences, and locale settings), use get_current_user instead.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The user ID of the person whose information you want to retrieve Prefer IDs sourced from SPLITWISE_GET_GROUP responses to ensure validity. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove User from Group

**Slug:** `SPLITWISE_REMOVE_USER_FROM_GROUP`

Tool to remove a user from a group. Use when you need to remove a user from a specific group. Note: User must have a zero balance in the group for removal to succeed. 200 OK does not indicate success; always check the response 'success' field.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | Yes | The ID of the user to remove from the group. User must have a zero balance in the group to be removed. |
| `group_id` | integer | Yes | The ID of the group from which to remove the user |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Restore Deleted Expense

**Slug:** `SPLITWISE_UNDELETE_EXPENSE`

Tool to restore a previously deleted expense and its associated records. Use when you need to recover an expense that was deleted. Call after confirming the correct expense ID. Not a guaranteed undo mechanism — treat deletion as high-impact and verify restoration completeness afterward.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the expense to restore. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Restore Deleted Group

**Slug:** `SPLITWISE_UNDELETE_GROUP`

Tool to restore a previously deleted group and all its associated records. Use when you need to recover a group that was deleted. Call after confirming the correct group ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the group to restore. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Expense

**Slug:** `SPLITWISE_UPDATE_EXPENSE`

Tool to update an existing Splitwise expense. Use when you need to modify expense details such as cost, description, or participant shares. Only include fields you want to change. Note that a 200 OK response does not guarantee success - check that the errors object is empty.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the expense to update |
| `cost` | string | No | Total cost as string decimal with max 2 dp |
| `date` | string | No | When the expense took place (ISO 8601) Convert natural-language or locale-specific dates to ISO 8601 before sending. |
| `users` | array | No | List of custom share allocations. WARNING: If provided, ALL expense shares will be overwritten Each user entry must include `paid_share` and `owed_share`; both fields must each independently sum exactly to `cost`. Omit this field entirely unless a full overwrite of all shares is intended. |
| `details` | string | No | Additional notes for the expense |
| `group_id` | integer | No | Group ID to assign this expense to (0 for no group) |
| `category_id` | integer | No | Category ID from get_categories |
| `description` | string | No | Short description of the expense |
| `currency_code` | string | No | 3-letter currency code, e.g., USD |
| `repeat_interval` | string ("never" | "weekly" | "fortnightly" | "monthly" | "yearly") | No | Repeat interval for the expense |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update User

**Slug:** `SPLITWISE_UPDATE_USER`

Tool to update user account details including name, email, password, and preferences. Use when you need to modify the current user's profile information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The user ID to update. Must be the authenticated user's ID. |
| `email` | string | No | User's email address |
| `locale` | string | No | Language/region preference (e.g., 'en', 'es', 'fr') |
| `password` | string | No | User's account password |
| `last_name` | string | No | User's family name |
| `first_name` | string | No | User's given name |
| `default_currency` | string | No | Preferred currency code (e.g., 'USD', 'EUR', 'GBP') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
