Extract and save Tricount registries to Excel files.
Install dependencies using uv:
git clone https://github.com/wenceslas-sanchez/tricount-extractor.git
cd tricount-extractor
uv sync --all-groupsExtract one or more Tricount registries:
uv run tricount-extractor -id <registry-id> [<registry-id> ...] -f <output-folder>Example:
uv run tricount-extractor -id abc123 xyz789 -f ./outputEach registry is saved as an Excel file with 5 sheets:
Registry participants with their details.
| Column | Description |
|---|---|
| member_id | Unique member identifier |
| member_uuid | Member UUID |
| member_name | Display name |
| status | Membership status (ACTIVE, etc.) |
All expense entries in the registry.
| Column | Description |
|---|---|
| entry_id | Unique entry identifier |
| date | Entry date and time |
| description | Expense description |
| amount | Total amount paid |
| currency | Currency code (USD, EUR, etc.) |
| original_amount | Amount paid in the original currency |
| original_currency | Original currency code if different from registry currency |
| payer | Name of person who paid |
| is_reimbursement | True if this is a reimbursement |
| category | Expense category (FOOD, ACCOMMODATION, etc.) |
How each expense is split among participants.
| Column | Description |
|---|---|
| entry_id | Reference to the expense entry |
| date | Entry date and time |
| description | Expense description |
| payer | Name of person who paid |
| is_reimbursement | True if this is a reimbursement |
| participant | Name of person this allocation applies to |
| share | Amount allocated to this participant |
| currency | Currency code |
| original_share | Share amount in the original currency |
| original_currency | Original currency code if different from registry currency |
Image URLs attached to expense entries.
| Column | Description |
|---|---|
| entry_id | Reference to the expense entry |
| url | URL of the attached image |
Final balance for each member (who owes/is owed).
| Column | Description |
|---|---|
| member | Member name |
| balance | Net balance (positive = owed, negative = owes) |
Run tests:
uv run --all-groups pytest