123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240{"id":"com.lattice.expenses","name":"Shared Expenses","icon":"🧾","color":"#4f46e5","description":"Group expenses and settlements in Splitwise's data format.","provenance":"Splitwise API 3.0, verified 2026-10-14: https://dev.splitwise.com/#tag/expenses/paths/~1get_expense~1{id}/get and https://dev.splitwise.com/#tag/expenses/paths/~1create_expense/post . Adopted expense id, cost, description, details, date, currency_code, group_id, repeat_interval, payment, created_at, updated_at. cost remains the documented decimal string (at most two places); payment is projected from boolean to SQLite 0/1. Participant allocations and balances are outside this expense-row subset. Fixture actions are not Splitwise webhooks.","requested_permissions":{"storage":["sql"],"network":{"allowlist":[]},"events":{"expense-added":{"description":"An expense or settlement payment was added.","schema":{"type":"object","properties":{"id":{"type":"integer","description":"Expense ID."},"cost":{"type":"string","description":"Decimal string in major currency units, at most two decimal places.","pattern":"^\\d+(\\.\\d{1,2})?$"},"description":{"type":"string","description":"Expense description."},"details":{"type":["string","null"],"description":"Expense notes; null means unspecified."},"date":{"type":"string","description":"Expense occurrence timestamp, ISO 8601."},"currency_code":{"type":"string","description":"Three-letter currency code, e.g. USD or EUR.","pattern":"^[A-Z]{3}$"},"group_id":{"type":["integer","null"],"description":"Group ID; null means no group."},"repeat_interval":{"type":"string","description":"Repeat frequency.","enum":["never","weekly","fortnightly","monthly","yearly"]},"payment":{"type":"integer","description":"Settlement flag: 0=purchase, 1=settlement payment.","enum":[0,1]},"created_at":{"type":["string","null"],"description":"Creation timestamp, ISO 8601; null means unspecified."},"updated_at":{"type":["string","null"],"description":"Last-update timestamp, ISO 8601; null means unspecified."}},"required":["id","cost","description","date","currency_code","payment"],"additionalProperties":false}},"expense-updated":{"description":"An expense was updated.","schema":{"type":"object","properties":{"id":{"type":"integer","description":"Expense ID."},"cost":{"type":"string","description":"Decimal string in major currency units, at most two decimal places.","pattern":"^\\d+(\\.\\d{1,2})?$"},"description":{"type":"string","description":"Expense description."},"details":{"type":["string","null"],"description":"Expense notes; null means unspecified."},"date":{"type":"string","description":"Expense occurrence timestamp, ISO 8601."},"currency_code":{"type":"string","description":"Three-letter currency code, e.g. USD or EUR.","pattern":"^[A-Z]{3}$"},"group_id":{"type":["integer","null"],"description":"Group ID; null means no group."},"repeat_interval":{"type":"string","description":"Repeat frequency.","enum":["never","weekly","fortnightly","monthly","yearly"]},"payment":{"type":"integer","description":"Settlement flag: 0=purchase, 1=settlement payment.","enum":[0,1]},"created_at":{"type":["string","null"],"description":"Creation timestamp, ISO 8601; null means unspecified."},"updated_at":{"type":["string","null"],"description":"Last-update timestamp, ISO 8601; null means unspecified."}},"required":["id","cost","description","date","currency_code","payment"],"additionalProperties":false}},"expense-deleted":{"description":"An expense was deleted.","schema":{"type":"object","properties":{"id":{"type":"integer","description":"Expense ID."},"description":{"type":"string","description":"Expense description."},"cost":{"type":"string","description":"Decimal string in major currency units, at most two decimal places.","pattern":"^\\d+(\\.\\d{1,2})?$"},"currency_code":{"type":"string","description":"Three-letter currency code, e.g. USD or EUR.","pattern":"^[A-Z]{3}$"}},"required":["id","description"],"additionalProperties":false}}},"listeners":{"add-expense":{"description":"Log an expense or settlement payment.","schema":{"type":"object","properties":{"id":{"type":"integer","description":"Expense ID; generated when omitted."},"cost":{"type":"string","description":"Decimal string in major currency units, at most two decimal places.","pattern":"^\\d+(\\.\\d{1,2})?$"},"description":{"type":"string","description":"Expense description."},"details":{"type":["string","null"],"description":"Expense notes; omitted or null means unspecified."},"date":{"type":"string","description":"Expense occurrence timestamp, ISO 8601."},"currency_code":{"type":"string","description":"Three-letter currency code, e.g. USD or EUR.","pattern":"^[A-Z]{3}$"},"group_id":{"type":["integer","null"],"description":"Group ID; omitted or null means no group."},"repeat_interval":{"type":"string","description":"Repeat frequency; omitted defaults to never.","enum":["never","weekly","fortnightly","monthly","yearly"]},"payment":{"type":"integer","description":"Settlement flag: 0=purchase, 1=settlement payment; omitted defaults to 0.","enum":[0,1]},"created_at":{"type":["string","null"],"description":"Creation timestamp, ISO 8601; omitted or null means unspecified."},"updated_at":{"type":["string","null"],"description":"Last-update timestamp, ISO 8601; omitted or null means unspecified."}},"required":["cost","description","date","currency_code"],"additionalProperties":false}}}},"x-effects":{"add-expense":{"table":"expenses","emits":"expense-added"}}}