{"openapi":"3.1.0","info":{"title":"Bazous API","version":"0.2.0"},"paths":{"/api/v1/households":{"get":{"tags":["households"],"summary":"List Households","operationId":"list_households_api_v1_households_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Households Api V1 Households Get"}}}}}}},"/api/v1/households/onboarding":{"post":{"tags":["households"],"summary":"Onboard Household","operationId":"onboard_household_api_v1_households_onboarding_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Onboard Household Api V1 Households Onboarding Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/household/members":{"get":{"tags":["households"],"summary":"Members","operationId":"members_api_v1_household_members_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Members Api V1 Household Members Get"}}}}}}},"/api/v1/household/invitations":{"post":{"tags":["households"],"summary":"Invite Member","operationId":"invite_member_api_v1_household_invitations_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Invite Member Api V1 Household Invitations Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/household/invitations/accept":{"post":{"tags":["households"],"summary":"Accept Invitation","operationId":"accept_invitation_api_v1_household_invitations_accept_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Accept Invitation Api V1 Household Invitations Accept Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/household/base-currency":{"put":{"tags":["households"],"summary":"Change Base Currency","description":"The currency every amount is shown and computed in; owner or admin only (checked again in SQL).","operationId":"change_base_currency_api_v1_household_base_currency_put","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseCurrencyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Change Base Currency Api V1 Household Base Currency Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/household/members/{user_id}":{"patch":{"tags":["households"],"summary":"Change Role","operationId":"change_role_api_v1_household_members__user_id__patch","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Change Role Api V1 Household Members  User Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/privacy/export":{"get":{"tags":["privacy"],"summary":"Export Household","operationId":"export_household_api_v1_privacy_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/privacy/documents/{document_id}":{"delete":{"tags":["privacy"],"summary":"Delete Document","operationId":"delete_document_api_v1_privacy_documents__document_id__delete","parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Document Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Document Api V1 Privacy Documents  Document Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/privacy/households/{household_id}":{"delete":{"tags":["privacy"],"summary":"Delete Household","operationId":"delete_household_api_v1_privacy_households__household_id__delete","parameters":[{"name":"household_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Household Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Household Api V1 Privacy Households  Household Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/privacy/account":{"delete":{"tags":["privacy"],"summary":"Delete Account","operationId":"delete_account_api_v1_privacy_account_delete","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Account Api V1 Privacy Account Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/accounts":{"get":{"tags":["accounts"],"summary":"List Accounts","operationId":"list_accounts_api_v1_accounts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Accounts Api V1 Accounts Get"}}}}}}},"/api/v1/accounts/{account_id}/balance":{"post":{"tags":["accounts"],"summary":"Record Balance","operationId":"record_balance_api_v1_accounts__account_id__balance_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Record Balance Api V1 Accounts  Account Id  Balance Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/obligations":{"get":{"tags":["obligations"],"summary":"List Obligations","operationId":"list_obligations_api_v1_obligations_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Obligations Api V1 Obligations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/obligations/{obligation_id}/pay":{"post":{"tags":["obligations"],"summary":"Mark Paid","operationId":"mark_paid_api_v1_obligations__obligation_id__pay_post","parameters":[{"name":"obligation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Obligation Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkPaidRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mark Paid Api V1 Obligations  Obligation Id  Pay Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/transactions":{"get":{"tags":["transactions"],"summary":"List Transactions","operationId":"list_transactions_api_v1_transactions_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Transactions Api V1 Transactions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/transactions/import/csv":{"post":{"tags":["ingestion"],"summary":"Import Csv","operationId":"import_csv_api_v1_transactions_import_csv_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_csv_api_v1_transactions_import_csv_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import Csv Api V1 Transactions Import Csv Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ingestion-jobs":{"get":{"tags":["ingestion"],"summary":"List Ingestion Jobs","operationId":"list_ingestion_jobs_api_v1_ingestion_jobs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Ingestion Jobs Api V1 Ingestion Jobs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliations/suggest":{"post":{"tags":["reconciliation"],"summary":"Suggest Reconciliations","operationId":"suggest_reconciliations_api_v1_reconciliations_suggest_post","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Suggest Reconciliations Api V1 Reconciliations Suggest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliations":{"get":{"tags":["reconciliation"],"summary":"List Reconciliations","operationId":"list_reconciliations_api_v1_reconciliations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Reconciliations Api V1 Reconciliations Get"}}}}}}},"/api/v1/reconciliations/{reconciliation_id}/confirm":{"post":{"tags":["reconciliation"],"summary":"Confirm Reconciliation","operationId":"confirm_reconciliation_api_v1_reconciliations__reconciliation_id__confirm_post","parameters":[{"name":"reconciliation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Reconciliation Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Confirm Reconciliation Api V1 Reconciliations  Reconciliation Id  Confirm Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/forecast":{"get":{"tags":["forecast"],"summary":"Get Forecast","operationId":"get_forecast_api_v1_forecast_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":366,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Forecast Api V1 Forecast Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/forecast/pay-cycle":{"get":{"tags":["forecast"],"summary":"Get Pay Cycle","operationId":"get_pay_cycle_api_v1_forecast_pay_cycle_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Pay Cycle Api V1 Forecast Pay Cycle Get"}}}}}}},"/api/v1/forecast/review-completed":{"post":{"tags":["forecast"],"summary":"Complete Review","operationId":"complete_review_api_v1_forecast_review_completed_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Complete Review Api V1 Forecast Review Completed Post"}}}}}}},"/api/v1/cockpit":{"get":{"tags":["cockpit"],"summary":"Get Cockpit","operationId":"get_cockpit_api_v1_cockpit_get","parameters":[{"name":"horizon_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":120,"minimum":1},{"type":"null"}],"title":"Horizon Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Cockpit Api V1 Cockpit Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/answers":{"get":{"tags":["answers"],"summary":"Get Answers","operationId":"get_answers_api_v1_answers_get","parameters":[{"name":"language","in":"query","required":false,"schema":{"enum":["fr","de","it","rm","en"],"type":"string","default":"fr","title":"Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Answers Api V1 Answers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/profile":{"get":{"tags":["profile"],"summary":"Get Profile","operationId":"get_profile_api_v1_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Profile Api V1 Profile Get"}}}}}},"put":{"tags":["profile"],"summary":"Update Profile","operationId":"update_profile_api_v1_profile_put","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Profile Api V1 Profile Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capture":{"post":{"tags":["capture"],"summary":"Capture","operationId":"capture_api_v1_capture_post","parameters":[{"name":"idempotency-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_capture_api_v1_capture_post"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Capture Api V1 Capture Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capture/jobs":{"get":{"tags":["capture"],"summary":"List Jobs","operationId":"list_jobs_api_v1_capture_jobs_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Jobs Api V1 Capture Jobs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capture/{job_id}":{"get":{"tags":["capture"],"summary":"Get Job","operationId":"get_job_api_v1_capture__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Job Api V1 Capture  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capture/confirm":{"post":{"tags":["capture"],"summary":"Confirm","operationId":"confirm_api_v1_capture_confirm_post","parameters":[{"name":"idempotency-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Confirm Api V1 Capture Confirm Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/transactions/{transaction_id}/classify":{"post":{"tags":["actions"],"summary":"Classify Transaction","operationId":"classify_transaction_api_v1_transactions__transaction_id__classify_post","parameters":[{"name":"transaction_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transaction Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Classify Transaction Api V1 Transactions  Transaction Id  Classify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/obligations/{obligation_id}/reschedule":{"post":{"tags":["actions"],"summary":"Reschedule Obligation","operationId":"reschedule_obligation_api_v1_obligations__obligation_id__reschedule_post","parameters":[{"name":"obligation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Obligation Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RescheduleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reschedule Obligation Api V1 Obligations  Obligation Id  Reschedule Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/obligations/{obligation_id}/review":{"post":{"tags":["actions"],"summary":"Review Obligation","operationId":"review_obligation_api_v1_obligations__obligation_id__review_post","parameters":[{"name":"obligation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Obligation Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Review Obligation Api V1 Obligations  Obligation Id  Review Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/recurrences":{"get":{"tags":["actions"],"summary":"List Recurrences","operationId":"list_recurrences_api_v1_recurrences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Recurrences Api V1 Recurrences Get"}}}}}},"post":{"tags":["actions"],"summary":"Create Recurrence","description":"A bill that comes back (rent, health insurance, Serafe…): entered once, planned every time.","operationId":"create_recurrence_api_v1_recurrences_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurrenceCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Recurrence Api V1 Recurrences Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/recurrences/{rule_id}/amount":{"patch":{"tags":["actions"],"summary":"Set Recurrence Amount","operationId":"set_recurrence_amount_api_v1_recurrences__rule_id__amount_patch","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurrenceAmountRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Recurrence Amount Api V1 Recurrences  Rule Id  Amount Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/scenarios":{"get":{"tags":["actions"],"summary":"List Scenarios","operationId":"list_scenarios_api_v1_scenarios_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Scenarios Api V1 Scenarios Get"}}}}}},"post":{"tags":["actions"],"summary":"Create Scenario","operationId":"create_scenario_api_v1_scenarios_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Scenario Api V1 Scenarios Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/recurrences/{rule_id}/schedule":{"patch":{"tags":["actions"],"summary":"Set Recurrence Schedule","operationId":"set_recurrence_schedule_api_v1_recurrences__rule_id__schedule_patch","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200,"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurrenceScheduleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Recurrence Schedule Api V1 Recurrences  Rule Id  Schedule Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/forecast/simulate":{"get":{"tags":["forecast"],"summary":"Simulate","operationId":"simulate_api_v1_forecast_simulate_get","parameters":[{"name":"action","in":"query","required":true,"schema":{"enum":["move","add","remove"],"type":"string","title":"Action"}},{"name":"obligation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Obligation Id"}},{"name":"payment_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Payment Date"}},{"name":"amount","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}],"title":"Amount"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Simulate Api V1 Forecast Simulate Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/status":{"get":{"tags":["platform"],"summary":"Status","operationId":"status_api_v1_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Status Api V1 Status Get"}}}}}}},"/health":{"get":{"tags":["platform"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Health Get"}}}}}}},"/ready":{"get":{"tags":["platform"],"summary":"Ready","operationId":"ready_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AcceptRequest":{"properties":{"token":{"type":"string","maxLength":100,"minLength":40,"title":"Token"}},"type":"object","required":["token"],"title":"AcceptRequest"},"BalanceRequest":{"properties":{"balance":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Balance"},"observed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observed At"},"currency":{"anyOf":[{"type":"string","maxLength":3,"minLength":3},{"type":"null"}],"title":"Currency"}},"type":"object","required":["balance"],"title":"BalanceRequest"},"BaseCurrencyRequest":{"properties":{"base_currency":{"type":"string","pattern":"^[A-Z]{3}$","title":"Base Currency"}},"type":"object","required":["base_currency"],"title":"BaseCurrencyRequest"},"Body_capture_api_v1_capture_post":{"properties":{"text":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Text"},"answers":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Answers"},"parent_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Job Id"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"}},"type":"object","title":"Body_capture_api_v1_capture_post"},"Body_import_csv_api_v1_transactions_import_csv_post":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id"},"default_currency":{"type":"string","maxLength":3,"minLength":3,"title":"Default Currency","default":"CHF"},"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["account_id","file"],"title":"Body_import_csv_api_v1_transactions_import_csv_post"},"ClassifyRequest":{"properties":{"is_internal_transfer":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Internal Transfer"},"category_name":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Category Name"}},"type":"object","title":"ClassifyRequest"},"ConfirmRequest":{"properties":{"job_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Job Id"},"label":{"type":"string","maxLength":200,"minLength":1,"title":"Label"},"amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Amount"},"currency":{"type":"string","maxLength":3,"minLength":3,"title":"Currency"},"direction":{"type":"string","enum":["inflow","outflow"],"title":"Direction","default":"outflow"},"due_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Due Date"},"is_estimated":{"type":"boolean","title":"Is Estimated","default":false},"confidence":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Confidence"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"invoice_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoice Number"},"source_excerpt":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Source Excerpt"},"summary":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Summary"}},"type":"object","required":["label","amount","currency"],"title":"ConfirmRequest"},"Contract":{"properties":{"name":{"type":"string","title":"Name"},"ends_on":{"type":"string","title":"Ends On","description":"End date of the current contract period, YYYY-MM-DD"},"notice_months":{"type":"integer","maximum":24.0,"minimum":0.0,"title":"Notice Months","default":3}},"type":"object","required":["name","ends_on"],"title":"Contract"},"DeleteRequest":{"properties":{"confirmation":{"type":"string","title":"Confirmation"}},"type":"object","required":["confirmation"],"title":"DeleteRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthInsurance":{"properties":{"monthly_premium":{"type":"string","title":"Monthly Premium","description":"Current basic-insurance premium per month, whole household, base currency"},"next_year_monthly_premium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Year Monthly Premium","description":"Next year's premium per month, from the insurer's notice"},"insurer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurer"}},"type":"object","required":["monthly_premium"],"title":"HealthInsurance"},"InviteRequest":{"properties":{"email":{"type":"string","maxLength":254,"pattern":"^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$","title":"Email"},"role":{"type":"string","enum":["admin","member","viewer"],"title":"Role","default":"member"}},"type":"object","required":["email"],"title":"InviteRequest"},"MarkPaidRequest":{"properties":{"paid_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid At"}},"type":"object","title":"MarkPaidRequest"},"OnboardingRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","title":"Currency"},"timezone":{"type":"string","maxLength":100,"title":"Timezone"},"balance":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,14}|(?=[\\d.]{1,19}0*$)\\d{0,14}\\.\\d{0,4}0*$)"}],"title":"Balance"},"income_date":{"type":"string","format":"date","title":"Income Date"},"income_amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,14}|(?=[\\d.]{1,19}0*$)\\d{0,14}\\.\\d{0,4}0*$)"}],"title":"Income Amount"},"income_frequency":{"type":"string","enum":["weekly","monthly"],"title":"Income Frequency"}},"type":"object","required":["name","currency","timezone","balance","income_date","income_amount","income_frequency"],"title":"OnboardingRequest"},"Pillar3a":{"properties":{"year":{"type":"integer","title":"Year","description":"Calendar year of paid_this_year"},"paid_this_year":{"type":"string","title":"Paid This Year","description":"Pillar 3a payments already made this year, all people together"},"with_pension_fund":{"type":"boolean","title":"With Pension Fund","description":"True when the people belong to a pension fund (2nd pillar)","default":true},"people":{"type":"integer","maximum":4.0,"minimum":1.0,"title":"People","default":1}},"type":"object","required":["year","paid_this_year"],"title":"Pillar3a"},"ProfileUpdate":{"properties":{"health_insurance":{"anyOf":[{"$ref":"#/components/schemas/HealthInsurance"},{"type":"null"}]},"taxes":{"anyOf":[{"$ref":"#/components/schemas/Taxes"},{"type":"null"}]},"pillar_3a":{"anyOf":[{"$ref":"#/components/schemas/Pillar3a"},{"type":"null"}]},"contracts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Contract"},"type":"array"},{"type":"null"}],"title":"Contracts"}},"type":"object","title":"ProfileUpdate","description":"Sections to replace. A section sent as null is removed; a section left out is kept."},"RecurrenceAmountRequest":{"properties":{"amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Amount"}},"type":"object","required":["amount"],"title":"RecurrenceAmountRequest"},"RecurrenceCreateRequest":{"properties":{"label":{"type":"string","maxLength":200,"minLength":1,"title":"Label"},"amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,19}0*$)\\d{0,16}\\.\\d{0,2}0*$)"}],"title":"Amount"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","title":"Currency"},"frequency":{"type":"string","enum":["monthly","quarterly","yearly"],"title":"Frequency"},"starts_on":{"type":"string","format":"date","title":"Starts On"}},"type":"object","required":["label","amount","currency","frequency","starts_on"],"title":"RecurrenceCreateRequest"},"RecurrenceScheduleRequest":{"properties":{"starts_on":{"type":"string","format":"date","title":"Starts On"},"frequency":{"type":"string","enum":["weekly","monthly","quarterly","yearly"],"title":"Frequency"}},"type":"object","required":["starts_on","frequency"],"title":"RecurrenceScheduleRequest"},"RescheduleRequest":{"properties":{"due_date":{"type":"string","format":"date","title":"Due Date"}},"type":"object","required":["due_date"],"title":"RescheduleRequest"},"ReviewRequest":{"properties":{"decision":{"type":"string","enum":["accept","cancel"],"title":"Decision"}},"type":"object","required":["decision"],"title":"ReviewRequest"},"RoleRequest":{"properties":{"role":{"type":"string","enum":["owner","admin","member","viewer"],"title":"Role"}},"type":"object","required":["role"],"title":"RoleRequest"},"ScenarioLever":{"properties":{"id":{"type":"string","title":"Id"},"kind":{"type":"string","enum":["split","defer","reserve"],"title":"Kind"},"label":{"type":"string","title":"Label"},"ref_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Id"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Amount"}},"type":"object","required":["id","kind","label"],"title":"ScenarioLever"},"ScenarioRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Description"},"levers":{"items":{"$ref":"#/components/schemas/ScenarioLever"},"type":"array","maxItems":10,"minItems":1,"title":"Levers"},"low_point_before":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Low Point Before"},"low_point_after":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Low Point After"}},"type":"object","required":["name","levers"],"title":"ScenarioRequest"},"Taxes":{"properties":{"last_annual_bill":{"type":"string","title":"Last Annual Bill","description":"Amount of the last annual tax bill, base currency"},"due_month":{"anyOf":[{"type":"integer","maximum":12.0,"minimum":1.0},{"type":"null"}],"title":"Due Month"}},"type":"object","required":["last_annual_bill"],"title":"Taxes"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}