REST API for the mibudge personal budgeting service.
All endpoints require JWT authentication via Authorization: Bearer <token> header. Obtain tokens through the login flow; refresh via POST /api/token/refresh/ (httpOnly cookie).
/api/v1/users/me/ available to all authenticated users.owners M2M can access that account and its related objects. Staff and superuser status does not bypass ownership checks.Monetary values are represented as a decimal amount paired with an ISO 4217 currency code (e.g. amount + amount_currency). Currency defaults to the account’s currency if not specified.
Version: 1.0.0
http (in: , name:)POST /api/token/Operation: api_token_create
JWT obtain endpoint that stores the refresh token in an httpOnly cookie and returns only the access token in the response body.
This is the browser-SPA login flow: JS receives the short-lived access token (kept in memory); the refresh token is a Secure/HttpOnly/SameSite=Strict cookie that JS cannot read, and that the browser sends automatically to /api/token/refresh/.
Request Body (application/json):
username (string) (required)password (string) (required)Request Body (application/x-www-form-urlencoded):
username (string) (required)password (string) (required)Request Body (multipart/form-data):
username (string) (required)password (string) (required)Response 200:
access (string) (required, read-only)refresh (string) (required, read-only)POST /api/token/refresh/Operation: api_token_refresh_create
JWT refresh endpoint that reads the refresh token from the httpOnly cookie rather than the request body.
On success, returns {“access”: “
Request Body (application/json):
refresh (string) (required)Request Body (application/x-www-form-urlencoded):
refresh (string) (required)Request Body (multipart/form-data):
refresh (string) (required)Response 200:
access (string) (required, read-only)refresh (string) (required)GET /api/v1/allocations/Operation: allocations_list
Return allocations belonging to the authenticated user’s transactions. Filterable by transaction, budget, and category. Orderable by created_at.
Parameters:
bank_account (query, optional)budget (query, optional)category (query, optional)ordering (query, optional) — Which field to use when ordering the results.page (query, optional) — A page number within the paginated result set.page_size (query, optional) — Number of results to return per page.transaction (query, optional)Response 200:
count (integer) (required)next (string)previous (string)results (array) (required)GET /api/v1/allocations/{id}/Operation: allocations_retrieve
Return a single transaction allocation by UUID.
Parameters:
id (path, required)Response 200:
id (string) (required, read-only)transaction (string) (required)budget (string)amount (string) (required)amount_currency (string) (required, read-only)budget_balance (string) (required, read-only)budget_balance_currency (string) (required, read-only)category (string) — * Business:Business Clothing - Business ClothingBusiness:Business Services - Business ServicesBusiness:Business Supplies - Business SuppliesBusiness:Meals - MealsBusiness:Travel - TravelChildren:Activities - ActivitiesChildren:Allowance - AllowanceChildren:Baby Supplies - Baby SuppliesChildren:Childcare - ChildcareChildren:Kids Clothing - Kids ClothingChildren:Kids Education - Kids EducationChildren:Toys - ToysCulture:Art - ArtCulture:Books - BooksCulture:Dance - DanceCulture:Games - GamesCulture:Movies - MoviesCulture:Music - MusicCulture:News - NewsCulture:Random Fun - Random FunCulture:TV - TVEducation:Books & Supplies - Books & SuppliesEducation:Room & Board - Room & BoardEducation:Student Loans - Student LoansEducation: Tuition & Fees - Tuition & FeesFees:ATM Fees - ATM FeesFees:Investment Fees - Investment FeesFees:Other Fees - Other FeesFinancial:Accounting - AccountingFinancial:Credit Card Payment - Credit Card PaymentFinancial:Financial Advice - Financial AdviceFinancial:Life Insurance - Life InsuranceFinancial:Loan - LoanFinancial:Loan Payment - Loan PaymentFinancial:Money Transfers - Money TransfersFinancial:Other Financial - Other FinancialFinancial:Tax Preparation - Tax PreparationFinancial:Taxes, Federal - Taxes, FederalFinancial:Taxes, Other - Taxes, OtherFinancial:Taxes, State - Taxes, StateFood & Drink:Alcohol & Bars - Alcohol & BarsFood & Drink:Coffee & Tea - Coffee & TeaFood & Drink:Dessert - DessertFood & Drink:Fast Food - Fast FoodFood & Drink:Groceries - GroceriesFood & Drink:Other Food & Drink - Other Food & DrinkFood & Drink:Restaurants - RestaurantsFood & Drink:Snacks - SnacksFood & Drink:Tobacco & Like - Tobacco & LikeGifts & Donations:Charities - CharitiesGifts & Donations:Gifts - GiftsHealth & Medical:Care Facilities - Care FacilitiesHealth & Medical:Dentist - DentistHealth & Medical:Doctor - DoctorHealth & Medical:Equipment - EquipmentHealth & Medical:Eyes - EyesHealth & Medical:Health Insurance - Health InsuranceHealth & Medical:Other Health & Medical - Other Health & MedicalHealth & Medical:Pharmacies - PharmaciesHealth & Medical:Prescriptions - PrescriptionsHome:Furnishings - FurnishingsHome:Home Insurance - Home InsuranceHome:Home Purchase - Home PurchaseHome:Home Services - Home ServicesHome:Home Supplies - Home SuppliesHome:Lawn & Garden - Lawn & GardenHome:Mortgage - MortgageHome:Moving - MovingHome:Other Home - Other HomeHome:Property Tax - Property TaxHome:Rent - RentHome:Renter's Insurance - Renter’s InsuranceIncome:Bonus - BonusIncome:Commission - CommissionIncome:Interest - InterestIncome:Other Income - Other IncomeIncome:Paycheck - PaycheckIncome:Reimbursement - ReimbursementIncome:Rental Income - Rental IncomeInvestment:Education Investment - Education InvestmentInvestment:Other Investments - Other InvestmentsInvestment:Retirement - RetirementInvestment:Stocks & Mutual Funds - Stocks & Mutual FundsLegal:Legal Fees - Legal FeesLegal:Legal Services - Legal ServicesLegal:Other Legal Costs - Other Legal CostsOffice:Equipment - EquipmentOffice:Office Supplies - Office SuppliesOffice:Other Office - Other OfficeOffice:Postage & Shipping - Postage & ShippingPersonal:Accessories - AccessoriesPersonal:Beauty - BeautyPersonal:Body Enhancement - Body EnhancementPersonal:Clothing - ClothingPersonal:Counseling - CounselingPersonal:Hair - HairPersonal:Hobbies - HobbiesPersonal:Jewelry - JewelryPersonal:Laundry - LaundryPersonal:Other Personal - Other PersonalPersonal:Religion - ReligionPersonal:Shoes - ShoesPets:Pet Food - Pet FoodPets:Pet Grooming - Pet GroomingPets:Pet Medicine - Pet MedicinePets:Pet Supplies - Pet SuppliesPets:Veterinarian - VeterinarianSports & Fitness:Camping - CampingSports & Fitness:Fitness Gear - Fitness GearSports & Fitness:Golf - GolfSports & Fitness:Memberships - MembershipsSports & Fitness:Other Sports & Fitness - Other Sports & FitnessSports & Fitness:Sporting Events - Sporting EventsSports & Fitness:Sporting Goods - Sporting GoodsTechnology:Domains & Hosting - Domains & HostingTechnology:Hardware - HardwareTechnology:Online Services - Online ServicesTechnology:Software - SoftwareTransportation:Auto Insurance - Auto InsuranceTransportation:Auto Payment - Auto PaymentTransportation:Auto Services - Auto ServicesTransportation:Auto Supplies - Auto SuppliesTransportation:Bicycle - BicycleTransportation:Boats & Marine - Boats & MarineTransportation:Gas - GasTransportation:Other Transportation - Other TransportationTransportation:Parking & Tolls - Parking & TollsTransportation:Parking Tickets - Parking TicketsTransportation:Public Transit - Public TransitTransportation:Shipping - ShippingTransportation:Taxies - TaxiesTravel:Car Rental - Car RentalTravel:Flights - FlightsTravel:Hotels - HotelsTravel:Tours & Cruises - Tours & CruisesTravel:Train - TrainTravel:Travel Buses - Travel BusesTravel:Travel Dining - Travel DiningTravel:Travel Entertainment - Travel EntertainmentUncategorized:Cash - CashUncategorized:Other Shopping - Other ShoppingUncategorized:Unknown - UnknownUncategorized:Unassigned - ——-Utilities:Cable - CableUtilities:Electricity - ElectricityUtilities:Gas & Fuel - Gas & FuelUtilities:Internet - InternetUtilities:Other Utilities - Other UtilitiesUtilities:Phone - PhoneUtilities:Trash - TrashUtilities:Water & Sewer - Water & Sewer Enum: [‘Business:Business Clothing’, ‘Business:Business Services’, ‘Business:Business Supplies’, ‘Business:Meals’, ‘Business:Travel’, ‘Children:Activities’, ‘Children:Allowance’, ‘Children:Baby Supplies’, ‘Children:Childcare’, ‘Children:Kids Clothing’, ‘Children:Kids Education’, ‘Children:Toys’, ‘Culture:Art’, ‘Culture:Books’, ‘Culture:Dance’, ‘Culture:Games’, ‘Culture:Movies’, ‘Culture:Music’, ‘Culture:News’, ‘Culture:Random Fun’, ‘Culture:TV’, ‘Education:Books & Supplies’, ‘Education:Room & Board’, ‘Education:Student Loans’, ‘Education: Tuition & Fees’, ‘Fees:ATM Fees’, ‘Fees:Investment Fees’, ‘Fees:Other Fees’, ‘Financial:Accounting’, ‘Financial:Credit Card Payment’, ‘Financial:Financial Advice’, ‘Financial:Life Insurance’, ‘Financial:Loan’, ‘Financial:Loan Payment’, ‘Financial:Money Transfers’, ‘Financial:Other Financial’, ‘Financial:Tax Preparation’, ‘Financial:Taxes, Federal’, ‘Financial:Taxes, Other’, ‘Financial:Taxes, State’, ‘Food & Drink:Alcohol & Bars’, ‘Food & Drink:Coffee & Tea’, ‘Food & Drink:Dessert’, ‘Food & Drink:Fast Food’, ‘Food & Drink:Groceries’, ‘Food & Drink:Other Food & Drink’, ‘Food & Drink:Restaurants’, ‘Food & Drink:Snacks’, ‘Food & Drink:Tobacco & Like’, ‘Gifts & Donations:Charities’, ‘Gifts & Donations:Gifts’, ‘Health & Medical:Care Facilities’, ‘Health & Medical:Dentist’, ‘Health & Medical:Doctor’, ‘Health & Medical:Equipment’, ‘Health & Medical:Eyes’, ‘Health & Medical:Health Insurance’, ‘Health & Medical:Other Health & Medical’, ‘Health & Medical:Pharmacies’, ‘Health & Medical:Prescriptions’, ‘Home:Furnishings’, ‘Home:Home Insurance’, ‘Home:Home Purchase’, ‘Home:Home Services’, ‘Home:Home Supplies’, ‘Home:Lawn & Garden’, ‘Home:Mortgage’, ‘Home:Moving’, ‘Home:Other Home’, ‘Home:Property Tax’, ‘Home:Rent’, “Home:Renter’s Insurance”, ‘Income:Bonus’, ‘Income:Commission’, ‘Income:Interest’, ‘Income:Other Income’, ‘Income:Paycheck’, ‘Income:Reimbursement’, ‘Income:Rental Income’, ‘Investment:Education Investment’, ‘Investment:Other Investments’, ‘Investment:Retirement’, ‘Investment:Stocks & Mutual Funds’, ‘Legal:Legal Fees’, ‘Legal:Legal Services’, ‘Legal:Other Legal Costs’, ‘Office:Equipment’, ‘Office:Office Supplies’, ‘Office:Other Office’, ‘Office:Postage & Shipping’, ‘Personal:Accessories’, ‘Personal:Beauty’, ‘Personal:Body Enhancement’, ‘Personal:Clothing’, ‘Personal:Counseling’, ‘Personal:Hair’, ‘Personal:Hobbies’, ‘Personal:Jewelry’, ‘Personal:Laundry’, ‘Personal:Other Personal’, ‘Personal:Religion’, ‘Personal:Shoes’, ‘Pets:Pet Food’, ‘Pets:Pet Grooming’, ‘Pets:Pet Medicine’, ‘Pets:Pet Supplies’, ‘Pets:Veterinarian’, ‘Sports & Fitness:Camping’, ‘Sports & Fitness:Fitness Gear’, ‘Sports & Fitness:Golf’, ‘Sports & Fitness:Memberships’, ‘Sports & Fitness:Other Sports & Fitness’, ‘Sports & Fitness:Sporting Events’, ‘Sports & Fitness:Sporting Goods’, ‘Technology:Domains & Hosting’, ‘Technology:Hardware’, ‘Technology:Online Services’, ‘Technology:Software’, ‘Transportation:Auto Insurance’, ‘Transportation:Auto Payment’, ‘Transportation:Auto Services’, ‘Transportation:Auto Supplies’, ‘Transportation:Bicycle’, ‘Transportation:Boats & Marine’, ‘Transportation:Gas’, ‘Transportation:Other Transportation’, ‘Transportation:Parking & Tolls’, ‘Transportation:Parking Tickets’, ‘Transportation:Public Transit’, ‘Transportation:Shipping’, ‘Transportation:Taxies’, ‘Travel:Car Rental’, ‘Travel:Flights’, ‘Travel:Hotels’, ‘Travel:Tours & Cruises’, ‘Travel:Train’, ‘Travel:Travel Buses’, ‘Travel:Travel Dining’, ‘Travel:Travel Entertainment’, ‘Uncategorized:Cash’, ‘Uncategorized:Other Shopping’, ‘Uncategorized:Unknown’, ‘Uncategorized:Unassigned’, ‘Utilities:Cable’, ‘Utilities:Electricity’, ‘Utilities:Gas & Fuel’, ‘Utilities:Internet’, ‘Utilities:Other Utilities’, ‘Utilities:Phone’, ‘Utilities:Trash’, ‘Utilities:Water & Sewer’]memo (string)created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/bank-accounts/Operation: bank_accounts_list
Return bank accounts owned by the authenticated user. Filterable by account_type. Orderable by name or created_at.
Parameters:
account_type (query, optional) — * C - CheckingS - SavingsX - Credit Cardordering (query, optional) — Which field to use when ordering the results.page (query, optional) — A page number within the paginated result set.page_size (query, optional) — Number of results to return per page.Response 200:
count (integer) (required)next (string)previous (string)results (array) (required)POST /api/v1/bank-accounts/Operation: bank_accounts_create
Create a new bank account. The authenticated user is automatically added as an owner. An ‘Unallocated’ budget is auto-created by a post_save signal. Optionally set initial posted_balance, available_balance, and currency (all immutable after creation).
Request Body (application/json):
name (string) (required)bank (string) (required)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Request Body (application/x-www-form-urlencoded):
name (string) (required)bank (string) (required)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Request Body (multipart/form-data):
name (string) (required)bank (string) (required)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Response 201:
id (string) (required, read-only)name (string) (required)bank (string) (required)owners (array) (required, read-only)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)posted_balance_currency (string) (required, read-only)available_balance (string)available_balance_currency (string) (required, read-only)unallocated_budget (string) (required, read-only)last_imported_at (string) (required, read-only) — Wall-clock time of the most recent completed import for this account.last_posted_through (string) (required, read-only) — Latest posted_date seen in the most recent import batch. The funding engine will not process events dated after this value.created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/bank-accounts/{id}/Operation: bank_accounts_retrieve
Return a single bank account by UUID.
Parameters:
id (path, required)Response 200:
id (string) (required, read-only)name (string) (required)bank (string) (required)owners (array) (required, read-only)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)posted_balance_currency (string) (required, read-only)available_balance (string)available_balance_currency (string) (required, read-only)unallocated_budget (string) (required, read-only)last_imported_at (string) (required, read-only) — Wall-clock time of the most recent completed import for this account.last_posted_through (string) (required, read-only) — Latest posted_date seen in the most recent import batch. The funding engine will not process events dated after this value.created_at (string) (required, read-only)modified_at (string) (required, read-only)PUT /api/v1/bank-accounts/{id}/Operation: bank_accounts_update
Full update of a bank account. Only ‘name’ is mutable after creation – bank, account_type, currency, and balances are rejected if changed.
Parameters:
id (path, required)Request Body (application/json):
name (string) (required)bank (string) (required)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Request Body (application/x-www-form-urlencoded):
name (string) (required)bank (string) (required)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Request Body (multipart/form-data):
name (string) (required)bank (string) (required)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Response 200:
id (string) (required, read-only)name (string) (required)bank (string) (required)owners (array) (required, read-only)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)posted_balance_currency (string) (required, read-only)available_balance (string)available_balance_currency (string) (required, read-only)unallocated_budget (string) (required, read-only)last_imported_at (string) (required, read-only) — Wall-clock time of the most recent completed import for this account.last_posted_through (string) (required, read-only) — Latest posted_date seen in the most recent import batch. The funding engine will not process events dated after this value.created_at (string) (required, read-only)modified_at (string) (required, read-only)PATCH /api/v1/bank-accounts/{id}/Operation: bank_accounts_partial_update
Partial update of a bank account. Only ‘name’ is mutable after creation.
Parameters:
id (path, required)Request Body (application/json):
name (string)bank (string)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Request Body (application/x-www-form-urlencoded):
name (string)bank (string)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Request Body (multipart/form-data):
name (string)bank (string)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Response 200:
id (string) (required, read-only)name (string) (required)bank (string) (required)owners (array) (required, read-only)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)posted_balance_currency (string) (required, read-only)available_balance (string)available_balance_currency (string) (required, read-only)unallocated_budget (string) (required, read-only)last_imported_at (string) (required, read-only) — Wall-clock time of the most recent completed import for this account.last_posted_through (string) (required, read-only) — Latest posted_date seen in the most recent import batch. The funding engine will not process events dated after this value.created_at (string) (required, read-only)modified_at (string) (required, read-only)DELETE /api/v1/bank-accounts/{id}/Operation: bank_accounts_destroy
Delete a bank account and all associated budgets, transactions, and allocations.
Parameters:
id (path, required)Response 204: No response body
GET /api/v1/bank-accounts/{id}/funding-summary/Operation: bank_accounts_funding_summary_retrieve
Return the total amounts that will be automatically funded at the next event for each distinct funding schedule on this account. Only active, schedulable budgets are included – paused, archived, completed goals, and RECURRING budgets that delegate to a fill-up goal are excluded. Results are grouped by funding schedule (RRULE string) and sorted by next event date.
Parameters:
id (path, required)Response 200: Per-schedule funding totals.
schedules (array)total_amount (string)currency (string)POST /api/v1/bank-accounts/{id}/mark-imported/Operation: bank_accounts_mark_imported_create
Record that a transaction import has been completed for this account. Sets last_imported_at to now and advances last_posted_through to the supplied date (never regresses an existing value). Body: {“last_posted_through”: “YYYY-MM-DD”}.
Parameters:
id (path, required)Request Body (application/json):
last_posted_through (string) (required)Response 200:
id (string) (required, read-only)name (string) (required)bank (string) (required)owners (array) (required, read-only)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)posted_balance_currency (string) (required, read-only)available_balance (string)available_balance_currency (string) (required, read-only)unallocated_budget (string) (required, read-only)last_imported_at (string) (required, read-only) — Wall-clock time of the most recent completed import for this account.last_posted_through (string) (required, read-only) — Latest posted_date seen in the most recent import batch. The funding engine will not process events dated after this value.created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/banks/Operation: banks_list
Return all banks in the system. Banks are shared reference data managed through the admin – any authenticated user can list and retrieve them.
Parameters:
ordering (query, optional) — Which field to use when ordering the results.page (query, optional) — A page number within the paginated result set.page_size (query, optional) — Number of results to return per page.Response 200:
count (integer) (required)next (string)previous (string)results (array) (required)GET /api/v1/banks/{id}/Operation: banks_retrieve
Return a single bank by UUID.
Parameters:
id (path, required)Response 200:
id (string) (required, read-only)name (string) (required, read-only)routing_number (string) (required, read-only)default_currency (string) (required, read-only) — ISO 4217 currency code (e.g. USD, EUR, GBP).created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/budgets/Operation: budgets_list
Return budgets belonging to the authenticated user’s accounts. Filterable by bank_account, budget_type, archived, and paused. Searchable by name. Orderable by name, created_at, or balance.
Parameters:
archived (query, optional)bank_account (query, optional)budget_type (query, optional) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Cappedordering (query, optional) — Which field to use when ordering the results.page (query, optional) — A page number within the paginated result set.page_size (query, optional) — Number of results to return per page.paused (query, optional)search (query, optional) — A search term.Response 200:
count (integer) (required)next (string)previous (string)results (array) (required)POST /api/v1/budgets/Operation: budgets_create
Create a new budget under a bank account. Required: name, bank_account (UUID), budget_type, funding_type, and target_balance. The bank_account and budget_type are immutable after creation. Balance is managed by signals and is always read-only.
Request Body (application/json):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Request Body (application/x-www-form-urlencoded):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Request Body (multipart/form-data):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Response 201:
id (string) (required, read-only)name (string) (required)bank_account (string) (required)balance (string) (required, read-only)balance_currency (string) (required, read-only)target_balance (string) (required)target_balance_currency (string) (required, read-only)funding_amount (string)funding_amount_currency (string) (required, read-only)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)archived (boolean) (required, read-only)archived_at (string) (required, read-only)complete (boolean) (required, read-only) — True when this budget has reached its target and should not be funded further. Managed by signals and funding tasks; do not set manually.paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)next_funding (object) (required, read-only) — Return the next scheduled funding event for this budget, or null.Args: obj: The Budget instance being serialized.
Returns: Dict with ‘date’, ‘amount’, ‘amount_currency’, ‘deferred’, or None.
created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/budgets/{id}/Operation: budgets_retrieve
Return a single budget by UUID.
Parameters:
id (path, required)Response 200:
id (string) (required, read-only)name (string) (required)bank_account (string) (required)balance (string) (required, read-only)balance_currency (string) (required, read-only)target_balance (string) (required)target_balance_currency (string) (required, read-only)funding_amount (string)funding_amount_currency (string) (required, read-only)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)archived (boolean) (required, read-only)archived_at (string) (required, read-only)complete (boolean) (required, read-only) — True when this budget has reached its target and should not be funded further. Managed by signals and funding tasks; do not set manually.paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)next_funding (object) (required, read-only) — Return the next scheduled funding event for this budget, or null.Args: obj: The Budget instance being serialized.
Returns: Dict with ‘date’, ‘amount’, ‘amount_currency’, ‘deferred’, or None.
created_at (string) (required, read-only)modified_at (string) (required, read-only)PUT /api/v1/budgets/{id}/Operation: budgets_update
Full update of a budget. bank_account and budget_type are immutable. The unallocated budget cannot be renamed.
Parameters:
id (path, required)Request Body (application/json):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Request Body (application/x-www-form-urlencoded):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Request Body (multipart/form-data):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Response 200:
id (string) (required, read-only)name (string) (required)bank_account (string) (required)balance (string) (required, read-only)balance_currency (string) (required, read-only)target_balance (string) (required)target_balance_currency (string) (required, read-only)funding_amount (string)funding_amount_currency (string) (required, read-only)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)archived (boolean) (required, read-only)archived_at (string) (required, read-only)complete (boolean) (required, read-only) — True when this budget has reached its target and should not be funded further. Managed by signals and funding tasks; do not set manually.paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)next_funding (object) (required, read-only) — Return the next scheduled funding event for this budget, or null.Args: obj: The Budget instance being serialized.
Returns: Dict with ‘date’, ‘amount’, ‘amount_currency’, ‘deferred’, or None.
created_at (string) (required, read-only)modified_at (string) (required, read-only)PATCH /api/v1/budgets/{id}/Operation: budgets_partial_update
Partial update of a budget. bank_account and budget_type are immutable. The unallocated budget cannot be renamed.
Parameters:
id (path, required)Request Body (application/json):
name (string)bank_account (string)target_balance (string)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Request Body (application/x-www-form-urlencoded):
name (string)bank_account (string)target_balance (string)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Request Body (multipart/form-data):
name (string)bank_account (string)target_balance (string)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Response 200:
id (string) (required, read-only)name (string) (required)bank_account (string) (required)balance (string) (required, read-only)balance_currency (string) (required, read-only)target_balance (string) (required)target_balance_currency (string) (required, read-only)funding_amount (string)funding_amount_currency (string) (required, read-only)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)archived (boolean) (required, read-only)archived_at (string) (required, read-only)complete (boolean) (required, read-only) — True when this budget has reached its target and should not be funded further. Managed by signals and funding tasks; do not set manually.paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)next_funding (object) (required, read-only) — Return the next scheduled funding event for this budget, or null.Args: obj: The Budget instance being serialized.
Returns: Dict with ‘date’, ‘amount’, ‘amount_currency’, ‘deferred’, or None.
created_at (string) (required, read-only)modified_at (string) (required, read-only)DELETE /api/v1/budgets/{id}/Operation: budgets_destroy
Delete a budget. The unallocated budget cannot be deleted (403). A budget with existing transaction allocations cannot be deleted (400) – archive it instead.
Parameters:
id (path, required)Response 204: No response body
POST /api/v1/budgets/{id}/archive/Operation: budgets_archive_create
Archive a budget. Any remaining balance is transferred to the account’s unallocated budget. If the budget has an associated fill-up goal, that budget is also archived and its balance moved to unallocated. The unallocated budget cannot be archived.
Parameters:
id (path, required)Request Body (application/json):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Request Body (application/x-www-form-urlencoded):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Request Body (multipart/form-data):
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Response 200:
id (string) (required, read-only)name (string) (required)bank_account (string) (required)balance (string) (required, read-only)balance_currency (string) (required, read-only)target_balance (string) (required)target_balance_currency (string) (required, read-only)funding_amount (string)funding_amount_currency (string) (required, read-only)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)archived (boolean) (required, read-only)archived_at (string) (required, read-only)complete (boolean) (required, read-only) — True when this budget has reached its target and should not be funded further. Managed by signals and funding tasks; do not set manually.paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)next_funding (object) (required, read-only) — Return the next scheduled funding event for this budget, or null.Args: obj: The Budget instance being serialized.
Returns: Dict with ‘date’, ‘amount’, ‘amount_currency’, ‘deferred’, or None.
created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/currencies/Operation: currencies_retrieve
Return all ISO 4217 currency codes supported by the system, sorted by code. Each entry includes the code, English name, and numeric ISO 4217 code. Requires authentication.
Response 200: List of supported currencies.
GET /api/v1/internal-transactions/Operation: internal_transactions_list
Return budget-to-budget transfers belonging to the authenticated user’s accounts. Filterable by bank_account, src_budget, dst_budget, and date range (date_from/date_to). Orderable by created_at.
Parameters:
bank_account (query, optional)budget (query, optional)date_from (query, optional)date_to (query, optional)dst_budget (query, optional)ordering (query, optional) — Which field to use when ordering the results.page (query, optional) — A page number within the paginated result set.page_size (query, optional) — Number of results to return per page.src_budget (query, optional)Response 200:
count (integer) (required)next (string)previous (string)results (array) (required)POST /api/v1/internal-transactions/Operation: internal_transactions_create
Transfer money between two budgets in the same bank account. Required: bank_account (UUID), amount, src_budget (UUID), and dst_budget (UUID). The authenticated user is recorded as the actor. Internal transactions are write-once – to reverse a transfer, create a new one with src and dst swapped.
Request Body (application/json):
bank_account (string) (required)amount (string) (required)src_budget (string) (required)dst_budget (string) (required)effective_date (string)Request Body (application/x-www-form-urlencoded):
bank_account (string) (required)amount (string) (required)src_budget (string) (required)dst_budget (string) (required)effective_date (string)Request Body (multipart/form-data):
bank_account (string) (required)amount (string) (required)src_budget (string) (required)dst_budget (string) (required)effective_date (string)Response 201:
id (string) (required, read-only)bank_account (string) (required)amount (string) (required)amount_currency (string) (required, read-only)src_budget (string) (required)dst_budget (string) (required)actor (integer) (required, read-only)effective_date (string)src_budget_balance (string) (required, read-only)src_budget_balance_currency (string) (required, read-only)dst_budget_balance (string) (required, read-only)dst_budget_balance_currency (string) (required, read-only)created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/internal-transactions/{id}/Operation: internal_transactions_retrieve
Return a single internal transaction by UUID.
Parameters:
id (path, required)Response 200:
id (string) (required, read-only)bank_account (string) (required)amount (string) (required)amount_currency (string) (required, read-only)src_budget (string) (required)dst_budget (string) (required)actor (integer) (required, read-only)effective_date (string)src_budget_balance (string) (required, read-only)src_budget_balance_currency (string) (required, read-only)dst_budget_balance (string) (required, read-only)dst_budget_balance_currency (string) (required, read-only)created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/transactions/Operation: transactions_list
Return transactions belonging to the authenticated user’s accounts. Filterable by bank_account, pending status, transaction_type, and date range (date_from/date_to). Searchable by description, raw_description, and party. Orderable by transaction_date, amount, or created_at.
Parameters:
bank_account (query, optional)date_from (query, optional)date_to (query, optional)ordering (query, optional) — Which field to use when ordering the results.page (query, optional) — A page number within the paginated result set.page_size (query, optional) — Number of results to return per page.pending (query, optional)posted_date_from (query, optional)posted_date_to (query, optional)search (query, optional) — A search term.transaction_type (query, optional) — * signature_purchase - Signature Purchaseach - ACHround-up_transfer - Round-up Transferprotected_goal_account_transfer - Protected Goal Account Transferfee - Feepin_purchase - Pin Purchasesignature_credit - Signature Creditinterest_credit - Interest Creditshared_transfer - Shared Transfercourtesy_credit - Courtesy Creditatm_withdrawal - ATM Withdrawalbill_payment - Bill Paymentbank_generated_credit - Bank Generated Creditwire_transfer - Wire Transfercheck_deposit - Check Depositcheck - Checkc2c - c2cmigration_interbank_transfer - Migration Interbank Transferbalance_sweep - Balance Sweepach_reversal - ACH Reversaladjustment - Adjustmentsignature_return - Signature returnfx_order - FX OrderResponse 200:
count (integer) (required)next (string)previous (string)results (array) (required)POST /api/v1/transactions/Operation: transactions_create
Create a new bank transaction. Required: bank_account (UUID), amount, transaction_date, transaction_type, and raw_description. A default TransactionAllocation to the bank account’s unallocated budget is auto-created. After creation, only transaction_type, memo, and description are updatable.
Request Body (application/json):
bank_account (string) (required)amount (string) (required)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)image (string)document (string)Request Body (application/x-www-form-urlencoded):
bank_account (string) (required)amount (string) (required)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)image (string)document (string)Request Body (multipart/form-data):
bank_account (string) (required)amount (string) (required)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)image (string)document (string)Response 201:
id (string) (required, read-only)bank_account (string) (required)amount (string) (required)amount_currency (string) (required, read-only)party (string) (required, read-only)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)linked_transaction (string) (required, read-only)bank_account_posted_balance (string) (required, read-only) — Posted Balance does not include pending debits.bank_account_posted_balance_currency (string) (required, read-only)bank_account_available_balance (string) (required, read-only) — Available Balance has pending debits deducted.bank_account_available_balance_currency (string) (required, read-only)image (string)document (string)created_at (string) (required, read-only)modified_at (string) (required, read-only)GET /api/v1/transactions/{id}/Operation: transactions_retrieve
Return a single transaction by UUID.
Parameters:
id (path, required)Response 200:
id (string) (required, read-only)bank_account (string) (required)amount (string) (required)amount_currency (string) (required, read-only)party (string) (required, read-only)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)linked_transaction (string) (required, read-only)bank_account_posted_balance (string) (required, read-only) — Posted Balance does not include pending debits.bank_account_posted_balance_currency (string) (required, read-only)bank_account_available_balance (string) (required, read-only) — Available Balance has pending debits deducted.bank_account_available_balance_currency (string) (required, read-only)image (string)document (string)created_at (string) (required, read-only)modified_at (string) (required, read-only)PUT /api/v1/transactions/{id}/Operation: transactions_update
Full update of a transaction. Only transaction_type, memo, and description are mutable after creation.
Parameters:
id (path, required)Request Body (application/json):
bank_account (string) (required)amount (string) (required)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)image (string)document (string)Request Body (application/x-www-form-urlencoded):
bank_account (string) (required)amount (string) (required)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)image (string)document (string)Request Body (multipart/form-data):
bank_account (string) (required)amount (string) (required)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)image (string)document (string)Response 200:
id (string) (required, read-only)bank_account (string) (required)amount (string) (required)amount_currency (string) (required, read-only)party (string) (required, read-only)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)linked_transaction (string) (required, read-only)bank_account_posted_balance (string) (required, read-only) — Posted Balance does not include pending debits.bank_account_posted_balance_currency (string) (required, read-only)bank_account_available_balance (string) (required, read-only) — Available Balance has pending debits deducted.bank_account_available_balance_currency (string) (required, read-only)image (string)document (string)created_at (string) (required, read-only)modified_at (string) (required, read-only)PATCH /api/v1/transactions/{id}/Operation: transactions_partial_update
Partial update of a transaction. Only transaction_type, memo, and description are mutable after creation.
Parameters:
id (path, required)Request Body (application/json):
bank_account (string)amount (string)posted_date (string)transaction_date (string)transaction_type (``)pending (boolean)memo (string)raw_description (string)description (string)image (string)document (string)Request Body (application/x-www-form-urlencoded):
bank_account (string)amount (string)posted_date (string)transaction_date (string)transaction_type (``)pending (boolean)memo (string)raw_description (string)description (string)image (string)document (string)Request Body (multipart/form-data):
bank_account (string)amount (string)posted_date (string)transaction_date (string)transaction_type (``)pending (boolean)memo (string)raw_description (string)description (string)image (string)document (string)Response 200:
id (string) (required, read-only)bank_account (string) (required)amount (string) (required)amount_currency (string) (required, read-only)party (string) (required, read-only)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)linked_transaction (string) (required, read-only)bank_account_posted_balance (string) (required, read-only) — Posted Balance does not include pending debits.bank_account_posted_balance_currency (string) (required, read-only)bank_account_available_balance (string) (required, read-only) — Available Balance has pending debits deducted.bank_account_available_balance_currency (string) (required, read-only)image (string)document (string)created_at (string) (required, read-only)modified_at (string) (required, read-only)DELETE /api/v1/transactions/{id}/Operation: transactions_destroy
Delete a transaction. Balance changes are reversed by the pre_delete signal. Associated allocations are cascade-deleted.
Parameters:
id (path, required)Response 204: No response body
POST /api/v1/transactions/{id}/splits/Operation: transactions_splits_create
Declaratively set how a transaction’s amount is split across budgets. All referenced budgets must belong to the same bank account as the transaction. The backend reconciles existing allocations to match: creating, updating, or deleting as needed. Any unallocated remainder gets an allocation to the account’s unallocated budget. Returns all allocations for this transaction after reconciliation.
Parameters:
bank_account (query, optional)date_from (query, optional)date_to (query, optional)id (path, required)ordering (query, optional) — Which field to use when ordering the results.page (query, optional) — A page number within the paginated result set.page_size (query, optional) — Number of results to return per page.pending (query, optional)posted_date_from (query, optional)posted_date_to (query, optional)search (query, optional) — A search term.transaction_type (query, optional) — * signature_purchase - Signature Purchaseach - ACHround-up_transfer - Round-up Transferprotected_goal_account_transfer - Protected Goal Account Transferfee - Feepin_purchase - Pin Purchasesignature_credit - Signature Creditinterest_credit - Interest Creditshared_transfer - Shared Transfercourtesy_credit - Courtesy Creditatm_withdrawal - ATM Withdrawalbill_payment - Bill Paymentbank_generated_credit - Bank Generated Creditwire_transfer - Wire Transfercheck_deposit - Check Depositcheck - Checkc2c - c2cmigration_interbank_transfer - Migration Interbank Transferbalance_sweep - Balance Sweepach_reversal - ACH Reversaladjustment - Adjustmentsignature_return - Signature returnfx_order - FX OrderRequest Body (application/json):
splits (object) (required) — Map of budget UUID → amount. Amounts must not exceed the transaction total. Omitted remainder is assigned to the unallocated budget.Request Body (application/x-www-form-urlencoded):
splits (object) (required) — Map of budget UUID → amount. Amounts must not exceed the transaction total. Omitted remainder is assigned to the unallocated budget.Request Body (multipart/form-data):
splits (object) (required) — Map of budget UUID → amount. Amounts must not exceed the transaction total. Omitted remainder is assigned to the unallocated budget.Response 200:
count (integer) (required)next (string)previous (string)results (array) (required)GET /api/v1/users/Operation: users_list
Return all users. Restricted to staff/admin users.
Parameters:
ordering (query, optional) — Which field to use when ordering the results.page (query, optional) — A page number within the paginated result set.page_size (query, optional) — Number of results to return per page.Response 200:
count (integer) (required)next (string)previous (string)results (array) (required)GET /api/v1/users/{username}/Operation: users_retrieve
Return a single user by username. Restricted to staff/admin users.
Parameters:
username (path, required)Response 200:
username (string) (required, read-only) — Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.name (string)url (string) (required, read-only)default_bank_account (string)timezone (string)PUT /api/v1/users/{username}/Operation: users_update
Full update of a user profile. Restricted to staff/admin users.
Parameters:
username (path, required)Request Body (application/json):
name (string)default_bank_account (string)timezone (string)Request Body (application/x-www-form-urlencoded):
name (string)default_bank_account (string)timezone (string)Request Body (multipart/form-data):
name (string)default_bank_account (string)timezone (string)Response 200:
username (string) (required, read-only) — Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.name (string)url (string) (required, read-only)default_bank_account (string)timezone (string)PATCH /api/v1/users/{username}/Operation: users_partial_update
Partial update of a user profile. Restricted to staff/admin users.
Parameters:
username (path, required)Request Body (application/json):
name (string)default_bank_account (string)timezone (string)Request Body (application/x-www-form-urlencoded):
name (string)default_bank_account (string)timezone (string)Request Body (multipart/form-data):
name (string)default_bank_account (string)timezone (string)Response 200:
username (string) (required, read-only) — Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.name (string)url (string) (required, read-only)default_bank_account (string)timezone (string)GET /api/v1/users/me/Operation: users_me_retrieve
GET returns the authenticated user’s own profile. PATCH allows updating the name field. Available to any authenticated user (not restricted to staff).
Response 200:
username (string) (required, read-only) — Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.name (string)url (string) (required, read-only)default_bank_account (string)timezone (string)PATCH /api/v1/users/me/Operation: users_me_partial_update
GET returns the authenticated user’s own profile. PATCH allows updating the name field. Available to any authenticated user (not restricted to staff).
Request Body (application/json):
name (string)default_bank_account (string)timezone (string)Request Body (application/x-www-form-urlencoded):
name (string)default_bank_account (string)timezone (string)Request Body (multipart/form-data):
name (string)default_bank_account (string)timezone (string)Response 200:
username (string) (required, read-only) — Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.name (string)url (string) (required, read-only)default_bank_account (string)timezone (string)C - CheckingS - SavingsX - Credit CardRead-only serializer for banks.
Banks are shared reference data managed only through the admin.
id (string) (required, read-only)name (string) (required, read-only)routing_number (string) (required, read-only)default_currency (string) (required, read-only) — ISO 4217 currency code (e.g. USD, EUR, GBP).created_at (string) (required, read-only)modified_at (string) (required, read-only)Serializer for bank accounts.
On create the caller supplies name, bank (UUID), account_type, account_number, and optionally currency and initial balances. The view routes creation through BankAccountService which adds the requesting user as owner and seeds the Unallocated budget.
After creation, name and account_number are updatable. Currency, account_type, bank, and balances are immutable once the account exists.
Group assignment is not yet supported via the API.
id (string) (required, read-only)name (string) (required)bank (string) (required)owners (array) (required, read-only)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)posted_balance_currency (string) (required, read-only)available_balance (string)available_balance_currency (string) (required, read-only)unallocated_budget (string) (required, read-only)last_imported_at (string) (required, read-only) — Wall-clock time of the most recent completed import for this account.last_posted_through (string) (required, read-only) — Latest posted_date seen in the most recent import batch. The funding engine will not process events dated after this value.created_at (string) (required, read-only)modified_at (string) (required, read-only)Serializer for bank accounts.
On create the caller supplies name, bank (UUID), account_type, account_number, and optionally currency and initial balances. The view routes creation through BankAccountService which adds the requesting user as owner and seeds the Unallocated budget.
After creation, name and account_number are updatable. Currency, account_type, bank, and balances are immutable once the account exists.
Group assignment is not yet supported via the API.
name (string) (required)bank (string) (required)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Serializer for budgets.
On create the caller supplies bank_account (UUID) and budget properties. After creation, bank_account and budget_type are immutable. Balance is managed by signals and is always read-only. The unallocated budget’s name cannot be changed.
Currency is inherited from the bank account via the pre_save signal and is not accepted from the client.
id (string) (required, read-only)name (string) (required)bank_account (string) (required)balance (string) (required, read-only)balance_currency (string) (required, read-only)target_balance (string) (required)target_balance_currency (string) (required, read-only)funding_amount (string)funding_amount_currency (string) (required, read-only)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)archived (boolean) (required, read-only)archived_at (string) (required, read-only)complete (boolean) (required, read-only) — True when this budget has reached its target and should not be funded further. Managed by signals and funding tasks; do not set manually.paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)next_funding (object) (required, read-only) — Return the next scheduled funding event for this budget, or null.Args: obj: The Budget instance being serialized.
Returns: Dict with ‘date’, ‘amount’, ‘amount_currency’, ‘deferred’, or None.
created_at (string) (required, read-only)modified_at (string) (required, read-only)Serializer for budgets.
On create the caller supplies bank_account (UUID) and budget properties. After creation, bank_account and budget_type are immutable. Balance is managed by signals and is always read-only. The unallocated budget’s name cannot be changed.
Currency is inherited from the bank account via the pre_save signal and is not accepted from the client.
name (string) (required)bank_account (string) (required)target_balance (string) (required)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)G - GoalR - RecurringA - Associated Fill-up GoalC - CappedBusiness:Business Clothing - Business ClothingBusiness:Business Services - Business ServicesBusiness:Business Supplies - Business SuppliesBusiness:Meals - MealsBusiness:Travel - TravelChildren:Activities - ActivitiesChildren:Allowance - AllowanceChildren:Baby Supplies - Baby SuppliesChildren:Childcare - ChildcareChildren:Kids Clothing - Kids ClothingChildren:Kids Education - Kids EducationChildren:Toys - ToysCulture:Art - ArtCulture:Books - BooksCulture:Dance - DanceCulture:Games - GamesCulture:Movies - MoviesCulture:Music - MusicCulture:News - NewsCulture:Random Fun - Random FunCulture:TV - TVEducation:Books & Supplies - Books & SuppliesEducation:Room & Board - Room & BoardEducation:Student Loans - Student LoansEducation: Tuition & Fees - Tuition & FeesFees:ATM Fees - ATM FeesFees:Investment Fees - Investment FeesFees:Other Fees - Other FeesFinancial:Accounting - AccountingFinancial:Credit Card Payment - Credit Card PaymentFinancial:Financial Advice - Financial AdviceFinancial:Life Insurance - Life InsuranceFinancial:Loan - LoanFinancial:Loan Payment - Loan PaymentFinancial:Money Transfers - Money TransfersFinancial:Other Financial - Other FinancialFinancial:Tax Preparation - Tax PreparationFinancial:Taxes, Federal - Taxes, FederalFinancial:Taxes, Other - Taxes, OtherFinancial:Taxes, State - Taxes, StateFood & Drink:Alcohol & Bars - Alcohol & BarsFood & Drink:Coffee & Tea - Coffee & TeaFood & Drink:Dessert - DessertFood & Drink:Fast Food - Fast FoodFood & Drink:Groceries - GroceriesFood & Drink:Other Food & Drink - Other Food & DrinkFood & Drink:Restaurants - RestaurantsFood & Drink:Snacks - SnacksFood & Drink:Tobacco & Like - Tobacco & LikeGifts & Donations:Charities - CharitiesGifts & Donations:Gifts - GiftsHealth & Medical:Care Facilities - Care FacilitiesHealth & Medical:Dentist - DentistHealth & Medical:Doctor - DoctorHealth & Medical:Equipment - EquipmentHealth & Medical:Eyes - EyesHealth & Medical:Health Insurance - Health InsuranceHealth & Medical:Other Health & Medical - Other Health & MedicalHealth & Medical:Pharmacies - PharmaciesHealth & Medical:Prescriptions - PrescriptionsHome:Furnishings - FurnishingsHome:Home Insurance - Home InsuranceHome:Home Purchase - Home PurchaseHome:Home Services - Home ServicesHome:Home Supplies - Home SuppliesHome:Lawn & Garden - Lawn & GardenHome:Mortgage - MortgageHome:Moving - MovingHome:Other Home - Other HomeHome:Property Tax - Property TaxHome:Rent - RentHome:Renter's Insurance - Renter’s InsuranceIncome:Bonus - BonusIncome:Commission - CommissionIncome:Interest - InterestIncome:Other Income - Other IncomeIncome:Paycheck - PaycheckIncome:Reimbursement - ReimbursementIncome:Rental Income - Rental IncomeInvestment:Education Investment - Education InvestmentInvestment:Other Investments - Other InvestmentsInvestment:Retirement - RetirementInvestment:Stocks & Mutual Funds - Stocks & Mutual FundsLegal:Legal Fees - Legal FeesLegal:Legal Services - Legal ServicesLegal:Other Legal Costs - Other Legal CostsOffice:Equipment - EquipmentOffice:Office Supplies - Office SuppliesOffice:Other Office - Other OfficeOffice:Postage & Shipping - Postage & ShippingPersonal:Accessories - AccessoriesPersonal:Beauty - BeautyPersonal:Body Enhancement - Body EnhancementPersonal:Clothing - ClothingPersonal:Counseling - CounselingPersonal:Hair - HairPersonal:Hobbies - HobbiesPersonal:Jewelry - JewelryPersonal:Laundry - LaundryPersonal:Other Personal - Other PersonalPersonal:Religion - ReligionPersonal:Shoes - ShoesPets:Pet Food - Pet FoodPets:Pet Grooming - Pet GroomingPets:Pet Medicine - Pet MedicinePets:Pet Supplies - Pet SuppliesPets:Veterinarian - VeterinarianSports & Fitness:Camping - CampingSports & Fitness:Fitness Gear - Fitness GearSports & Fitness:Golf - GolfSports & Fitness:Memberships - MembershipsSports & Fitness:Other Sports & Fitness - Other Sports & FitnessSports & Fitness:Sporting Events - Sporting EventsSports & Fitness:Sporting Goods - Sporting GoodsTechnology:Domains & Hosting - Domains & HostingTechnology:Hardware - HardwareTechnology:Online Services - Online ServicesTechnology:Software - SoftwareTransportation:Auto Insurance - Auto InsuranceTransportation:Auto Payment - Auto PaymentTransportation:Auto Services - Auto ServicesTransportation:Auto Supplies - Auto SuppliesTransportation:Bicycle - BicycleTransportation:Boats & Marine - Boats & MarineTransportation:Gas - GasTransportation:Other Transportation - Other TransportationTransportation:Parking & Tolls - Parking & TollsTransportation:Parking Tickets - Parking TicketsTransportation:Public Transit - Public TransitTransportation:Shipping - ShippingTransportation:Taxies - TaxiesTravel:Car Rental - Car RentalTravel:Flights - FlightsTravel:Hotels - HotelsTravel:Tours & Cruises - Tours & CruisesTravel:Train - TrainTravel:Travel Buses - Travel BusesTravel:Travel Dining - Travel DiningTravel:Travel Entertainment - Travel EntertainmentUncategorized:Cash - CashUncategorized:Other Shopping - Other ShoppingUncategorized:Unknown - UnknownUncategorized:Unassigned - ——-Utilities:Cable - CableUtilities:Electricity - ElectricityUtilities:Gas & Fuel - Gas & FuelUtilities:Internet - InternetUtilities:Other Utilities - Other UtilitiesUtilities:Phone - PhoneUtilities:Trash - TrashUtilities:Water & Sewer - Water & SewerD - Target DateF - Fixed AmountSerializer for internal transactions (budget-to-budget transfers).
Internal transactions are write-once: the API supports create and read but not update or delete. To reverse a transfer, create a new internal transaction with the src and dst budgets swapped.
On create the caller supplies bank_account, amount, src_budget, and dst_budget. The view sets the actor to the requesting user.
The amount_currency is read from raw request data by
djmoney’s MoneyField.get_value() – no explicit currency
field declaration is needed.
id (string) (required, read-only)bank_account (string) (required)amount (string) (required)amount_currency (string) (required, read-only)src_budget (string) (required)dst_budget (string) (required)actor (integer) (required, read-only)effective_date (string)src_budget_balance (string) (required, read-only)src_budget_balance_currency (string) (required, read-only)dst_budget_balance (string) (required, read-only)dst_budget_balance_currency (string) (required, read-only)created_at (string) (required, read-only)modified_at (string) (required, read-only)Serializer for internal transactions (budget-to-budget transfers).
Internal transactions are write-once: the API supports create and read but not update or delete. To reverse a transfer, create a new internal transaction with the src and dst budgets swapped.
On create the caller supplies bank_account, amount, src_budget, and dst_budget. The view sets the actor to the requesting user.
The amount_currency is read from raw request data by
djmoney’s MoneyField.get_value() – no explicit currency
field declaration is needed.
bank_account (string) (required)amount (string) (required)src_budget (string) (required)dst_budget (string) (required)effective_date (string)count (integer) (required)next (string)previous (string)results (array) (required)count (integer) (required)next (string)previous (string)results (array) (required)count (integer) (required)next (string)previous (string)results (array) (required)count (integer) (required)next (string)previous (string)results (array) (required)count (integer) (required)next (string)previous (string)results (array) (required)count (integer) (required)next (string)previous (string)results (array) (required)count (integer) (required)next (string)previous (string)results (array) (required)Serializer for bank accounts.
On create the caller supplies name, bank (UUID), account_type, account_number, and optionally currency and initial balances. The view routes creation through BankAccountService which adds the requesting user as owner and seeds the Unallocated budget.
After creation, name and account_number are updatable. Currency, account_type, bank, and balances are immutable once the account exists.
Group assignment is not yet supported via the API.
name (string)bank (string)account_type (string) — * C - CheckingS - SavingsX - Credit Card Enum: [‘C’, ‘S’, ‘X’]account_number (string)currency (string) — ISO 4217 currency code (e.g. USD, EUR, GBP).posted_balance (string)available_balance (string)Serializer for budgets.
On create the caller supplies bank_account (UUID) and budget properties. After creation, bank_account and budget_type are immutable. Balance is managed by signals and is always read-only. The unallocated budget’s name cannot be changed.
Currency is inherited from the bank account via the pre_save signal and is not accepted from the client.
name (string)bank_account (string)target_balance (string)funding_amount (string)budget_type (string) — * G - GoalR - RecurringA - Associated Fill-up GoalC - Capped Enum: [‘G’, ‘R’, ‘A’, ‘C’]funding_type (string) — * D - Target DateF - Fixed Amount Enum: [‘D’, ‘F’]target_date (string)with_fillup_goal (boolean)fillup_goal (string)paused (boolean) — A paused budget does not get automatically funded on its schedule.funding_schedule (string)recurrance_schedule (string)memo (string)auto_spend (``)Serializer for bank transactions.
On create the caller supplies bank_account, amount, transaction_date, transaction_type, raw_description, and optionally pending, memo, and description.
After creation only transaction_type, memo, and description are updatable. The view is responsible for creating the default TransactionAllocation to the unallocated budget on create.
The amount_currency is read from raw request data by
djmoney’s MoneyField.get_value() – no explicit currency
field declaration is needed.
bank_account (string)amount (string)posted_date (string)transaction_date (string)transaction_type (``)pending (boolean)memo (string)raw_description (string)description (string)image (string)document (string)Serializer for user profiles.
The default_bank_account field is writable but constrained:
the bank account must be owned by the user being updated. On
output it returns the UUID string (or null).
name (string)default_bank_account (string)timezone (string)access (string) (required, read-only)refresh (string) (required, read-only)username (string) (required)password (string) (required)access (string) (required, read-only)refresh (string) (required)refresh (string) (required)Serializer for bank transactions.
On create the caller supplies bank_account, amount, transaction_date, transaction_type, raw_description, and optionally pending, memo, and description.
After creation only transaction_type, memo, and description are updatable. The view is responsible for creating the default TransactionAllocation to the unallocated budget on create.
The amount_currency is read from raw request data by
djmoney’s MoneyField.get_value() – no explicit currency
field declaration is needed.
id (string) (required, read-only)bank_account (string) (required)amount (string) (required)amount_currency (string) (required, read-only)party (string) (required, read-only)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)linked_transaction (string) (required, read-only)bank_account_posted_balance (string) (required, read-only) — Posted Balance does not include pending debits.bank_account_posted_balance_currency (string) (required, read-only)bank_account_available_balance (string) (required, read-only) — Available Balance has pending debits deducted.bank_account_available_balance_currency (string) (required, read-only)image (string)document (string)created_at (string) (required, read-only)modified_at (string) (required, read-only)Serializer for transaction allocations.
An allocation maps a portion of a transaction’s amount to a budget. On create the caller supplies transaction, amount, and optionally budget (defaults to unallocated) and category. After creation, budget, category, and memo are updatable.
The serializer enforces two key constraints:
The amount_currency is read from raw request data by
djmoney’s MoneyField.get_value() – no explicit currency
field declaration is needed.
id (string) (required, read-only)transaction (string) (required)budget (string)amount (string) (required)amount_currency (string) (required, read-only)budget_balance (string) (required, read-only)budget_balance_currency (string) (required, read-only)category (string) — * Business:Business Clothing - Business ClothingBusiness:Business Services - Business ServicesBusiness:Business Supplies - Business SuppliesBusiness:Meals - MealsBusiness:Travel - TravelChildren:Activities - ActivitiesChildren:Allowance - AllowanceChildren:Baby Supplies - Baby SuppliesChildren:Childcare - ChildcareChildren:Kids Clothing - Kids ClothingChildren:Kids Education - Kids EducationChildren:Toys - ToysCulture:Art - ArtCulture:Books - BooksCulture:Dance - DanceCulture:Games - GamesCulture:Movies - MoviesCulture:Music - MusicCulture:News - NewsCulture:Random Fun - Random FunCulture:TV - TVEducation:Books & Supplies - Books & SuppliesEducation:Room & Board - Room & BoardEducation:Student Loans - Student LoansEducation: Tuition & Fees - Tuition & FeesFees:ATM Fees - ATM FeesFees:Investment Fees - Investment FeesFees:Other Fees - Other FeesFinancial:Accounting - AccountingFinancial:Credit Card Payment - Credit Card PaymentFinancial:Financial Advice - Financial AdviceFinancial:Life Insurance - Life InsuranceFinancial:Loan - LoanFinancial:Loan Payment - Loan PaymentFinancial:Money Transfers - Money TransfersFinancial:Other Financial - Other FinancialFinancial:Tax Preparation - Tax PreparationFinancial:Taxes, Federal - Taxes, FederalFinancial:Taxes, Other - Taxes, OtherFinancial:Taxes, State - Taxes, StateFood & Drink:Alcohol & Bars - Alcohol & BarsFood & Drink:Coffee & Tea - Coffee & TeaFood & Drink:Dessert - DessertFood & Drink:Fast Food - Fast FoodFood & Drink:Groceries - GroceriesFood & Drink:Other Food & Drink - Other Food & DrinkFood & Drink:Restaurants - RestaurantsFood & Drink:Snacks - SnacksFood & Drink:Tobacco & Like - Tobacco & LikeGifts & Donations:Charities - CharitiesGifts & Donations:Gifts - GiftsHealth & Medical:Care Facilities - Care FacilitiesHealth & Medical:Dentist - DentistHealth & Medical:Doctor - DoctorHealth & Medical:Equipment - EquipmentHealth & Medical:Eyes - EyesHealth & Medical:Health Insurance - Health InsuranceHealth & Medical:Other Health & Medical - Other Health & MedicalHealth & Medical:Pharmacies - PharmaciesHealth & Medical:Prescriptions - PrescriptionsHome:Furnishings - FurnishingsHome:Home Insurance - Home InsuranceHome:Home Purchase - Home PurchaseHome:Home Services - Home ServicesHome:Home Supplies - Home SuppliesHome:Lawn & Garden - Lawn & GardenHome:Mortgage - MortgageHome:Moving - MovingHome:Other Home - Other HomeHome:Property Tax - Property TaxHome:Rent - RentHome:Renter's Insurance - Renter’s InsuranceIncome:Bonus - BonusIncome:Commission - CommissionIncome:Interest - InterestIncome:Other Income - Other IncomeIncome:Paycheck - PaycheckIncome:Reimbursement - ReimbursementIncome:Rental Income - Rental IncomeInvestment:Education Investment - Education InvestmentInvestment:Other Investments - Other InvestmentsInvestment:Retirement - RetirementInvestment:Stocks & Mutual Funds - Stocks & Mutual FundsLegal:Legal Fees - Legal FeesLegal:Legal Services - Legal ServicesLegal:Other Legal Costs - Other Legal CostsOffice:Equipment - EquipmentOffice:Office Supplies - Office SuppliesOffice:Other Office - Other OfficeOffice:Postage & Shipping - Postage & ShippingPersonal:Accessories - AccessoriesPersonal:Beauty - BeautyPersonal:Body Enhancement - Body EnhancementPersonal:Clothing - ClothingPersonal:Counseling - CounselingPersonal:Hair - HairPersonal:Hobbies - HobbiesPersonal:Jewelry - JewelryPersonal:Laundry - LaundryPersonal:Other Personal - Other PersonalPersonal:Religion - ReligionPersonal:Shoes - ShoesPets:Pet Food - Pet FoodPets:Pet Grooming - Pet GroomingPets:Pet Medicine - Pet MedicinePets:Pet Supplies - Pet SuppliesPets:Veterinarian - VeterinarianSports & Fitness:Camping - CampingSports & Fitness:Fitness Gear - Fitness GearSports & Fitness:Golf - GolfSports & Fitness:Memberships - MembershipsSports & Fitness:Other Sports & Fitness - Other Sports & FitnessSports & Fitness:Sporting Events - Sporting EventsSports & Fitness:Sporting Goods - Sporting GoodsTechnology:Domains & Hosting - Domains & HostingTechnology:Hardware - HardwareTechnology:Online Services - Online ServicesTechnology:Software - SoftwareTransportation:Auto Insurance - Auto InsuranceTransportation:Auto Payment - Auto PaymentTransportation:Auto Services - Auto ServicesTransportation:Auto Supplies - Auto SuppliesTransportation:Bicycle - BicycleTransportation:Boats & Marine - Boats & MarineTransportation:Gas - GasTransportation:Other Transportation - Other TransportationTransportation:Parking & Tolls - Parking & TollsTransportation:Parking Tickets - Parking TicketsTransportation:Public Transit - Public TransitTransportation:Shipping - ShippingTransportation:Taxies - TaxiesTravel:Car Rental - Car RentalTravel:Flights - FlightsTravel:Hotels - HotelsTravel:Tours & Cruises - Tours & CruisesTravel:Train - TrainTravel:Travel Buses - Travel BusesTravel:Travel Dining - Travel DiningTravel:Travel Entertainment - Travel EntertainmentUncategorized:Cash - CashUncategorized:Other Shopping - Other ShoppingUncategorized:Unknown - UnknownUncategorized:Unassigned - ——-Utilities:Cable - CableUtilities:Electricity - ElectricityUtilities:Gas & Fuel - Gas & FuelUtilities:Internet - InternetUtilities:Other Utilities - Other UtilitiesUtilities:Phone - PhoneUtilities:Trash - TrashUtilities:Water & Sewer - Water & Sewer Enum: [‘Business:Business Clothing’, ‘Business:Business Services’, ‘Business:Business Supplies’, ‘Business:Meals’, ‘Business:Travel’, ‘Children:Activities’, ‘Children:Allowance’, ‘Children:Baby Supplies’, ‘Children:Childcare’, ‘Children:Kids Clothing’, ‘Children:Kids Education’, ‘Children:Toys’, ‘Culture:Art’, ‘Culture:Books’, ‘Culture:Dance’, ‘Culture:Games’, ‘Culture:Movies’, ‘Culture:Music’, ‘Culture:News’, ‘Culture:Random Fun’, ‘Culture:TV’, ‘Education:Books & Supplies’, ‘Education:Room & Board’, ‘Education:Student Loans’, ‘Education: Tuition & Fees’, ‘Fees:ATM Fees’, ‘Fees:Investment Fees’, ‘Fees:Other Fees’, ‘Financial:Accounting’, ‘Financial:Credit Card Payment’, ‘Financial:Financial Advice’, ‘Financial:Life Insurance’, ‘Financial:Loan’, ‘Financial:Loan Payment’, ‘Financial:Money Transfers’, ‘Financial:Other Financial’, ‘Financial:Tax Preparation’, ‘Financial:Taxes, Federal’, ‘Financial:Taxes, Other’, ‘Financial:Taxes, State’, ‘Food & Drink:Alcohol & Bars’, ‘Food & Drink:Coffee & Tea’, ‘Food & Drink:Dessert’, ‘Food & Drink:Fast Food’, ‘Food & Drink:Groceries’, ‘Food & Drink:Other Food & Drink’, ‘Food & Drink:Restaurants’, ‘Food & Drink:Snacks’, ‘Food & Drink:Tobacco & Like’, ‘Gifts & Donations:Charities’, ‘Gifts & Donations:Gifts’, ‘Health & Medical:Care Facilities’, ‘Health & Medical:Dentist’, ‘Health & Medical:Doctor’, ‘Health & Medical:Equipment’, ‘Health & Medical:Eyes’, ‘Health & Medical:Health Insurance’, ‘Health & Medical:Other Health & Medical’, ‘Health & Medical:Pharmacies’, ‘Health & Medical:Prescriptions’, ‘Home:Furnishings’, ‘Home:Home Insurance’, ‘Home:Home Purchase’, ‘Home:Home Services’, ‘Home:Home Supplies’, ‘Home:Lawn & Garden’, ‘Home:Mortgage’, ‘Home:Moving’, ‘Home:Other Home’, ‘Home:Property Tax’, ‘Home:Rent’, “Home:Renter’s Insurance”, ‘Income:Bonus’, ‘Income:Commission’, ‘Income:Interest’, ‘Income:Other Income’, ‘Income:Paycheck’, ‘Income:Reimbursement’, ‘Income:Rental Income’, ‘Investment:Education Investment’, ‘Investment:Other Investments’, ‘Investment:Retirement’, ‘Investment:Stocks & Mutual Funds’, ‘Legal:Legal Fees’, ‘Legal:Legal Services’, ‘Legal:Other Legal Costs’, ‘Office:Equipment’, ‘Office:Office Supplies’, ‘Office:Other Office’, ‘Office:Postage & Shipping’, ‘Personal:Accessories’, ‘Personal:Beauty’, ‘Personal:Body Enhancement’, ‘Personal:Clothing’, ‘Personal:Counseling’, ‘Personal:Hair’, ‘Personal:Hobbies’, ‘Personal:Jewelry’, ‘Personal:Laundry’, ‘Personal:Other Personal’, ‘Personal:Religion’, ‘Personal:Shoes’, ‘Pets:Pet Food’, ‘Pets:Pet Grooming’, ‘Pets:Pet Medicine’, ‘Pets:Pet Supplies’, ‘Pets:Veterinarian’, ‘Sports & Fitness:Camping’, ‘Sports & Fitness:Fitness Gear’, ‘Sports & Fitness:Golf’, ‘Sports & Fitness:Memberships’, ‘Sports & Fitness:Other Sports & Fitness’, ‘Sports & Fitness:Sporting Events’, ‘Sports & Fitness:Sporting Goods’, ‘Technology:Domains & Hosting’, ‘Technology:Hardware’, ‘Technology:Online Services’, ‘Technology:Software’, ‘Transportation:Auto Insurance’, ‘Transportation:Auto Payment’, ‘Transportation:Auto Services’, ‘Transportation:Auto Supplies’, ‘Transportation:Bicycle’, ‘Transportation:Boats & Marine’, ‘Transportation:Gas’, ‘Transportation:Other Transportation’, ‘Transportation:Parking & Tolls’, ‘Transportation:Parking Tickets’, ‘Transportation:Public Transit’, ‘Transportation:Shipping’, ‘Transportation:Taxies’, ‘Travel:Car Rental’, ‘Travel:Flights’, ‘Travel:Hotels’, ‘Travel:Tours & Cruises’, ‘Travel:Train’, ‘Travel:Travel Buses’, ‘Travel:Travel Dining’, ‘Travel:Travel Entertainment’, ‘Uncategorized:Cash’, ‘Uncategorized:Other Shopping’, ‘Uncategorized:Unknown’, ‘Uncategorized:Unassigned’, ‘Utilities:Cable’, ‘Utilities:Electricity’, ‘Utilities:Gas & Fuel’, ‘Utilities:Internet’, ‘Utilities:Other Utilities’, ‘Utilities:Phone’, ‘Utilities:Trash’, ‘Utilities:Water & Sewer’]memo (string)created_at (string) (required, read-only)modified_at (string) (required, read-only)Serializer for bank transactions.
On create the caller supplies bank_account, amount, transaction_date, transaction_type, raw_description, and optionally pending, memo, and description.
After creation only transaction_type, memo, and description are updatable. The view is responsible for creating the default TransactionAllocation to the unallocated budget on create.
The amount_currency is read from raw request data by
djmoney’s MoneyField.get_value() – no explicit currency
field declaration is needed.
bank_account (string) (required)amount (string) (required)posted_date (string) (required)transaction_date (string)transaction_type (``) (required)pending (boolean)memo (string)raw_description (string) (required)description (string)image (string)document (string)Serializer for the declarative splits endpoint.
Accepts a dict mapping budget UUIDs to amounts. The backend reconciles existing allocations to match the declared state. Any remainder goes to the unallocated budget.
All budgets must belong to the same bank account as the transaction. Cross-account budget references are rejected with a 400 error.
splits (object) (required) — Map of budget UUID → amount. Amounts must not exceed the transaction total. Omitted remainder is assigned to the unallocated budget.signature_purchase - Signature Purchaseach - ACHround-up_transfer - Round-up Transferprotected_goal_account_transfer - Protected Goal Account Transferfee - Feepin_purchase - Pin Purchasesignature_credit - Signature Creditinterest_credit - Interest Creditshared_transfer - Shared Transfercourtesy_credit - Courtesy Creditatm_withdrawal - ATM Withdrawalbill_payment - Bill Paymentbank_generated_credit - Bank Generated Creditwire_transfer - Wire Transfercheck_deposit - Check Depositcheck - Checkc2c - c2cmigration_interbank_transfer - Migration Interbank Transferbalance_sweep - Balance Sweepach_reversal - ACH Reversaladjustment - Adjustmentsignature_return - Signature returnfx_order - FX OrderSerializer for user profiles.
The default_bank_account field is writable but constrained:
the bank account must be owned by the user being updated. On
output it returns the UUID string (or null).
username (string) (required, read-only) — Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.name (string)url (string) (required, read-only)default_bank_account (string)timezone (string)Serializer for user profiles.
The default_bank_account field is writable but constrained:
the bank account must be owned by the user being updated. On
output it returns the UUID string (or null).
name (string)default_bank_account (string)timezone (string)