Settle group expenses
settle_group_expensesUse this when a group (trip, vacation, roommates, couple, event) has several shared expenses paid by different people and wants to know who owes who and how to settle up. Each expense can be split equally, by exact amounts, by percentages, or by shares. Returns each person's balance (paid minus share, summing to exactly zero) and the fewest payments that settle every balance to the cent, plus a CSV of payments, balances, and expenses. One currency per call: mixed currencies are rejected and nothing is converted. Does not send payment requests, move money, or remember the group; for one restaurant bill use split_bill.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Optional label, e.g. "Lisbon trip". | |
| people | No | Everyone in the group, e.g. ["Ana", "Ben", "Chloe", "Dev"]. Needed when "everyone" should include someone who never paid. Optional otherwise. | |
| currency | No | ISO 4217 code for every expense, e.g. USD, EUR, GBP. Defaults to USD. Mixed currencies are rejected; nothing is converted. | |
| expenses | Yes | Every shared expense. Example: [{"description": "Airbnb", "amount": 360, "paid_by": "Ana"}, {"description": "Gas", "amount": 90, "paid_by": "Ben", "split_among": ["Ben", "Chloe"]}]. Record a repayment already made as an expense paid_by the person who paid it back, with split_among set to the person who received it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| hints | Yes | ||
| title | Yes | ||
| people | Yes | ||
| totals | Yes | ||
| display | Yes | ||
| minimal | Yes | ||
| currency | Yes | ||
| expenses | Yes | ||
| warnings | Yes | ||
| downloads | Yes | ||
| transfers | Yes | ||
| minor_units | Yes | ||
| expense_count | Yes | ||
| expenses_shown | Yes | ||
| transfer_count | Yes | ||
| nonzero_balances | Yes |