{"openapi":"3.1.0","info":{"title":"Zato 2.0 Backend","version":"0.1.0"},"paths":{"/api/v1/auth/login":{"post":{"tags":["auth"],"summary":"Login Begin","description":"Step 1: ask which IdP to use (or signal that password is needed).","operationId":"login_begin_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginBeginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/login/password":{"post":{"tags":["auth"],"summary":"Login Password","description":"Manual (email + password) flow — validated against the app DB only.\n\nReturns mode=otp_staged: sets the pre_session cookie, frontend goes to the\nOTP page. Manual auth never touches Cognito (that's the SSO buttons only).","operationId":"login_password_api_v1_auth_login_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/set-new-password":{"post":{"tags":["auth"],"summary":"Set New Password","description":"Complete the Cognito NEW_PASSWORD_REQUIRED challenge.\n\nUsed by first-time CS Admin (bootstrap-emailed temp password) and by any\nuser Cognito has flagged for forced password reset.","operationId":"set_new_password_api_v1_auth_set_new_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetNewPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/callback":{"get":{"tags":["auth"],"summary":"Callback","description":"OAuth2 redirect target for federated IdPs (Google/Microsoft/Apple/...).\n\nFederated users have already completed strong auth at the IdP, so we skip\nthe OTP step and open the session directly. Cookies are set on the redirect\nresponse and the browser lands on the frontend's PersonaDispatcher, which\nroutes them to their portal-specific landing route.\n\nResilience: any failure here (Cognito JWKS unreachable, IdP token exchange\nfailed, user not provisioned, firm disabled) is redirected back to the\nlogin page with an `?sso_error=...` query so the user sees a friendly\nmessage instead of a bare \"Internal Server Error\" page from the proxy.","operationId":"callback_api_v1_auth_callback_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/verify-otp":{"post":{"tags":["auth"],"summary":"Verify Otp","description":"Step 2: exchange OTP + pre_session cookie for the full session.","operationId":"verify_otp_api_v1_auth_verify_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__modules__auth__schemas__VerifyOtpRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["auth"],"summary":"Refresh","operationId":"refresh_api_v1_auth_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/extend":{"post":{"tags":["auth"],"summary":"Extend","description":"User clicked 'Continue session' on the 15-min idle warning popup.","operationId":"extend_api_v1_auth_extend_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","operationId":"logout_api_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/forgot-password":{"post":{"tags":["auth"],"summary":"Forgot Password","description":"Triggers a Cognito-emailed reset code to the user (no-op in local dev).","operationId":"forgot_password_api_v1_auth_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/reset-password":{"post":{"tags":["auth"],"summary":"Reset Password","operationId":"reset_password_api_v1_auth_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/accept-invite":{"post":{"tags":["auth"],"summary":"Accept Invite","description":"Redeem an invitation token. Public — no session cookie required.\n\nNative users: must supply `new_password`; we promote their temp Cognito\npassword and stage the OTP step (sets pre_session cookie).\nFederated users: we mark the invitation accepted and return a redirect to\n/auth/login so the user can click their IdP.","operationId":"accept_invite_api_v1_auth_accept_invite_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInviteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/me":{"get":{"tags":["auth"],"summary":"Me","operationId":"me_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/config":{"get":{"tags":["config"],"summary":"Get Bootstrap Config","description":"Return the deployment's active locale + the advertised supported set.","operationId":"get_bootstrap_config_api_v1_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Bootstrap Config Api V1 Config Get"}}}}}}},"/api/v1/health/services":{"get":{"tags":["health"],"summary":"Services Health","description":"Fan out to every service's /healthz and return combined status.","operationId":"services_health_api_v1_health_services_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health/services/reverse-check":{"get":{"tags":["health"],"summary":"Reverse Check","description":"Ask each Lambda service to call back to the backend /healthz.\nProves the services → backend network path (Lambda outbound via NAT).","operationId":"reverse_check_api_v1_health_services_reverse_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health/services/{name}":{"get":{"tags":["health"],"summary":"Service Health By Name","description":"Ping a single service by name.","operationId":"service_health_by_name_api_v1_health_services__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/personas/me":{"get":{"tags":["personas"],"summary":"Me","operationId":"me_api_v1_personas_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/coa/clients/{client_uuid}/accounts":{"get":{"tags":["coa","coa"],"summary":"List Client Accounts","description":"All of the client's COA accounts + mapping. With ``job_uuid``, filtered to\nthat job's TB accounts (each with its balance).","operationId":"list_client_accounts_api_v1_coa_clients__client_uuid__accounts_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"job_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/clients/{client_uuid}/automap":{"post":{"tags":["coa","coa"],"summary":"Automap Client","description":"Auto-map ALL of the client's COA accounts (tiers 1-3), keyed on account_uuid.","operationId":"automap_client_api_v1_coa_clients__client_uuid__automap_post","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/clients/{client_uuid}/mappings/{account_uuid}":{"put":{"tags":["coa","coa"],"summary":"Update Client Mapping","description":"Manual override of one account's parent (keyed on account_uuid).","operationId":"update_client_mapping_api_v1_coa_clients__client_uuid__mappings__account_uuid__put","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"account_uuid","in":"path","required":true,"schema":{"type":"string","title":"Account Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMappingIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/clients/{client_uuid}/approve-all":{"post":{"tags":["coa","coa"],"summary":"Approve Client","description":"Confirm every mapped account + seed the Tier-1 cache (keyed on name).","operationId":"approve_client_api_v1_coa_clients__client_uuid__approve_all_post","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/clients/{client_uuid}/coa":{"post":{"tags":["coa","coa"],"summary":"Upload Client Coa","description":"Ingest the client's full Chart of Accounts (.csv/.xlsx) into\nchart_of_accounts — the authoritative client chart (mints account_uuid).\nDistinct from a job TB upload (a subset).","operationId":"upload_client_coa_api_v1_coa_clients__client_uuid__coa_post","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_client_coa_api_v1_coa_clients__client_uuid__coa_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/clients/{client_uuid}/coa-file":{"get":{"tags":["coa","coa"],"summary":"Get Client Coa File","description":"Return the CoA for one client.\n\nResolution order (mirrors the legacy jobs_bp route):\n  1. Uploaded file exists on disk → return its download URL + metadata.\n  2. No file but chart_of_accounts rows exist → synthesise a CSV and\n     return it inline as ``csv_content``.\n  3. Neither → 404.","operationId":"get_client_coa_file_api_v1_coa_clients__client_uuid__coa_file_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/master-config":{"get":{"tags":["coa"],"summary":"Get Master Config","description":"Return the active COA master_config doc.","operationId":"get_master_config_api_v1_coa_master_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/coa/clients":{"get":{"tags":["coa"],"summary":"List Clients","description":"List clients in the caller's firm.","operationId":"list_clients_api_v1_coa_clients_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/coa/clients/{client_uuid}/jobs":{"get":{"tags":["coa"],"summary":"List Jobs For Client","description":"List COA jobs for the given client.","operationId":"list_jobs_for_client_api_v1_coa_clients__client_uuid__jobs_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs":{"post":{"tags":["coa"],"summary":"Create Job","description":"Create a new COA mapping job — inserts both a `jobs` row and the\n`coa_mapping_job` extension, and ensures the per-client COA document\n(deep copy of the master `parents`) in `coa_mapping_document`.","operationId":"create_job_api_v1_coa_jobs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/tb/upload":{"post":{"tags":["coa"],"summary":"Upload Tb","description":"Upload a CSV or XLSX trial balance into `trial_balance`.","operationId":"upload_tb_api_v1_coa_jobs__job_uuid__tb_upload_post","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_tb_api_v1_coa_jobs__job_uuid__tb_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/tb/sync-xero":{"post":{"tags":["coa"],"summary":"Sync Tb From Xero","description":"Live Xero TB sync — fetch the client's trial balance into this job.","operationId":"sync_tb_from_xero_api_v1_coa_jobs__job_uuid__tb_sync_xero_post","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/tb":{"get":{"tags":["coa"],"summary":"List Tb For Job","description":"List TB rows for the job joined with the current mapping projection.","operationId":"list_tb_for_job_api_v1_coa_jobs__job_uuid__tb_get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/automap":{"post":{"tags":["coa"],"summary":"Automap Job","description":"Dispatch the 5-tier auto-mapping pipeline and return immediately (202).\n\nThe edge does NOT run the pipeline (that would hold the request open 35-135s\nand starve the orchestrator). It writes a durable dispatch record and returns\n``{run_id, status: 'dispatched'}``; the agent tier claims + runs it, and the\nclient watches live progress over the ``run:<run_id>`` WS topic.","operationId":"automap_job_api_v1_coa_jobs__job_uuid__automap_post","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/document":{"get":{"tags":["coa"],"summary":"Get Job Document","description":"Return the per-job COA document (deep copy of parents + mapping[]).","operationId":"get_job_document_api_v1_coa_jobs__job_uuid__document_get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/mappings/{coa_tb_id}":{"put":{"tags":["coa"],"summary":"Update Mapping","operationId":"update_mapping_api_v1_coa_jobs__job_uuid__mappings__coa_tb_id__put","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"coa_tb_id","in":"path","required":true,"schema":{"type":"integer","title":"Coa Tb Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMappingIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/parents/add":{"post":{"tags":["coa"],"summary":"Add Section","description":"Multi-parent +: create a numbered sibling pair under the given base.","operationId":"add_section_api_v1_coa_jobs__job_uuid__parents_add_post","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSectionIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/parents/{parent_key}":{"delete":{"tags":["coa"],"summary":"Remove Section","description":"Multi-parent −: tail-only delete of the highest numbered instance.","operationId":"remove_section_api_v1_coa_jobs__job_uuid__parents__parent_key__delete","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"parent_key","in":"path","required":true,"schema":{"type":"string","title":"Parent Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/approve-all":{"post":{"tags":["coa"],"summary":"Approve All","description":"Commit every non-null mapping to `client_account_memory` and freeze the job.","operationId":"approve_all_api_v1_coa_jobs__job_uuid__approve_all_post","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}/findings/{event_uuid}/confirm":{"post":{"tags":["coa"],"summary":"Confirm Finding","description":"Human-in-the-loop gate: confirm (or reject with ``?reject=true``) a draft AI\nmapping decision. AI events are captured as ``draft``; only a permitted human\ntransitions them — 'AI proposes, humans approve'.","operationId":"confirm_finding_api_v1_coa_jobs__job_uuid__findings__event_uuid__confirm_post","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"event_uuid","in":"path","required":true,"schema":{"type":"string","title":"Event Uuid"}},{"name":"reject","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Reject"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/jobs/{job_uuid}":{"delete":{"tags":["coa"],"summary":"Delete Job","description":"Soft-delete the COA job (PG `coa_mapping_job` row; the client-level COA\ndocument is shared across the client's jobs and left untouched).","operationId":"delete_job_api_v1_coa_jobs__job_uuid__delete","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coa/audit":{"get":{"tags":["coa"],"summary":"Query Audit","description":"Query the append-only audit trail by client / job / source.","operationId":"query_audit_api_v1_coa_audit_get","parameters":[{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}},{"name":"job_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Uuid"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms":{"post":{"tags":["cs"],"summary":"Create Firm","operationId":"create_firm_api_v1_cs_firms_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FirmCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["cs"],"summary":"List Firms","operationId":"list_firms_api_v1_cs_firms_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Sort By"}},{"name":"sort_dir","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Sort Dir"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms/{firm_uuid}":{"get":{"tags":["cs"],"summary":"Get Firm","operationId":"get_firm_api_v1_cs_firms__firm_uuid__get","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["cs"],"summary":"Update Firm","operationId":"update_firm_api_v1_cs_firms__firm_uuid__patch","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FirmUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms/{firm_uuid}/suspend":{"post":{"tags":["cs"],"summary":"Suspend Firm","operationId":"suspend_firm_api_v1_cs_firms__firm_uuid__suspend_post","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms/{firm_uuid}/users":{"post":{"tags":["cs"],"summary":"Add Partner","operationId":"add_partner_api_v1_cs_firms__firm_uuid__users_post","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerAddRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["cs"],"summary":"List Firm Users","operationId":"list_firm_users_api_v1_cs_firms__firm_uuid__users_get","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms/{firm_uuid}/branches":{"get":{"tags":["cs"],"summary":"List Firm Branches","operationId":"list_firm_branches_api_v1_cs_firms__firm_uuid__branches_get","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["cs"],"summary":"Add Branch","operationId":"add_branch_api_v1_cs_firms__firm_uuid__branches_post","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms/{firm_uuid}/branches/{branch_uuid}":{"patch":{"tags":["cs"],"summary":"Update Branch","operationId":"update_branch_api_v1_cs_firms__firm_uuid__branches__branch_uuid__patch","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}},{"name":"branch_uuid","in":"path","required":true,"schema":{"type":"string","title":"Branch Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__modules__organization__org_schemas__BranchUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms/{firm_uuid}/resend-invite/{user_uuid}":{"post":{"tags":["cs"],"summary":"Resend Invite","operationId":"resend_invite_api_v1_cs_firms__firm_uuid__resend_invite__user_uuid__post","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}},{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/cs-team-users":{"get":{"tags":["cs"],"summary":"List Cs Team Users","operationId":"list_cs_team_users_api_v1_cs_cs_team_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/cs/firms/{firm_uuid}/jobs":{"get":{"tags":["cs"],"summary":"List Firm Jobs","operationId":"list_firm_jobs_api_v1_cs_firms__firm_uuid__jobs_get","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms/{firm_uuid}/clients":{"get":{"tags":["cs"],"summary":"List Firm Clients","operationId":"list_firm_clients_api_v1_cs_firms__firm_uuid__clients_get","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/firms/{firm_uuid}/grant-support":{"post":{"tags":["cs"],"summary":"Grant Support","operationId":"grant_support_api_v1_cs_firms__firm_uuid__grant_support_post","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantSupportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cs/users/{user_uuid}/reset-password":{"post":{"tags":["cs"],"summary":"Reset Password","operationId":"reset_password_api_v1_cs_users__user_uuid__reset_password_post","parameters":[{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/requests":{"get":{"tags":["domain-support"],"summary":"List Requests","operationId":"list_requests_api_v1_domain_support_requests_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"request_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Type"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Sort By"}},{"name":"sort_dir","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Sort Dir"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/my-orgs":{"get":{"tags":["domain-support"],"summary":"List My Orgs","description":"Orgs the support user can work on — the post-login picker.","operationId":"list_my_orgs_api_v1_domain_support_my_orgs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/domain-support/assignees":{"get":{"tags":["domain-support"],"summary":"List Assignees","operationId":"list_assignees_api_v1_domain_support_assignees_get","parameters":[{"name":"scope","in":"query","required":false,"schema":{"type":"string","default":"job","title":"Scope"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/requests/{request_uuid}":{"get":{"tags":["domain-support"],"summary":"Get Request","operationId":"get_request_api_v1_domain_support_requests__request_uuid__get","parameters":[{"name":"request_uuid","in":"path","required":true,"schema":{"type":"string","title":"Request Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/requests/{request_uuid}/assign":{"post":{"tags":["domain-support"],"summary":"Assign Request","operationId":"assign_request_api_v1_domain_support_requests__request_uuid__assign_post","parameters":[{"name":"request_uuid","in":"path","required":true,"schema":{"type":"string","title":"Request Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRequestPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/requests/{request_uuid}/resolve":{"post":{"tags":["domain-support"],"summary":"Resolve Request","operationId":"resolve_request_api_v1_domain_support_requests__request_uuid__resolve_post","parameters":[{"name":"request_uuid","in":"path","required":true,"schema":{"type":"string","title":"Request Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveRequestPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/requests/{request_uuid}/reopen":{"post":{"tags":["domain-support"],"summary":"Reopen Request","operationId":"reopen_request_api_v1_domain_support_requests__request_uuid__reopen_post","parameters":[{"name":"request_uuid","in":"path","required":true,"schema":{"type":"string","title":"Request Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/orgs/{firm_uuid}":{"get":{"tags":["domain-support"],"summary":"Get Org Detail","operationId":"get_org_detail_api_v1_domain_support_orgs__firm_uuid__get","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/orgs/{firm_uuid}/enter":{"post":{"tags":["domain-support"],"summary":"Enter Org","description":"Switch the support session's current-org context to `firm_uuid` so the\nuser can do real Practice-Portal setup. Allowed only if the user is the\nassignee of an active request for that firm (or a support admin).","operationId":"enter_org_api_v1_domain_support_orgs__firm_uuid__enter_post","parameters":[{"name":"firm_uuid","in":"path","required":true,"schema":{"type":"string","title":"Firm Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/domain-support/orgs/exit":{"post":{"tags":["domain-support"],"summary":"Exit Org","description":"Drop the entered-org context: re-mint with no firm so the support user\nreturns to the Support Dashboard.","operationId":"exit_org_api_v1_domain_support_orgs_exit_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/domain-support/users":{"get":{"tags":["domain-support"],"summary":"List Support Users","operationId":"list_support_users_api_v1_domain_support_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["domain-support"],"summary":"Create Support User","operationId":"create_support_user_api_v1_domain_support_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSupportUserPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/support/requests":{"post":{"tags":["support"],"summary":"Create Support Request","operationId":"create_support_request_api_v1_support_requests_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRequestPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/practice/firm/me":{"get":{"tags":["practice"],"summary":"Get My Firm","operationId":"get_my_firm_api_v1_practice_firm_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/practice/firm/me/details":{"put":{"tags":["practice"],"summary":"Update Firm Details","operationId":"update_firm_details_api_v1_practice_firm_me_details_put","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_update_firm_details_api_v1_practice_firm_me_details_put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/practice/firm/me/branches":{"get":{"tags":["practice"],"summary":"List Branches","operationId":"list_branches_api_v1_practice_firm_me_branches_get","parameters":[{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["practice"],"summary":"Add Branch","operationId":"add_branch_api_v1_practice_firm_me_branches_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/practice/firm/me/branches/{branch_uuid}":{"patch":{"tags":["practice"],"summary":"Update Branch","operationId":"update_branch_api_v1_practice_firm_me_branches__branch_uuid__patch","parameters":[{"name":"branch_uuid","in":"path","required":true,"schema":{"type":"string","title":"Branch Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__modules__practice__schemas__BranchUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["practice"],"summary":"Delete Branch","operationId":"delete_branch_api_v1_practice_firm_me_branches__branch_uuid__delete","parameters":[{"name":"branch_uuid","in":"path","required":true,"schema":{"type":"string","title":"Branch Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/practice/firm/me/documents":{"get":{"tags":["practice"],"summary":"List Documents","operationId":"list_documents_api_v1_practice_firm_me_documents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/practice/firm/me/documents/{document_uuid}/download":{"get":{"tags":["practice"],"summary":"Download Document","operationId":"download_document_api_v1_practice_firm_me_documents__document_uuid__download_get","parameters":[{"name":"document_uuid","in":"path","required":true,"schema":{"type":"string","title":"Document Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/practice/firm/me/users":{"get":{"tags":["practice"],"summary":"List Firm Users","operationId":"list_firm_users_api_v1_practice_firm_me_users_get","parameters":[{"name":"branch_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Branch Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["practice"],"summary":"Invite Teammate","operationId":"invite_teammate_api_v1_practice_firm_me_users_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeammateInviteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/practice/firm/me/users/{user_uuid}":{"patch":{"tags":["practice"],"summary":"Patch Firm User","operationId":"patch_firm_user_api_v1_practice_firm_me_users__user_uuid__patch","parameters":[{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FirmUserPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["practice"],"summary":"Delete Firm User","operationId":"delete_firm_user_api_v1_practice_firm_me_users__user_uuid__delete","parameters":[{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/practice/firm/me/users/{user_uuid}/resend-invite":{"post":{"tags":["practice"],"summary":"Resend Invite","operationId":"resend_invite_api_v1_practice_firm_me_users__user_uuid__resend_invite_post","parameters":[{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/practice/permissions-reference":{"get":{"tags":["practice"],"summary":"Permissions Reference","description":"Static lookup powering the Tab 2 right-side reference panel.","operationId":"permissions_reference_api_v1_practice_permissions_reference_get","parameters":[{"name":"_q","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":" Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/profile/me":{"get":{"tags":["profile"],"summary":"Get My Profile","operationId":"get_my_profile_api_v1_profile_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/profile/me/avatar":{"post":{"tags":["profile"],"summary":"Upload Avatar","operationId":"upload_avatar_api_v1_profile_me_avatar_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_avatar_api_v1_profile_me_avatar_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["profile"],"summary":"Remove Avatar","operationId":"remove_avatar_api_v1_profile_me_avatar_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/profile/me/avatar/download":{"get":{"tags":["profile"],"summary":"Download Avatar","operationId":"download_avatar_api_v1_profile_me_avatar_download_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/clients":{"get":{"tags":["clients"],"summary":"List Clients","operationId":"list_clients_api_v1_clients_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Search"}},{"name":"branch_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Branch Uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Sort By"}},{"name":"sort_dir","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Sort Dir"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["clients"],"summary":"Create Client","operationId":"create_client_api_v1_clients_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_client_api_v1_clients_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/entity-types":{"get":{"tags":["clients"],"summary":"List Entity Types","description":"Entity-type options for the Create/Edit Client dropdown (curated set).","operationId":"list_entity_types_api_v1_clients_entity_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/clients/{client_uuid}":{"get":{"tags":["clients"],"summary":"Get Client","operationId":"get_client_api_v1_clients__client_uuid__get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["clients"],"summary":"Patch Client","operationId":"patch_client_api_v1_clients__client_uuid__patch","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_patch_client_api_v1_clients__client_uuid__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/{client_uuid}/coa/download":{"get":{"tags":["clients"],"summary":"Download Client Coa","description":"Download the CoA file previously uploaded for this client.","operationId":"download_client_coa_api_v1_clients__client_uuid__coa_download_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/{client_uuid}/jobs":{"get":{"tags":["clients"],"summary":"List Client Jobs","operationId":"list_client_jobs_api_v1_clients__client_uuid__jobs_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Sort By"}},{"name":"sort_dir","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Sort Dir"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/client/me/home":{"get":{"tags":["client-portal"],"summary":"Get Home","operationId":"get_home_api_v1_client_me_home_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/client/me/questionnaire":{"get":{"tags":["client-portal"],"summary":"Get Questionnaire","operationId":"get_questionnaire_api_v1_client_me_questionnaire_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["client-portal"],"summary":"Submit Questionnaire","operationId":"submit_questionnaire_api_v1_client_me_questionnaire_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientQuestionnaireSubmit"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/client/me/documents":{"get":{"tags":["client-portal"],"summary":"List Documents","operationId":"list_documents_api_v1_client_me_documents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/jobs/autocoding/files":{"post":{"tags":["autocoding"],"summary":"Create Run","description":"Upload GL (Excel) + one or more bank statements (CSV/PDF/Excel) and CREATE a run\n(status pending). Does NOT trigger matching — the user starts it later via the Run\nbutton (POST /{ac_job_uuid}/run). Returns {ac_job_uuid, ...}.","operationId":"create_run_api_v1_jobs_autocoding_files_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_run_api_v1_jobs_autocoding_files_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/autocoding/{ac_job_uuid}/run":{"post":{"tags":["autocoding"],"summary":"Run Autocoding","description":"Trigger the matching pipeline for an already-created run. Returns 202 {run_id};\nprogress streams over the run:<id> WS topic. Bank files are processed in sequence\nwith offset bs_index so result lines are globally unique across all statements.","operationId":"run_autocoding_api_v1_jobs_autocoding__ac_job_uuid__run_post","parameters":[{"name":"ac_job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Ac Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/autocoding":{"get":{"tags":["autocoding"],"summary":"List Jobs","description":"List all autocoding jobs for the firm, newest first.","operationId":"list_jobs_api_v1_jobs_autocoding_get","parameters":[{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/autocoding/{ac_job_uuid}/run-status":{"get":{"tags":["autocoding"],"summary":"Run Status","description":"Poll the run status. Includes self-healing for orphaned runs (worker died mid-run).","operationId":"run_status_api_v1_jobs_autocoding__ac_job_uuid__run_status_get","parameters":[{"name":"ac_job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Ac Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/autocoding/{ac_job_uuid}/results":{"get":{"tags":["autocoding"],"summary":"Get Results","description":"Return all result lines for the results grid, with columns + unique account codes.","operationId":"get_results_api_v1_jobs_autocoding__ac_job_uuid__results_get","parameters":[{"name":"ac_job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Ac Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/autocoding/{ac_job_uuid}/gl-rows":{"get":{"tags":["autocoding"],"summary":"Gl Rows","description":"Return the run's GL parsed into rows for the results GL pane (right side).\nEach row's `id` aligns with each bank line's gl_matched_indices for highlighting.","operationId":"gl_rows_api_v1_jobs_autocoding__ac_job_uuid__gl_rows_get","parameters":[{"name":"ac_job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Ac Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/autocoding/{ac_job_uuid}/lines/{bs_index}/recode":{"put":{"tags":["autocoding"],"summary":"Recode Line","description":"Manually set the account_code for one bank-statement line (one-row UPDATE).","operationId":"recode_line_api_v1_jobs_autocoding__ac_job_uuid__lines__bs_index__recode_put","parameters":[{"name":"ac_job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Ac Job Uuid"}},{"name":"bs_index","in":"path","required":true,"schema":{"type":"integer","title":"Bs Index"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecodeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/autocoding/files/{file_uuid}/content":{"get":{"tags":["autocoding"],"summary":"File Content","description":"Download/preview a stored GL, bank, or processed CSV file.","operationId":"file_content_api_v1_jobs_autocoding_files__file_uuid__content_get","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Download"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/upload":{"post":{"tags":["pdf-splitter"],"summary":"Upload","description":"Upload a multi-document (\"bunch\") PDF. Stores it in zbox, dispatches the split,\nand returns 202 {run_id}; progress streams over the run:<id> WS topic.","operationId":"upload_api_v1_jobs_pdf_splitter_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_api_v1_jobs_pdf_splitter_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/check-duplicate":{"post":{"tags":["pdf-splitter"],"summary":"Check Duplicate","description":"1.0 check_duplicate_file — does a same-name bunch already exist for this firm/client?","operationId":"check_duplicate_api_v1_jobs_pdf_splitter_check_duplicate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDuplicateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/status":{"get":{"tags":["pdf-splitter"],"summary":"Dispatch Status","description":"Poll a dispatched run's status by dispatch run_id (zato_runs).","operationId":"dispatch_status_api_v1_jobs_pdf_splitter_status_get","parameters":[{"name":"run_id","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/categories":{"get":{"tags":["pdf-splitter"],"summary":"Categories","description":"The closed category vocabulary (boundary detector + recategorise dropdown).","operationId":"categories_api_v1_jobs_pdf_splitter_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/jobs/pdf-splitter/documents":{"get":{"tags":["pdf-splitter"],"summary":"List Documents","description":"All split documents for the firm (optionally a client), newest first. The UI\ngroups them by file_alias_name (the source bunch). 1.0 bunch_split_files.","operationId":"list_documents_api_v1_jobs_pdf_splitter_documents_get","parameters":[{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/documents/{document_uuid}":{"put":{"tags":["pdf-splitter"],"summary":"Edit Document","description":"1.0 change-range + category update. A page_range change re-carves the sub-PDF\nto exactly the pages typed.","operationId":"edit_document_api_v1_jobs_pdf_splitter_documents__document_uuid__put","parameters":[{"name":"document_uuid","in":"path","required":true,"schema":{"type":"string","title":"Document Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditDocumentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["pdf-splitter"],"summary":"Delete Document","description":"Remove one split document from a bunch.","operationId":"delete_document_api_v1_jobs_pdf_splitter_documents__document_uuid__delete","parameters":[{"name":"document_uuid","in":"path","required":true,"schema":{"type":"string","title":"Document Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/{source_file_uuid}/resplit":{"post":{"tags":["pdf-splitter"],"summary":"Resplit Bunch","description":"Re-partition a whole bunch (1.0 change-range): merges overlaps + gap-fills\nuncovered pages, so shrinking a doc auto-creates the remainder and overlapping\nedits merge — the bunch is always a complete partition.","operationId":"resplit_bunch_api_v1_jobs_pdf_splitter__source_file_uuid__resplit_post","parameters":[{"name":"source_file_uuid","in":"path","required":true,"schema":{"type":"string","title":"Source File Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResplitRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/{source_file_uuid}/documents":{"post":{"tags":["pdf-splitter"],"summary":"Add Document","description":"Manually carve a NEW document (page range + category) from the bunch source — so a\n5-page bunch can be partitioned into e.g. 1-3 and 4-5 with different categories.","operationId":"add_document_api_v1_jobs_pdf_splitter__source_file_uuid__documents_post","parameters":[{"name":"source_file_uuid","in":"path","required":true,"schema":{"type":"string","title":"Source File Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddDocumentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/files/{file_uuid}/content":{"get":{"tags":["pdf-splitter"],"summary":"File Content","description":"Stream a split (or source) PDF. Inline by default (iframe preview); `?download=true`\nforces a download. Firm-scoped via the zbox row's firm_id_ref.","operationId":"file_content_api_v1_jobs_pdf_splitter_files__file_uuid__content_get","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Download"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/pdf-splitter/{source_file_uuid}/run-status":{"get":{"tags":["pdf-splitter"],"summary":"Run Status","description":"Source-scoped status (no dispatch run_id needed) — what the frontend polls to show\nrunning/done/failed. Backed by the latest auto_module_runs row for this source.","operationId":"run_status_api_v1_jobs_pdf_splitter__source_file_uuid__run_status_get","parameters":[{"name":"source_file_uuid","in":"path","required":true,"schema":{"type":"string","title":"Source File Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs":{"get":{"tags":["jobs"],"summary":"List Jobs","operationId":"list_jobs_api_v1_jobs_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Sort By"}},{"name":"sort_dir","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Sort Dir"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["jobs"],"summary":"Create Job","operationId":"create_job_api_v1_jobs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/types":{"get":{"tags":["jobs"],"summary":"List Job Types","description":"The active job-type lookup, for create/edit dropdowns (so the UI stops\nhardcoding types and stops auto-creating stray ones).","operationId":"list_job_types_api_v1_jobs_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/jobs/farming-modules":{"get":{"tags":["jobs"],"summary":"List Farming Modules","description":"Active farming sub-categories for the farming module dropdown.","operationId":"list_farming_modules_api_v1_jobs_farming_modules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/jobs/by-client/{client_uuid}":{"get":{"tags":["jobs"],"summary":"Get Jobs By Client","description":"Jobs for a specific client — reusable endpoint consumed by the\nClientJobsKanban component so the kanban can live in the jobs module.","operationId":"get_jobs_by_client_api_v1_jobs_by_client__client_uuid__get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Sort By"}},{"name":"sort_dir","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Sort Dir"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_uuid}":{"get":{"tags":["jobs"],"summary":"Get Job","operationId":"get_job_api_v1_jobs__job_uuid__get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["jobs"],"summary":"Patch Job","operationId":"patch_job_api_v1_jobs__job_uuid__patch","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notifications":{"get":{"tags":["notifications"],"summary":"List Notifications","operationId":"list_notifications_api_v1_notifications_get","parameters":[{"name":"unread","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unread"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Limit"}},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Before Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notifications/unread-count":{"get":{"tags":["notifications"],"summary":"Unread Count","operationId":"unread_count_api_v1_notifications_unread_count_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/notifications/read-all":{"post":{"tags":["notifications"],"summary":"Mark All Read","operationId":"mark_all_read_api_v1_notifications_read_all_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/notifications/{notification_uuid}/read":{"post":{"tags":["notifications"],"summary":"Mark Read","operationId":"mark_read_api_v1_notifications__notification_uuid__read_post","parameters":[{"name":"notification_uuid","in":"path","required":true,"schema":{"type":"string","title":"Notification Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/activity/jobs/{job_uuid}":{"get":{"tags":["activity"],"summary":"Job Timeline","operationId":"job_timeline_api_v1_activity_jobs__job_uuid__get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Before Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/activity/clients/{client_uuid}":{"get":{"tags":["activity"],"summary":"Client Timeline","operationId":"client_timeline_api_v1_activity_clients__client_uuid__get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Before Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/activity/firm":{"get":{"tags":["activity"],"summary":"Firm Timeline","operationId":"firm_timeline_api_v1_activity_firm_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Before Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/hitl/requests":{"get":{"tags":["hitl"],"summary":"List Requests","operationId":"list_requests_api_v1_hitl_requests_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Status"}},{"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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/hitl/requests/{request_uuid}":{"get":{"tags":["hitl"],"summary":"Get Request","operationId":"get_request_api_v1_hitl_requests__request_uuid__get","parameters":[{"name":"request_uuid","in":"path","required":true,"schema":{"type":"string","title":"Request Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/hitl/requests/{request_uuid}/answer":{"post":{"tags":["hitl"],"summary":"Answer Request","operationId":"answer_request_api_v1_hitl_requests__request_uuid__answer_post","parameters":[{"name":"request_uuid","in":"path","required":true,"schema":{"type":"string","title":"Request Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HitlAnswerRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/materiality-thresholds":{"get":{"tags":["materiality-thresholds"],"summary":"Get Effective Thresholds","operationId":"get_effective_thresholds_api_v1_materiality_thresholds_get","parameters":[{"name":"job_type_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Job Type Id"}},{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Client Uuid"}},{"name":"job_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/materiality-thresholds/job-types":{"get":{"tags":["materiality-thresholds"],"summary":"List Job Types","operationId":"list_job_types_api_v1_materiality_thresholds_job_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/materiality-thresholds/organization":{"put":{"tags":["materiality-thresholds"],"summary":"Update Organization","operationId":"update_organization_api_v1_materiality_thresholds_organization_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrgThresholdsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["materiality-thresholds"],"summary":"Reset Organization","operationId":"reset_organization_api_v1_materiality_thresholds_organization_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/materiality-thresholds/job-type/{job_type_id}":{"put":{"tags":["materiality-thresholds"],"summary":"Update Job Type","operationId":"update_job_type_api_v1_materiality_thresholds_job_type__job_type_id__put","parameters":[{"name":"job_type_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Type Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobTypeThresholdsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["materiality-thresholds"],"summary":"Reset Job Type","operationId":"reset_job_type_api_v1_materiality_thresholds_job_type__job_type_id__delete","parameters":[{"name":"job_type_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Type Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/materiality-thresholds/client/{client_uuid}":{"put":{"tags":["materiality-thresholds"],"summary":"Update Client","operationId":"update_client_api_v1_materiality_thresholds_client__client_uuid__put","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClientThresholdsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["materiality-thresholds"],"summary":"Reset Client","operationId":"reset_client_api_v1_materiality_thresholds_client__client_uuid__delete","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/materiality-thresholds/job/{job_uuid}":{"put":{"tags":["materiality-thresholds"],"summary":"Update Job","operationId":"update_job_api_v1_materiality_thresholds_job__job_uuid__put","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobThresholdsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["materiality-thresholds"],"summary":"Reset Job","operationId":"reset_job_api_v1_materiality_thresholds_job__job_uuid__delete","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/wp-thresholds":{"get":{"tags":["wp-thresholds"],"summary":"Get Effective Thresholds","operationId":"get_effective_thresholds_api_v1_wp_thresholds_get","parameters":[{"name":"job_type_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Job Type Id"}},{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Client Uuid"}},{"name":"job_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/wp-thresholds/job-types":{"get":{"tags":["wp-thresholds"],"summary":"List Job Types","operationId":"list_job_types_api_v1_wp_thresholds_job_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/wp-thresholds/organization":{"put":{"tags":["wp-thresholds"],"summary":"Update Organization","operationId":"update_organization_api_v1_wp_thresholds_organization_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrgWpThresholdsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["wp-thresholds"],"summary":"Reset Organization","operationId":"reset_organization_api_v1_wp_thresholds_organization_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/wp-thresholds/job-type/{job_type_id}":{"put":{"tags":["wp-thresholds"],"summary":"Update Job Type","operationId":"update_job_type_api_v1_wp_thresholds_job_type__job_type_id__put","parameters":[{"name":"job_type_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Type Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobTypeWpThresholdsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["wp-thresholds"],"summary":"Reset Job Type","operationId":"reset_job_type_api_v1_wp_thresholds_job_type__job_type_id__delete","parameters":[{"name":"job_type_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Type Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/wp-thresholds/client/{client_uuid}":{"put":{"tags":["wp-thresholds"],"summary":"Update Client","operationId":"update_client_api_v1_wp_thresholds_client__client_uuid__put","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClientWpThresholdsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["wp-thresholds"],"summary":"Reset Client","operationId":"reset_client_api_v1_wp_thresholds_client__client_uuid__delete","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/wp-thresholds/job/{job_uuid}":{"put":{"tags":["wp-thresholds"],"summary":"Update Job","operationId":"update_job_api_v1_wp_thresholds_job__job_uuid__put","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobWpThresholdsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["wp-thresholds"],"summary":"Reset Job","operationId":"reset_job_api_v1_wp_thresholds_job__job_uuid__delete","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/{client_uuid}/assignees":{"get":{"tags":["assignments"],"summary":"List Client Assignees","operationId":"list_client_assignees_api_v1_clients__client_uuid__assignees_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["assignments"],"summary":"Assign Client","operationId":"assign_client_api_v1_clients__client_uuid__assignees_post","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/{client_uuid}/assignees/{user_uuid}":{"delete":{"tags":["assignments"],"summary":"Unassign Client","operationId":"unassign_client_api_v1_clients__client_uuid__assignees__user_uuid__delete","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_uuid}/assignees":{"get":{"tags":["assignments"],"summary":"List Job Assignees","operationId":"list_job_assignees_api_v1_jobs__job_uuid__assignees_get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["assignments"],"summary":"Assign Job","operationId":"assign_job_api_v1_jobs__job_uuid__assignees_post","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_uuid}/assignees/{user_uuid}":{"delete":{"tags":["assignments"],"summary":"Unassign Job","operationId":"unassign_job_api_v1_jobs__job_uuid__assignees__user_uuid__delete","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/tenants/{xero_tenant_uuid}/resync":{"post":{"tags":["xero","xero"],"summary":"Resync Tenant","description":"Re-fetch a tenant's raw materials (delta by default, full re-baseline on\ndemand). Returns the dispatched run_id; progress streams on\n``xero_tenant_sync:<xero_tenant_uuid>``.","operationId":"resync_tenant_api_v1_xero_tenants__xero_tenant_uuid__resync_post","parameters":[{"name":"xero_tenant_uuid","in":"path","required":true,"schema":{"type":"string","title":"Xero Tenant Uuid"}},{"name":"mode","in":"query","required":false,"schema":{"type":"string","pattern":"^(delta|full)$","default":"delta","title":"Mode"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Resync Tenant Api V1 Xero Tenants  Xero Tenant Uuid  Resync Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/raw-status":{"get":{"tags":["xero","xero"],"summary":"Raw Status","description":"Per-resource raw-import watermark for the client's bound tenant.","operationId":"raw_status_api_v1_xero_clients__client_uuid__raw_status_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Raw Status Api V1 Xero Clients  Client Uuid  Raw Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/jobs/{job_uuid}/general-ledger":{"get":{"tags":["xero","xero"],"summary":"General Ledger For Job","operationId":"general_ledger_for_job_api_v1_xero_jobs__job_uuid__general_ledger_get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter rows with entry_date >= start_date.","title":"Start Date"},"description":"Filter rows with entry_date >= start_date."},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter rows with entry_date <= end_date.","title":"End Date"},"description":"Filter rows with entry_date <= end_date."},{"name":"account_code","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Restrict to these account codes.","title":"Account Code"},"description":"Restrict to these account codes."},{"name":"source","in":"query","required":false,"schema":{"type":"string","description":"'xero' (default) or 'manual' uploads.","default":"xero","title":"Source"},"description":"'xero' (default) or 'manual' uploads."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response General Ledger For Job Api V1 Xero Jobs  Job Uuid  General Ledger Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/jobs/{job_uuid}/aged-payables":{"get":{"tags":["xero","xero"],"summary":"Aged Payables For Job","operationId":"aged_payables_for_job_api_v1_xero_jobs__job_uuid__aged_payables_get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter rows with as_of_date >= start_date.","title":"Start Date"},"description":"Filter rows with as_of_date >= start_date."},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter rows with as_of_date <= end_date.","title":"End Date"},"description":"Filter rows with as_of_date <= end_date."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Aged Payables For Job Api V1 Xero Jobs  Job Uuid  Aged Payables Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/jobs/{job_uuid}/aged-receivables":{"get":{"tags":["xero","xero"],"summary":"Aged Receivables For Job","operationId":"aged_receivables_for_job_api_v1_xero_jobs__job_uuid__aged_receivables_get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter rows with as_of_date >= start_date.","title":"Start Date"},"description":"Filter rows with as_of_date >= start_date."},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter rows with as_of_date <= end_date.","title":"End Date"},"description":"Filter rows with as_of_date <= end_date."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Aged Receivables For Job Api V1 Xero Jobs  Job Uuid  Aged Receivables Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/jobs/{job_uuid}/reports-summary":{"get":{"tags":["xero","xero"],"summary":"Reports Summary For Job","description":"Docs overview — the latest version of each financial document for the job.","operationId":"reports_summary_for_job_api_v1_xero_jobs__job_uuid__reports_summary_get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reports Summary For Job Api V1 Xero Jobs  Job Uuid  Reports Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/trial-balance":{"get":{"tags":["xero","xero"],"summary":"Trial Balance For Client","operationId":"trial_balance_for_client_api_v1_xero_clients__client_uuid__trial_balance_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"account_code","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Account Code"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"None = all rows; 'xero' = synced only; 'manual' = uploaded only.","title":"Source"},"description":"None = all rows; 'xero' = synced only; 'manual' = uploaded only."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trial Balance For Client Api V1 Xero Clients  Client Uuid  Trial Balance Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/general-ledger-live":{"get":{"tags":["xero","xero"],"summary":"General Ledger Live","description":"Build the GL on the fly from synced journals via the Rust engine (no store).\n\nCalls the engine's job-optional build endpoint; nothing is written to the\ngeneral_ledger table — the rows are computed and returned per request.","operationId":"general_ledger_live_api_v1_xero_clients__client_uuid__general_ledger_live_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response General Ledger Live Api V1 Xero Clients  Client Uuid  General Ledger Live Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/contacts":{"get":{"tags":["xero","xero"],"summary":"Client Contacts","description":"Active Xero contacts for the client — drives the AP/AR per-contact picker.","operationId":"client_contacts_api_v1_xero_clients__client_uuid__contacts_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Client Contacts Api V1 Xero Clients  Client Uuid  Contacts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/gl-upload":{"get":{"tags":["xero","xero"],"summary":"Client Gl Upload","description":"The latest manually-uploaded GL file for the client (for the digital viewer).","operationId":"client_gl_upload_api_v1_xero_clients__client_uuid__gl_upload_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Client Gl Upload Api V1 Xero Clients  Client Uuid  Gl Upload Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/reports-summary":{"get":{"tags":["xero","xero"],"summary":"Reports Summary For Client","description":"Docs overview — latest version of each document, scoped to the client.","operationId":"reports_summary_for_client_api_v1_xero_clients__client_uuid__reports_summary_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reports Summary For Client Api V1 Xero Clients  Client Uuid  Reports Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/reports/{report}":{"get":{"tags":["xero","xero"],"summary":"Xero Report","description":"Live fetch of a named Xero report (Balance Sheet, P&L, Bank/Budget/Exec).","operationId":"xero_report_api_v1_xero_clients__client_uuid__reports__report__get","parameters":[{"name":"report","in":"path","required":true,"schema":{"type":"string","title":"Report"}},{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Xero Report Api V1 Xero Clients  Client Uuid  Reports  Report  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/published-reports":{"get":{"tags":["xero","xero"],"summary":"Xero Published Reports","description":"List published reports (BAS / GST live statements) for the picker.","operationId":"xero_published_reports_api_v1_xero_clients__client_uuid__published_reports_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Xero Published Reports Api V1 Xero Clients  Client Uuid  Published Reports Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/published-reports/{report_id}":{"get":{"tags":["xero","xero"],"summary":"Xero Published Report","description":"Fetch one published report (BAS / GST) by its ReportID.","operationId":"xero_published_report_api_v1_xero_clients__client_uuid__published_reports__report_id__get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Xero Published Report Api V1 Xero Clients  Client Uuid  Published Reports  Report Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/connect":{"post":{"tags":["xero"],"summary":"Connect","description":"Mint a Xero OAuth state and return the authorize URL the browser should visit.","operationId":"connect_api_v1_xero_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/callback":{"get":{"tags":["xero"],"summary":"Callback","description":"Xero redirects here with ?code&state. Exchanges code, saves tokens + tenants.\n\nAuth is provided by the state token itself (minted by /connect, stored in\nRedis, single-use). No JWT cookie is required because Xero's user-agent\nredirect won't carry our cookies cross-site reliably.\n\nHandles both regular Xero OAuth and XPM OAuth flows via state lookup.","operationId":"callback_api_v1_xero_callback_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}},{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/tenants":{"get":{"tags":["xero"],"summary":"List Tenants","operationId":"list_tenants_api_v1_xero_tenants_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroTenantListResponse"}}}}}}},"/api/v1/xero/tenants/{xero_tenant_uuid}/bind":{"post":{"tags":["xero"],"summary":"Bind Tenant","operationId":"bind_tenant_api_v1_xero_tenants__xero_tenant_uuid__bind_post","parameters":[{"name":"xero_tenant_uuid","in":"path","required":true,"schema":{"type":"string","title":"Xero Tenant Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroTenantBindRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroTenantBindResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/adopt-tenant":{"post":{"tags":["xero"],"summary":"Adopt Tenant","description":"Per-client connect flow: bind the chosen org to this client and overwrite\nthe client's data from that Xero org (replaces the manual record).","operationId":"adopt_tenant_api_v1_xero_clients__client_uuid__adopt_tenant_post","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroAdoptTenantRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/clients/{client_uuid}/status":{"get":{"tags":["xero"],"summary":"Client Status","operationId":"client_status_api_v1_xero_clients__client_uuid__status_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroClientStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/sync/trial-balance":{"post":{"tags":["xero"],"summary":"Sync Trial Balance","operationId":"sync_trial_balance_api_v1_xero_sync_trial_balance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroSyncTrialBalanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroSyncJobSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/sync/{xero_sync_job_uuid}":{"get":{"tags":["xero"],"summary":"Sync Status","operationId":"sync_status_api_v1_xero_sync__xero_sync_job_uuid__get","parameters":[{"name":"xero_sync_job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Xero Sync Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroSyncJobSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/jobs/{job_uuid}/trial-balance":{"get":{"tags":["xero"],"summary":"Trial Balance For Job","description":"Return parsed trial balance rows for the latest sync of this job.","operationId":"trial_balance_for_job_api_v1_xero_jobs__job_uuid__trial_balance_get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter rows with balance_date >= start_date.","title":"Start Date"},"description":"Filter rows with balance_date >= start_date."},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter rows with balance_date <= end_date.","title":"End Date"},"description":"Filter rows with balance_date <= end_date."},{"name":"account_code","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Restrict to these account codes.","title":"Account Code"},"description":"Restrict to these account codes."},{"name":"source","in":"query","required":false,"schema":{"type":"string","description":"'xero' (default) or 'manual' uploads.","default":"xero","title":"Source"},"description":"'xero' (default) or 'manual' uploads."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/XeroTrialBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/akahu/connect":{"post":{"tags":["akahu"],"summary":"Connect","description":"Generate Akahu OAuth authorize URL for popup redirection.","operationId":"connect_api_v1_akahu_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AkahuConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AkahuConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/akahu/callback":{"get":{"tags":["akahu"],"summary":"Callback","description":"OAuth callback landing page. Exchanges code and notifies parent window via postMessage.\nState parameter is client_uuid.","operationId":"callback_api_v1_akahu_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},{"name":"error_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Description"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/akahu/status":{"get":{"tags":["akahu"],"summary":"Get Status","description":"Check if the client is connected to Akahu, returning provider email and account listings.","operationId":"get_status_api_v1_akahu_status_get","parameters":[{"name":"client_uuid","in":"query","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AkahuStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/akahu/sync":{"post":{"tags":["akahu"],"summary":"Sync","description":"Trigger direct refresh of Akahu bank accounts.","operationId":"sync_api_v1_akahu_sync_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AkahuSyncRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AkahuStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/akahu/balances":{"post":{"tags":["akahu"],"summary":"Get Balances","description":"Compute date-based closing balances for all connected accounts.","operationId":"get_balances_api_v1_akahu_balances_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AkahuBalanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AkahuBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/akahu/disconnect":{"delete":{"tags":["akahu"],"summary":"Disconnect","description":"Disconnect/revoke Akahu access for this client.","operationId":"disconnect_api_v1_akahu_disconnect_delete","parameters":[{"name":"client_uuid","in":"query","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Disconnect Api V1 Akahu Disconnect Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/akahu/send-link":{"post":{"tags":["akahu"],"summary":"Send Link","description":"Send the Akahu authorization link to the specified user email.","operationId":"send_link_api_v1_akahu_send_link_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AkahuSendLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Send Link Api V1 Akahu Send Link Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/grid-prefs/{grid_table}":{"get":{"tags":["grid-prefs"],"summary":"Get Prefs","operationId":"get_prefs_api_v1_grid_prefs__grid_table__get","parameters":[{"name":"grid_table","in":"path","required":true,"schema":{"type":"string","title":"Grid Table"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GridPrefsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["grid-prefs"],"summary":"Save Prefs","operationId":"save_prefs_api_v1_grid_prefs__grid_table__put","parameters":[{"name":"grid_table","in":"path","required":true,"schema":{"type":"string","title":"Grid Table"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GridPrefsBody"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/xpm/auth":{"post":{"tags":["xero-xpm"],"summary":"Xpm Auth","description":"Mint an XPM OAuth state and return the Xero authorize URL.\n\nThe frontend opens this URL in a popup window.  On completion Xero\nredirects to /xero/xpm/callback.","operationId":"xpm_auth_api_v1_xero_xpm_auth_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/xpm/auth-status":{"get":{"tags":["xero-xpm"],"summary":"Xpm Auth Status","description":"Poll endpoint: returns {connected: bool} for the popup to check after close.","operationId":"xpm_auth_status_api_v1_xero_xpm_auth_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/xpm/sync":{"post":{"tags":["xero-xpm"],"summary":"Xpm Sync","description":"Sync PRACTICEMANAGER tenants + pull XPM jobs into org_jobs.","operationId":"xpm_sync_api_v1_xero_xpm_sync_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/xpm/organizations":{"get":{"tags":["xero-xpm"],"summary":"Xpm Organizations","description":"List PRACTICEMANAGER tenants connected to this firm.","operationId":"xpm_organizations_api_v1_xero_xpm_organizations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/xpm/refresh-token":{"post":{"tags":["xero-xpm"],"summary":"Xpm Refresh Token","description":"Manually force an XPM token refresh.","operationId":"xpm_refresh_token_api_v1_xero_xpm_refresh_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/xpm/disconnect":{"post":{"tags":["xero-xpm"],"summary":"Xpm Disconnect","description":"Deactivate the XPM credential and mark all PRACTICEMANAGER tenants offline.","operationId":"xpm_disconnect_api_v1_xero_xpm_disconnect_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/partner-sync/organisations":{"get":{"tags":["xero-partner-sync"],"summary":"List Organisations","description":"List ORGANISATION tenants accessible via the Xero GL token.","operationId":"list_organisations_api_v1_xero_partner_sync_organisations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/partner-sync/connected-clients":{"get":{"tags":["xero-partner-sync"],"summary":"Connected Clients","description":"Zato clients that have a blue Xero tenant bound.","operationId":"connected_clients_api_v1_xero_partner_sync_connected_clients_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/partner-sync/xpm-clients":{"get":{"tags":["xero-partner-sync"],"summary":"Xpm Clients","description":"XPM practice client list (XML, green side).","operationId":"xpm_clients_api_v1_xero_partner_sync_xpm_clients_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/partner-sync/client-mappings":{"get":{"tags":["xero-partner-sync"],"summary":"Get Client Mappings","description":"Return existing Zato ↔ XPM client mappings.","operationId":"get_client_mappings_api_v1_xero_partner_sync_client_mappings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["xero-partner-sync"],"summary":"Save Client Mappings","description":"Persist confirmed Zato ↔ XPM client mappings (sets linked_with_xpm).","operationId":"save_client_mappings_api_v1_xero_partner_sync_client_mappings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__modules__xero__router_partner_sync__SaveClientMappingsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/partner-sync/xpm-jobs":{"get":{"tags":["xero-partner-sync"],"summary":"Xpm Jobs","description":"List all XPM jobs.  Side-effect: seeds GST into client.flags for linked clients.","operationId":"xpm_jobs_api_v1_xero_partner_sync_xpm_jobs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/partner-sync/map-jobs":{"post":{"tags":["xero-partner-sync"],"summary":"Map Jobs","description":"Import + assign XPM jobs to Zato clients.","operationId":"map_jobs_api_v1_xero_partner_sync_map_jobs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapJobsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/partner-sync/synced-jobs":{"get":{"tags":["xero-partner-sync"],"summary":"Synced Jobs","description":"Return all XPM-sourced jobs for this firm.","operationId":"synced_jobs_api_v1_xero_partner_sync_synced_jobs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/partner-sync/xpm-jobs-for-client":{"get":{"tags":["xero-partner-sync"],"summary":"Xpm Jobs For Client","description":"Return XPM jobs assigned to a specific Zato client.","operationId":"xpm_jobs_for_client_api_v1_xero_partner_sync_xpm_jobs_for_client_get","parameters":[{"name":"client_uuid","in":"query","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/partner-sync/disconnect-clients":{"post":{"tags":["xero-partner-sync"],"summary":"Disconnect Client","description":"Remove XPM mapping for a single Zato client.","operationId":"disconnect_client_api_v1_xero_partner_sync_disconnect_clients_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisconnectClientRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/xero/partner-sync/disconnect-xero":{"post":{"tags":["xero-partner-sync"],"summary":"Disconnect Xero","description":"Deactivate the Xero GL credential + mark ORGANISATION tenants offline.","operationId":"disconnect_xero_api_v1_xero_partner_sync_disconnect_xero_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/xero/partner-sync/disconnect-xpm":{"post":{"tags":["xero-partner-sync"],"summary":"Disconnect Xpm","description":"Deactivate the XPM credential + mark PRACTICEMANAGER tenants offline.","operationId":"disconnect_xpm_api_v1_xero_partner_sync_disconnect_xpm_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/zbox/tree":{"get":{"tags":["zbox"],"summary":"Get Tree","description":"Firm-rooted org tree by default; pass `client_uuid` for that client's\nsubtree (client → jobs) — the client-scoped explorer.","operationId":"get_tree_api_v1_zbox_tree_get","parameters":[{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/integrations/tree":{"get":{"tags":["zbox"],"summary":"Get Integration Tree","operationId":"get_integration_tree_api_v1_zbox_integrations_tree_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/zbox/integrations/link":{"post":{"tags":["zbox"],"summary":"Link Integration Node","operationId":"link_integration_node_api_v1_zbox_integrations_link_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkNodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files":{"get":{"tags":["zbox"],"summary":"List Files","operationId":"list_files_api_v1_zbox_files_get","parameters":[{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}},{"name":"job_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Uuid"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":24},{"type":"null"}],"title":"State"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Category"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Provider"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Q"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"updated_at","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Order"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"include_job_links","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Job Links"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files/{file_uuid}":{"get":{"tags":["zbox"],"summary":"Get File","operationId":"get_file_api_v1_zbox_files__file_uuid__get","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["zbox"],"summary":"Delete File","operationId":"delete_file_api_v1_zbox_files__file_uuid__delete","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files/{file_uuid}/view-url":{"get":{"tags":["zbox"],"summary":"File View Url","operationId":"file_view_url_api_v1_zbox_files__file_uuid__view_url_get","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files/{file_uuid}/link":{"post":{"tags":["zbox"],"summary":"Link File","operationId":"link_file_api_v1_zbox_files__file_uuid__link_post","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkFileRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files/link":{"post":{"tags":["zbox"],"summary":"Bulk Link Files","operationId":"bulk_link_files_api_v1_zbox_files_link_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files/upload":{"post":{"tags":["zbox"],"summary":"Upload File","operationId":"upload_file_api_v1_zbox_files_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_api_v1_zbox_files_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/categories":{"get":{"tags":["zbox"],"summary":"List Categories","operationId":"list_categories_api_v1_zbox_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/zbox/files/categorize":{"post":{"tags":["zbox"],"summary":"Categorize Files","operationId":"categorize_files_api_v1_zbox_files_categorize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategorizeRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files/{file_uuid}/category":{"put":{"tags":["zbox"],"summary":"Set File Category","operationId":"set_file_category_api_v1_zbox_files__file_uuid__category_put","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCategoryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files/{file_uuid}/link-client":{"post":{"tags":["zbox"],"summary":"Link File Client","operationId":"link_file_client_api_v1_zbox_files__file_uuid__link_client_post","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkClientRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/zbox/files/link-client":{"post":{"tags":["zbox"],"summary":"Bulk Link Files Client","operationId":"bulk_link_files_client_api_v1_zbox_files_link_client_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkLinkClientRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/credentials":{"get":{"tags":["fyi"],"summary":"Get Credentials","operationId":"get_credentials_api_v1_integrations_fyi_credentials_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["fyi"],"summary":"Save Credentials","operationId":"save_credentials_api_v1_integrations_fyi_credentials_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FYICredentialsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["fyi"],"summary":"Delete Credentials","operationId":"delete_credentials_api_v1_integrations_fyi_credentials_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/integrations/fyi/clients":{"get":{"tags":["fyi"],"summary":"List Clients","operationId":"list_clients_api_v1_integrations_fyi_clients_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/integrations/fyi/client-mappings":{"get":{"tags":["fyi"],"summary":"List Client Mappings","operationId":"list_client_mappings_api_v1_integrations_fyi_client_mappings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["fyi"],"summary":"Save Client Mappings","operationId":"save_client_mappings_api_v1_integrations_fyi_client_mappings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__modules__fyi__schemas__SaveClientMappingsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/auto-map-clients":{"post":{"tags":["fyi"],"summary":"Auto Map Clients","operationId":"auto_map_clients_api_v1_integrations_fyi_auto_map_clients_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/integrations/fyi/entities-only":{"get":{"tags":["fyi"],"summary":"List Entities Only","operationId":"list_entities_only_api_v1_integrations_fyi_entities_only_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","default":"","title":"Search"}},{"name":"group_name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Group Name"}},{"name":"manager_name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Manager Name"}},{"name":"partner_name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Partner Name"}},{"name":"mapping_status","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Mapping Status"}},{"name":"include_archived","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Archived"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/zato-jobs":{"get":{"tags":["fyi"],"summary":"List Zato Jobs","operationId":"list_zato_jobs_api_v1_integrations_fyi_zato_jobs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/integrations/fyi/entities":{"get":{"tags":["fyi"],"summary":"List Fyi Entities","operationId":"list_fyi_entities_api_v1_integrations_fyi_entities_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","default":"","title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/jobs":{"get":{"tags":["fyi"],"summary":"List Fyi Jobs","operationId":"list_fyi_jobs_api_v1_integrations_fyi_jobs_get","parameters":[{"name":"entity_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Entity Id"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","default":"","title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/mappings":{"get":{"tags":["fyi"],"summary":"List Mappings","operationId":"list_mappings_api_v1_integrations_fyi_mappings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["fyi"],"summary":"Save Mappings","operationId":"save_mappings_api_v1_integrations_fyi_mappings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveMappingsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/mappings/{zato_job_uuid}":{"delete":{"tags":["fyi"],"summary":"Unmap Job","operationId":"unmap_job_api_v1_integrations_fyi_mappings__zato_job_uuid__delete","parameters":[{"name":"zato_job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Zato Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/sync":{"post":{"tags":["fyi"],"summary":"Sync Now","description":"Schedule a full FYI sync off the request loop and return 202 immediately.\n\nThe FYI entity list is large + heavy (thousands of rows, ~25-60s/page), so a\nsynchronous handler would block the loop and time out the browser. The\nbackground task commits per-page; the UI polls /sync-status for live progress.","operationId":"sync_now_api_v1_integrations_fyi_sync_post","parameters":[{"name":"jobs","in":"query","required":false,"schema":{"type":"boolean","description":"Also sync jobs for mapped clients","default":true,"title":"Jobs"},"description":"Also sync jobs for mapped clients"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/sync-status":{"get":{"tags":["fyi"],"summary":"Sync Status","operationId":"sync_status_api_v1_integrations_fyi_sync_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/integrations/fyi/entity-filter-options":{"get":{"tags":["fyi"],"summary":"Entity Filter Options","operationId":"entity_filter_options_api_v1_integrations_fyi_entity_filter_options_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/integrations/fyi/auto-map-fuzzy":{"post":{"tags":["fyi"],"summary":"Auto Map Fuzzy","operationId":"auto_map_fuzzy_api_v1_integrations_fyi_auto_map_fuzzy_post","parameters":[{"name":"threshold","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.5,"default":0.8,"title":"Threshold"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/cabinets":{"get":{"tags":["fyi"],"summary":"List Cabinets","operationId":"list_cabinets_api_v1_integrations_fyi_cabinets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/integrations/fyi/sync-cabinets":{"post":{"tags":["fyi"],"summary":"Sync Cabinets","operationId":"sync_cabinets_api_v1_integrations_fyi_sync_cabinets_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/integrations/fyi/hidden-cabinets":{"post":{"tags":["fyi"],"summary":"Set Hidden Cabinets","operationId":"set_hidden_cabinets_api_v1_integrations_fyi_hidden_cabinets_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetHiddenCabinetsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/files":{"get":{"tags":["fyi"],"summary":"List Files","operationId":"list_files_api_v1_integrations_fyi_files_get","parameters":[{"name":"fyi_entity_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fyi Entity Id"}},{"name":"fyi_job_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Fyi Job Id"}},{"name":"cabinet_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Cabinet Id"}},{"name":"zato_job_uuid","in":"query","required":false,"schema":{"type":"string","default":"","title":"Zato Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/fyi/file-links":{"post":{"tags":["fyi"],"summary":"Save File Links","operationId":"save_file_links_api_v1_integrations_fyi_file_links_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveFileLinksRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl/files/{file_uuid}/process":{"post":{"tags":["gl"],"summary":"Process Gl File","description":"Parse an uploaded GL file (Excel/CSV) via the Rust engine and store rows\nin general_ledger (source_type='uploaded'). The file must already be in ZBox\n(uploaded via POST /zbox/files/upload).","operationId":"process_gl_file_api_v1_gl_files__file_uuid__process_post","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}},{"name":"gl_year","in":"query","required":true,"schema":{"type":"string","description":"Fiscal year string, e.g. '2025'","title":"Gl Year"},"description":"Fiscal year string, e.g. '2025'"},{"name":"client_uuid","in":"query","required":false,"schema":{"type":"string","description":"Client UUID to scope this GL","default":"","title":"Client Uuid"},"description":"Client UUID to scope this GL"},{"name":"job_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional job UUID","title":"Job Uuid"},"description":"Optional job UUID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl/files/{file_uuid}/rows":{"get":{"tags":["gl"],"summary":"Preview Gl Rows","description":"Return the extracted GL rows stored for an uploaded file — the data behind\nthe in-app preview. Reads from general_ledger (never the raw file).","operationId":"preview_gl_rows_api_v1_gl_files__file_uuid__rows_get","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl/files/{file_uuid}/columns":{"get":{"tags":["gl"],"summary":"Gl Column Check","description":"Report which expected GL columns the uploaded file has and which required\nones are missing — so the UI can ask the user to map them. Read-only.","operationId":"gl_column_check_api_v1_gl_files__file_uuid__columns_get","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl/files/{file_uuid}/columns/apply":{"post":{"tags":["gl"],"summary":"Gl Apply Column Mapping","description":"Rename the file's headers to Zato's expected columns per the mapping, then\nre-extract (replacing the prior mis-parsed rows for this file).","operationId":"gl_apply_column_mapping_api_v1_gl_files__file_uuid__columns_apply_post","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ColumnMappingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl/files/{file_uuid}/opening-balance":{"get":{"tags":["gl"],"summary":"Opening Balance Status","description":"Assess opening balances for an uploaded GL: whether any opening row exists,\nwhich balance-sheet accounts are missing one, and whether a prior-year trial\nbalance is available to import from. Read-only.","operationId":"opening_balance_status_api_v1_gl_files__file_uuid__opening_balance_get","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl/files/{file_uuid}/opening-balance/resolve":{"post":{"tags":["gl"],"summary":"Resolve Opening Balance","description":"Fill missing opening rows — method='zero' (open every missing account at 0)\nor 'import_tb' (balance-sheet accounts open at the prior-year TB closing\nbalance; P&L always 0). Idempotent: accounts with an opening row are skipped.","operationId":"resolve_opening_balance_api_v1_gl_files__file_uuid__opening_balance_resolve_post","parameters":[{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveOpeningRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl-rules":{"post":{"tags":["gl-rules"],"summary":"Create Rule","operationId":"create_rule_api_v1_gl_rules_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleWriteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl-rules/org":{"get":{"tags":["gl-rules"],"summary":"List Rules","operationId":"list_rules_api_v1_gl_rules_org_get","parameters":[{"name":"is_data","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Is Data"}},{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}},{"name":"client_uuid_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl-rules/dropdown":{"get":{"tags":["gl-rules"],"summary":"Dropdown","operationId":"dropdown_api_v1_gl_rules_dropdown_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/gl-rules/bulk-upload":{"put":{"tags":["gl-rules"],"summary":"Bulk Upload","operationId":"bulk_upload_api_v1_gl_rules_bulk_upload_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUploadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl-rules/{condition_id}":{"get":{"tags":["gl-rules"],"summary":"Get Rule","operationId":"get_rule_api_v1_gl_rules__condition_id__get","parameters":[{"name":"condition_id","in":"path","required":true,"schema":{"type":"integer","title":"Condition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["gl-rules"],"summary":"Update Rule","operationId":"update_rule_api_v1_gl_rules__condition_id__put","parameters":[{"name":"condition_id","in":"path","required":true,"schema":{"type":"integer","title":"Condition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleWriteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["gl-rules"],"summary":"Delete Rule","operationId":"delete_rule_api_v1_gl_rules__condition_id__delete","parameters":[{"name":"condition_id","in":"path","required":true,"schema":{"type":"integer","title":"Condition Id"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string","default":"FIRM","title":"Scope"}},{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gl-rules/{condition_id}/toggle":{"put":{"tags":["gl-rules"],"summary":"Toggle Rule","operationId":"toggle_rule_api_v1_gl_rules__condition_id__toggle_put","parameters":[{"name":"condition_id","in":"path","required":true,"schema":{"type":"integer","title":"Condition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients":{"get":{"tags":["partner-api"],"summary":"List Clients","operationId":"list_clients_api_v1_partner_clients_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Search"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated Since"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_uuid}":{"get":{"tags":["partner-api"],"summary":"Get Client","operationId":"get_client_api_v1_partner_clients__client_uuid__get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_uuid}/jobs":{"get":{"tags":["partner-api"],"summary":"List Client Jobs","operationId":"list_client_jobs_api_v1_partner_clients__client_uuid__jobs_get","parameters":[{"name":"client_uuid","in":"path","required":true,"schema":{"type":"string","title":"Client Uuid"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/jobs":{"get":{"tags":["partner-api"],"summary":"List Jobs","operationId":"list_jobs_api_v1_partner_jobs_get","parameters":[{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}},{"name":"status_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Id"}},{"name":"financial_year","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Financial Year"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/jobs/{job_uuid}":{"get":{"tags":["partner-api"],"summary":"Get Job","operationId":"get_job_api_v1_partner_jobs__job_uuid__get","parameters":[{"name":"job_uuid","in":"path","required":true,"schema":{"type":"string","title":"Job Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/files/upload-urls":{"post":{"tags":["partner-api"],"summary":"Issue Upload Urls","operationId":"issue_upload_urls_api_v1_partner_files_upload_urls_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadUrlsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/files":{"get":{"tags":["partner-api"],"summary":"Batch Status","operationId":"batch_status_api_v1_partner_files_get","parameters":[{"name":"batch_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/api-keys":{"get":{"tags":["integrations"],"summary":"List Api Keys","operationId":"list_api_keys_api_v1_integrations_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["integrations"],"summary":"Create Api Key","operationId":"create_api_key_api_v1_integrations_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integrations/api-keys/{key_uuid}":{"delete":{"tags":["integrations"],"summary":"Revoke Api Key","operationId":"revoke_api_key_api_v1_integrations_api_keys__key_uuid__delete","parameters":[{"name":"key_uuid","in":"path","required":true,"schema":{"type":"string","title":"Key Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/r/request-otp":{"post":{"tags":["questionnaire-recipient"],"summary":"Request Otp","operationId":"request_otp_api_v1_questionnaire_r_request_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestOtpRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/r/verify-otp":{"post":{"tags":["questionnaire-recipient"],"summary":"Verify Otp Route","operationId":"verify_otp_route_api_v1_questionnaire_r_verify_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__modules__questionnaire__schemas_recipient__VerifyOtpRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/r/form":{"get":{"tags":["questionnaire-recipient"],"summary":"Get Form","operationId":"get_form_api_v1_questionnaire_r_form_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/questionnaire/r/draft":{"put":{"tags":["questionnaire-recipient"],"summary":"Save Draft","operationId":"save_draft_api_v1_questionnaire_r_draft_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/r/submit":{"post":{"tags":["questionnaire-recipient"],"summary":"Submit","operationId":"submit_api_v1_questionnaire_r_submit_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/questionnaire/r/reassign":{"post":{"tags":["questionnaire-recipient"],"summary":"Reassign","operationId":"reassign_api_v1_questionnaire_r_reassign_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReassignRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/r/reclaim":{"post":{"tags":["questionnaire-recipient"],"summary":"Reclaim","operationId":"reclaim_api_v1_questionnaire_r_reclaim_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/questionnaire/r/files":{"post":{"tags":["questionnaire-recipient"],"summary":"Upload File","operationId":"upload_file_api_v1_questionnaire_r_files_post","parameters":[{"name":"snapshot_question_uuid","in":"query","required":true,"schema":{"type":"string","title":"Snapshot Question Uuid"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_api_v1_questionnaire_r_files_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/r/logout":{"post":{"tags":["questionnaire-recipient"],"summary":"Logout","operationId":"logout_api_v1_questionnaire_r_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/questionnaire/master-groups":{"get":{"tags":["questionnaire"],"summary":"List Master Groups","operationId":"list_master_groups_api_v1_questionnaire_master_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/questionnaire/groups":{"get":{"tags":["questionnaire"],"summary":"List Groups","operationId":"list_groups_api_v1_questionnaire_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["questionnaire"],"summary":"Create Group","operationId":"create_group_api_v1_questionnaire_groups_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/groups/adopt":{"post":{"tags":["questionnaire"],"summary":"Adopt Group","operationId":"adopt_group_api_v1_questionnaire_groups_adopt_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdoptGroupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/groups/{group_uuid}/duplicate":{"post":{"tags":["questionnaire"],"summary":"Duplicate Group","operationId":"duplicate_group_api_v1_questionnaire_groups__group_uuid__duplicate_post","parameters":[{"name":"group_uuid","in":"path","required":true,"schema":{"type":"string","title":"Group Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DuplicateGroupRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/groups/{group_uuid}":{"patch":{"tags":["questionnaire"],"summary":"Rename Group","operationId":"rename_group_api_v1_questionnaire_groups__group_uuid__patch","parameters":[{"name":"group_uuid","in":"path","required":true,"schema":{"type":"string","title":"Group Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameGroupRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["questionnaire"],"summary":"Delete Group","operationId":"delete_group_api_v1_questionnaire_groups__group_uuid__delete","parameters":[{"name":"group_uuid","in":"path","required":true,"schema":{"type":"string","title":"Group Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["questionnaire"],"summary":"Get Group","operationId":"get_group_api_v1_questionnaire_groups__group_uuid__get","parameters":[{"name":"group_uuid","in":"path","required":true,"schema":{"type":"string","title":"Group Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/groups/{group_uuid}/sections":{"post":{"tags":["questionnaire"],"summary":"Add Section","operationId":"add_section_api_v1_questionnaire_groups__group_uuid__sections_post","parameters":[{"name":"group_uuid","in":"path","required":true,"schema":{"type":"string","title":"Group Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSectionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/sections/{section_uuid}":{"delete":{"tags":["questionnaire"],"summary":"Delete Section","operationId":"delete_section_api_v1_questionnaire_sections__section_uuid__delete","parameters":[{"name":"section_uuid","in":"path","required":true,"schema":{"type":"string","title":"Section Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/sections/{section_uuid}/questions":{"post":{"tags":["questionnaire"],"summary":"Add Question","operationId":"add_question_api_v1_questionnaire_sections__section_uuid__questions_post","parameters":[{"name":"section_uuid","in":"path","required":true,"schema":{"type":"string","title":"Section Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddQuestionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/sections/{section_uuid}/questions/paste":{"post":{"tags":["questionnaire"],"summary":"Paste Question","operationId":"paste_question_api_v1_questionnaire_sections__section_uuid__questions_paste_post","parameters":[{"name":"section_uuid","in":"path","required":true,"schema":{"type":"string","title":"Section Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddQuestionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/questions/{template_uuid}":{"delete":{"tags":["questionnaire"],"summary":"Delete Question","operationId":"delete_question_api_v1_questionnaire_questions__template_uuid__delete","parameters":[{"name":"template_uuid","in":"path","required":true,"schema":{"type":"string","title":"Template Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["questionnaire"],"summary":"Update Question","operationId":"update_question_api_v1_questionnaire_questions__template_uuid__patch","parameters":[{"name":"template_uuid","in":"path","required":true,"schema":{"type":"string","title":"Template Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateQuestionsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/groups/{group_uuid}/refresh/diff":{"get":{"tags":["questionnaire"],"summary":"Refresh Diff","operationId":"refresh_diff_api_v1_questionnaire_groups__group_uuid__refresh_diff_get","parameters":[{"name":"group_uuid","in":"path","required":true,"schema":{"type":"string","title":"Group Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/groups/{group_uuid}/refresh/apply":{"post":{"tags":["questionnaire"],"summary":"Refresh Apply","operationId":"refresh_apply_api_v1_questionnaire_groups__group_uuid__refresh_apply_post","parameters":[{"name":"group_uuid","in":"path","required":true,"schema":{"type":"string","title":"Group Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshApplyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/groups/{group_uuid}/send":{"post":{"tags":["questionnaire"],"summary":"Send Questionnaire","operationId":"send_questionnaire_api_v1_questionnaire_groups__group_uuid__send_post","parameters":[{"name":"group_uuid","in":"path","required":true,"schema":{"type":"string","title":"Group Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/invitations":{"get":{"tags":["questionnaire"],"summary":"List Invitations","operationId":"list_invitations_api_v1_questionnaire_invitations_get","parameters":[{"name":"client_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/invitations/{invitation_uuid}":{"get":{"tags":["questionnaire"],"summary":"Invitation Detail","operationId":"invitation_detail_api_v1_questionnaire_invitations__invitation_uuid__get","parameters":[{"name":"invitation_uuid","in":"path","required":true,"schema":{"type":"string","title":"Invitation Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/invitations/{invitation_uuid}/files/{file_uuid}/url":{"get":{"tags":["questionnaire"],"summary":"File View Url","operationId":"file_view_url_api_v1_questionnaire_invitations__invitation_uuid__files__file_uuid__url_get","parameters":[{"name":"invitation_uuid","in":"path","required":true,"schema":{"type":"string","title":"Invitation Uuid"}},{"name":"file_uuid","in":"path","required":true,"schema":{"type":"string","title":"File Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/invitations/{invitation_uuid}/reopen":{"post":{"tags":["questionnaire"],"summary":"Reopen Invitation","operationId":"reopen_invitation_api_v1_questionnaire_invitations__invitation_uuid__reopen_post","parameters":[{"name":"invitation_uuid","in":"path","required":true,"schema":{"type":"string","title":"Invitation Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReopenRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/invitations/{invitation_uuid}/remind":{"post":{"tags":["questionnaire"],"summary":"Remind Invitation","operationId":"remind_invitation_api_v1_questionnaire_invitations__invitation_uuid__remind_post","parameters":[{"name":"invitation_uuid","in":"path","required":true,"schema":{"type":"string","title":"Invitation Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/questionnaire/invitations/{invitation_uuid}/resend":{"post":{"tags":["questionnaire"],"summary":"Resend Invitation","operationId":"resend_invitation_api_v1_questionnaire_invitations__invitation_uuid__resend_post","parameters":[{"name":"invitation_uuid","in":"path","required":true,"schema":{"type":"string","title":"Invitation Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workspace/search":{"get":{"tags":["workspace"],"summary":"Workspace Search","operationId":"workspace_search_api_v1_workspace_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":128,"default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Healthz Get"}}}}}}}},"components":{"schemas":{"AcceptInviteRequest":{"properties":{"token":{"type":"string","maxLength":512,"minLength":8,"title":"Token"},"email":{"type":"string","format":"email","title":"Email"},"new_password":{"anyOf":[{"type":"string","maxLength":128,"minLength":8},{"type":"null"}],"title":"New Password"}},"type":"object","required":["token","email"],"title":"AcceptInviteRequest"},"AddDocumentRequest":{"properties":{"page_range":{"type":"string","title":"Page Range"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"supplier_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supplier Name"}},"type":"object","required":["page_range"],"title":"AddDocumentRequest"},"AddQuestionRequest":{"properties":{"info":{"additionalProperties":true,"type":"object","title":"Info"}},"type":"object","required":["info"],"title":"AddQuestionRequest"},"AddSectionIn":{"properties":{"base_parent_key":{"type":"string","maxLength":255,"minLength":1,"title":"Base Parent Key"}},"type":"object","required":["base_parent_key"],"title":"AddSectionIn"},"AddSectionRequest":{"properties":{"section_name":{"type":"string","title":"Section Name"}},"type":"object","required":["section_name"],"title":"AddSectionRequest"},"AdoptGroupRequest":{"properties":{"source_group_id":{"type":"integer","title":"Source Group Id"},"financial_year":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Financial Year"}},"type":"object","required":["source_group_id"],"title":"AdoptGroupRequest"},"AkahuAccountBalanceSchema":{"properties":{"balance_uuid":{"type":"string","title":"Balance Uuid"},"bank_account_id_ref":{"type":"integer","title":"Bank Account Id Ref"},"balance_date":{"type":"string","format":"date","title":"Balance Date"},"closing_balance":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Closing Balance"},"opening_balance":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Opening Balance"},"total_credits":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Credits"},"total_debits":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Debits"},"transaction_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Transaction Count"},"calculation_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Calculation Method"},"calculation_metadata":{"additionalProperties":true,"type":"object","title":"Calculation Metadata"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"status":{"type":"string","title":"Status"},"is_verified":{"type":"boolean","title":"Is Verified"}},"type":"object","required":["balance_uuid","bank_account_id_ref","balance_date","closing_balance","calculation_metadata","status","is_verified"],"title":"AkahuAccountBalanceSchema"},"AkahuBalanceRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"},"job_uuid":{"type":"string","title":"Job Uuid"},"balance_date":{"type":"string","format":"date","title":"Balance Date"}},"type":"object","required":["client_uuid","job_uuid","balance_date"],"title":"AkahuBalanceRequest"},"AkahuBalanceResponse":{"properties":{"status":{"type":"string","title":"Status"},"balances":{"items":{"$ref":"#/components/schemas/AkahuAccountBalanceSchema"},"type":"array","title":"Balances"}},"type":"object","required":["status","balances"],"title":"AkahuBalanceResponse"},"AkahuBankAccountSchema":{"properties":{"bank_account_uuid":{"type":"string","title":"Bank Account Uuid"},"bank_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Name"},"bank_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Logo Url"},"account_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Name"},"account_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Number"},"account_number_formatted":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Number Formatted"},"account_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Type"},"account_holder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Holder Name"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"current_balance":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Current Balance"},"available_balance":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Available Balance"},"balance_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Balance Updated At"},"status":{"type":"string","title":"Status"},"is_primary":{"type":"boolean","title":"Is Primary"},"last_sync_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sync At"}},"type":"object","required":["bank_account_uuid","status","is_primary"],"title":"AkahuBankAccountSchema"},"AkahuConnectRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"}},"type":"object","required":["client_uuid"],"title":"AkahuConnectRequest"},"AkahuConnectResponse":{"properties":{"authorize_url":{"type":"string","title":"Authorize Url"}},"type":"object","required":["authorize_url"],"title":"AkahuConnectResponse"},"AkahuSendLinkRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"},"email":{"type":"string","title":"Email"},"authorize_url":{"type":"string","title":"Authorize Url"}},"type":"object","required":["client_uuid","email","authorize_url"],"title":"AkahuSendLinkRequest"},"AkahuStatusResponse":{"properties":{"status":{"type":"string","title":"Status"},"provider_user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider User Email"},"accounts":{"items":{"$ref":"#/components/schemas/AkahuBankAccountSchema"},"type":"array","title":"Accounts"}},"type":"object","required":["status","accounts"],"title":"AkahuStatusResponse"},"AkahuSyncRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"}},"type":"object","required":["client_uuid"],"title":"AkahuSyncRequest"},"AssignRequest":{"properties":{"user_uuid":{"type":"string","title":"User Uuid"},"type":{"type":"string","title":"Type","default":"member"}},"type":"object","required":["user_uuid"],"title":"AssignRequest"},"AssignRequestPayload":{"properties":{"assignee_user_uuid":{"type":"string","title":"Assignee User Uuid"}},"type":"object","required":["assignee_user_uuid"],"title":"AssignRequestPayload"},"Body_create_client_api_v1_clients_post":{"properties":{"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"client_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Email"},"client_mobile_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Mobile Number"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"ird_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ird Number"},"balance_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Balance Date"},"is_xero":{"type":"boolean","title":"Is Xero","default":false},"group_id_ref":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Group Id Ref"},"client_entity_type_id_ref":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Client Entity Type Id Ref"},"send_portal_invite":{"type":"boolean","title":"Send Portal Invite","default":false},"branch_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Uuid"},"coa_file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Coa File"},"client_file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Client File"}},"type":"object","title":"Body_create_client_api_v1_clients_post"},"Body_create_run_api_v1_jobs_autocoding_files_post":{"properties":{"gl_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Gl File"},"bank_files":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Bank Files"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"balance_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Balance Date"},"region":{"type":"string","title":"Region","default":"nz"},"client_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}},"type":"object","required":["gl_file","bank_files"],"title":"Body_create_run_api_v1_jobs_autocoding_files_post"},"Body_patch_client_api_v1_clients__client_uuid__patch":{"properties":{"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"client_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Email"},"client_mobile_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Mobile Number"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"business_structure":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Structure"},"ird_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ird Number"},"balance_month":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Balance Month"},"is_xero":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Xero"},"group_id_ref":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Group Id Ref"},"client_type_id_ref":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Client Type Id Ref"},"client_entity_type_id_ref":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Client Entity Type Id Ref"},"branch_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Uuid"},"is_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Deleted"},"coa_file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Coa File"}},"type":"object","title":"Body_patch_client_api_v1_clients__client_uuid__patch"},"Body_update_firm_details_api_v1_practice_firm_me_details_put":{"properties":{"logo":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Logo"},"terms":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Terms"},"firm_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firm Name"},"firm_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firm Email"},"firm_primary_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firm Primary Phone"},"firm_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firm Address"},"suburb":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suburb"},"firm_pincode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firm Pincode"},"business_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Name"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"practice_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practice Type"},"billing_contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Contact Name"},"billing_contact_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Contact Email"},"billing_contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Contact Phone"},"terms_accepted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Terms Accepted"},"remove_logo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Remove Logo"}},"type":"object","title":"Body_update_firm_details_api_v1_practice_firm_me_details_put"},"Body_upload_api_v1_jobs_pdf_splitter_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"client_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}},"type":"object","required":["file"],"title":"Body_upload_api_v1_jobs_pdf_splitter_upload_post"},"Body_upload_avatar_api_v1_profile_me_avatar_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_avatar_api_v1_profile_me_avatar_post"},"Body_upload_client_coa_api_v1_coa_clients__client_uuid__coa_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_client_coa_api_v1_coa_clients__client_uuid__coa_post"},"Body_upload_file_api_v1_questionnaire_r_files_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_file_api_v1_questionnaire_r_files_post"},"Body_upload_file_api_v1_zbox_files_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"job_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Uuid"},"client_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}},"type":"object","required":["file"],"title":"Body_upload_file_api_v1_zbox_files_upload_post"},"Body_upload_tb_api_v1_coa_jobs__job_uuid__tb_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"upload_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upload Kind"}},"type":"object","required":["file"],"title":"Body_upload_tb_api_v1_coa_jobs__job_uuid__tb_upload_post"},"BranchCreate":{"properties":{"branch_name":{"type":"string","maxLength":255,"minLength":1,"title":"Branch Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"is_primary":{"type":"boolean","title":"Is Primary","default":false}},"type":"object","required":["branch_name"],"title":"BranchCreate","description":"One branch/office row in the onboarding form."},"BranchRequest":{"properties":{"branch_name":{"type":"string","maxLength":255,"minLength":1,"title":"Branch Name"},"branch_code":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Branch Code"},"contact_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Contact Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Phone"},"is_primary":{"type":"boolean","title":"Is Primary","default":false},"manager_user_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manager User Uuid"}},"type":"object","required":["branch_name"],"title":"BranchRequest"},"BulkLinkClientRequest":{"properties":{"file_uuids":{"items":{"type":"string"},"type":"array","title":"File Uuids"},"client_uuid":{"type":"string","title":"Client Uuid"}},"type":"object","required":["file_uuids","client_uuid"],"title":"BulkLinkClientRequest"},"BulkLinkRequest":{"properties":{"file_uuids":{"items":{"type":"string"},"type":"array","title":"File Uuids"},"job_uuid":{"type":"string","title":"Job Uuid"}},"type":"object","required":["file_uuids","job_uuid"],"title":"BulkLinkRequest"},"BulkUploadRequest":{"properties":{"condition_ids":{"items":{"type":"integer"},"type":"array","title":"Condition Ids"},"client_uuids":{"items":{"type":"string"},"type":"array","title":"Client Uuids"}},"type":"object","required":["condition_ids"],"title":"BulkUploadRequest","description":"Allocate existing rules to a set of clients (clone-to-CLIENT)."},"CategorizeRequest":{"properties":{"file_uuids":{"items":{"type":"string"},"type":"array","title":"File Uuids"},"batch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Batch Id"}},"type":"object","required":["file_uuids"],"title":"CategorizeRequest"},"CheckDuplicateRequest":{"properties":{"file_name":{"type":"string","title":"File Name"},"client_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"}},"type":"object","required":["file_name"],"title":"CheckDuplicateRequest"},"ClientQuestionnaireSubmit":{"properties":{"template_id":{"type":"string","title":"Template Id"},"answers":{"items":{"$ref":"#/components/schemas/QuestionnaireAnswer"},"type":"array","title":"Answers"},"submit":{"type":"boolean","title":"Submit","default":false}},"type":"object","required":["template_id","answers"],"title":"ClientQuestionnaireSubmit"},"ColOverride":{"properties":{"header_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Header Name"},"text_align":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Align"},"editable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Editable"},"show_info":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Info"}},"type":"object","title":"ColOverride","description":"Per-column display overrides set via the Grid Settings drawer."},"ColumnMappingRequest":{"properties":{"mapping":{"additionalProperties":{"type":"string"},"type":"object","title":"Mapping"}},"type":"object","required":["mapping"],"title":"ColumnMappingRequest"},"CreateApiKeyRequest":{"properties":{"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"},"scopes":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Scopes"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["name","scopes"],"title":"CreateApiKeyRequest"},"CreateGroupRequest":{"properties":{"name":{"type":"string","title":"Name"},"financial_year":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Financial Year"}},"type":"object","required":["name"],"title":"CreateGroupRequest"},"CreateJobIn":{"properties":{"client_uuid":{"type":"string","minLength":1,"title":"Client Uuid"},"job_name":{"type":"string","maxLength":255,"minLength":1,"title":"Job Name"},"financial_year":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Financial Year"},"period_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Period Start"},"period_end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Period End"},"job_type":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Job Type"}},"type":"object","required":["client_uuid","job_name"],"title":"CreateJobIn"},"CreateRequestPayload":{"properties":{"subject":{"type":"string","title":"Subject"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"priority":{"type":"string","title":"Priority","default":"normal"}},"type":"object","required":["subject"],"title":"CreateRequestPayload"},"CreateSupportUserPayload":{"properties":{"email":{"type":"string","title":"Email"},"full_name":{"type":"string","title":"Full Name"},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["email","full_name","role_key"],"title":"CreateSupportUserPayload"},"DisconnectClientRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"}},"type":"object","required":["client_uuid"],"title":"DisconnectClientRequest"},"DraftAnswer":{"properties":{"snapshot_question_uuid":{"type":"string","title":"Snapshot Question Uuid"},"value":{"anyOf":[{},{"type":"null"}],"title":"Value"},"additional_response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Response"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"}},"type":"object","required":["snapshot_question_uuid"],"title":"DraftAnswer"},"DraftRequest":{"properties":{"answers":{"items":{"$ref":"#/components/schemas/DraftAnswer"},"type":"array","title":"Answers","default":[]}},"type":"object","title":"DraftRequest"},"DuplicateGroupRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"DuplicateGroupRequest"},"EditDocumentRequest":{"properties":{"page_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Range"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"supplier_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supplier Name"}},"type":"object","title":"EditDocumentRequest"},"FYICredentialsRequest":{"properties":{"FYI_REGION":{"type":"string","maxLength":64,"minLength":1,"title":"Fyi Region"},"FYI_ACCESS_ID":{"type":"string","minLength":1,"title":"Fyi Access Id"},"FYI_ACCESS_SECRET":{"type":"string","title":"Fyi Access Secret","default":""}},"type":"object","required":["FYI_REGION","FYI_ACCESS_ID"],"title":"FYICredentialsRequest","description":"Connect payload. Field names mirror the 1.0 contract + the drawer form.\n\nOn RE-connect the secret may be left blank to keep the saved one (the GET\nnever returns the plaintext secret, so the form can't echo it back)."},"FirmCreateRequest":{"properties":{"practice_name":{"type":"string","maxLength":255,"minLength":1,"title":"Practice Name"},"engagement_type":{"type":"string","enum":["pilot","evaluation","dev","staging","uat","production"],"title":"Engagement Type","default":"pilot"},"agreement_signed":{"type":"boolean","title":"Agreement Signed","default":false},"gocardless_signed":{"type":"boolean","title":"Gocardless Signed","default":false},"request_support_access":{"type":"boolean","title":"Request Support Access","default":false},"billing_contact_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Billing Contact Name"},"billing_contact_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Billing Contact Email"},"customer_success_manager_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Customer Success Manager Uuid"},"start_date":{"type":"string","format":"date","title":"Start Date"},"number_of_jobs":{"type":"integer","multipleOf":5.0,"minimum":5.0,"title":"Number Of Jobs","default":5},"branches":{"items":{"$ref":"#/components/schemas/BranchCreate"},"type":"array","title":"Branches","default":[]},"partners":{"items":{"$ref":"#/components/schemas/PartnerCreate"},"type":"array","title":"Partners","default":[]}},"type":"object","required":["practice_name","start_date"],"title":"FirmCreateRequest"},"FirmUpdateRequest":{"properties":{"firm_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Firm Name"},"billing_contact_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Billing Contact Name"},"billing_contact_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Billing Contact Email"},"number_of_jobs":{"anyOf":[{"type":"integer","multipleOf":5.0,"minimum":5.0},{"type":"null"}],"title":"Number Of Jobs"},"is_pilot_agreement_signed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Pilot Agreement Signed"},"is_gocardless_mandate_signed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Gocardless Mandate Signed"},"is_support_request_access":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Support Request Access"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"users":{"items":{"$ref":"#/components/schemas/UserUpdateInFirm"},"type":"array","title":"Users","default":[]}},"type":"object","title":"FirmUpdateRequest"},"FirmUserPatchRequest":{"properties":{"full_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Full Name"},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Phone"},"role_level":{"anyOf":[{"type":"integer","enum":[1,2,3,4,5,6]},{"type":"null"}],"title":"Role Level"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"auth_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auth Type"},"branch_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Uuid"},"is_branch_head":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Branch Head"}},"type":"object","title":"FirmUserPatchRequest"},"ForgotPasswordRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"ForgotPasswordRequest"},"GrantSupportRequest":{"properties":{"user_uuid":{"type":"string","maxLength":64,"minLength":1,"title":"User Uuid"},"role_name":{"type":"string","maxLength":128,"minLength":1,"title":"Role Name"}},"type":"object","required":["user_uuid","role_name"],"title":"GrantSupportRequest"},"GridPrefsBody":{"properties":{"col_order":{"items":{"type":"string"},"type":"array","title":"Col Order"},"col_hidden":{"items":{"type":"string"},"type":"array","title":"Col Hidden"},"col_pinned":{"items":{"type":"string"},"type":"array","title":"Col Pinned"},"col_widths":{"additionalProperties":{"type":"number"},"type":"object","title":"Col Widths"},"col_overrides":{"additionalProperties":{"$ref":"#/components/schemas/ColOverride"},"type":"object","title":"Col Overrides"},"panel_group_by":{"type":"string","title":"Panel Group By","default":""},"panel_group_by_2":{"type":"string","title":"Panel Group By 2","default":""},"panel_agg_funcs":{"additionalProperties":{"type":"string"},"type":"object","title":"Panel Agg Funcs"},"show_grid_lines":{"type":"boolean","title":"Show Grid Lines","default":true},"show_search":{"type":"boolean","title":"Show Search","default":true},"saved_at":{"type":"string","title":"Saved At","default":""},"grid_version":{"type":"integer","title":"Grid Version","default":1}},"type":"object","title":"GridPrefsBody"},"GridPrefsResponse":{"properties":{"user_id":{"type":"string","title":"User Id"},"grid_table":{"type":"string","title":"Grid Table"},"prefs":{"$ref":"#/components/schemas/GridPrefsBody"}},"type":"object","required":["user_id","grid_table","prefs"],"title":"GridPrefsResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HitlAnswerRequest":{"properties":{"answer":{"additionalProperties":true,"type":"object","title":"Answer"}},"type":"object","title":"HitlAnswerRequest"},"JobCreateRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"},"job_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Code"},"job_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Name"},"job_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Type"},"status":{"type":"string","title":"Status","default":"open"},"financial_year":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Financial Year"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"source_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"},"job_source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Source Name"},"external_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"External Info"},"request_support":{"type":"boolean","title":"Request Support","default":false}},"type":"object","required":["client_uuid"],"title":"JobCreateRequest"},"JobMappingItem":{"properties":{"zatoClientUuid":{"type":"string","title":"Zatoclientuuid"},"xpmJobXeroId":{"type":"string","title":"Xpmjobxeroid"},"jobData":{"additionalProperties":true,"type":"object","title":"Jobdata","default":{}}},"type":"object","required":["zatoClientUuid","xpmJobXeroId"],"title":"JobMappingItem"},"JobPatchRequest":{"properties":{"job_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Name"},"job_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Type"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"financial_year":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Financial Year"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"coa_file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coa File Name"},"is_zato":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Zato"},"is_processing":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Processing"},"is_ready_for_review":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Ready For Review"},"is_ready_for_signoff":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Ready For Signoff"},"external_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"External Info"},"is_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Deleted"}},"type":"object","title":"JobPatchRequest"},"LinkClientRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"}},"type":"object","required":["client_uuid"],"title":"LinkClientRequest"},"LinkFileRequest":{"properties":{"job_uuid":{"type":"string","title":"Job Uuid"}},"type":"object","required":["job_uuid"],"title":"LinkFileRequest"},"LinkNodeRequest":{"properties":{"provider":{"type":"string","title":"Provider"},"folder_ids":{"items":{"type":"string"},"type":"array","title":"Folder Ids"},"job_uuid":{"type":"string","title":"Job Uuid"}},"type":"object","required":["provider","folder_ids","job_uuid"],"title":"LinkNodeRequest"},"LoginBeginRequest":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"google|microsoft|apple|cognito"}},"type":"object","title":"LoginBeginRequest"},"LoginPasswordRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":255,"minLength":1,"title":"Password"}},"type":"object","required":["email","password"],"title":"LoginPasswordRequest"},"MapJobsRequest":{"properties":{"jobMappings":{"items":{"$ref":"#/components/schemas/JobMappingItem"},"type":"array","title":"Jobmappings"},"replace_fy_conflicts":{"type":"boolean","title":"Replace Fy Conflicts","default":false}},"type":"object","required":["jobMappings"],"title":"MapJobsRequest"},"MappingItem":{"properties":{"zato_job_uuid":{"type":"string","title":"Zato Job Uuid"},"zato_client_uuid":{"type":"string","title":"Zato Client Uuid"},"fyi_entity_id":{"type":"string","title":"Fyi Entity Id"},"fyi_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fyi Job Id"}},"type":"object","required":["zato_job_uuid","zato_client_uuid","fyi_entity_id"],"title":"MappingItem","description":"One job-level FYI→Zato link (from the mapping wizard save)."},"PartnerAddRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"email":{"type":"string","format":"email","title":"Email"},"role_level":{"type":"integer","enum":[1,2,3,4,5,6],"title":"Role Level"},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Phone"}},"type":"object","required":["name","email","role_level"],"title":"PartnerAddRequest"},"PartnerCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"email":{"type":"string","format":"email","title":"Email"},"role_level":{"type":"integer","enum":[1,2,3,4,5,6],"title":"Role Level"},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Phone"},"branch_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Branch Index"}},"type":"object","required":["name","email","role_level"],"title":"PartnerCreate","description":"One row of the legacy partners table on the Add-Practice modal."},"QuestionnaireAnswer":{"properties":{"id":{"type":"string","title":"Id"},"answer":{"type":"string","title":"Answer"}},"type":"object","required":["id","answer"],"title":"QuestionnaireAnswer"},"ReassignRequest":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"}},"type":"object","required":["name","email"],"title":"ReassignRequest"},"RecodeRequest":{"properties":{"account_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Code"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","title":"RecodeRequest"},"RefreshApplyRequest":{"properties":{"accept_question_uuids":{"items":{"type":"string"},"type":"array","title":"Accept Question Uuids","default":[]},"accept_all":{"type":"boolean","title":"Accept All","default":false}},"type":"object","title":"RefreshApplyRequest"},"RenameGroupRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"RenameGroupRequest"},"ReopenRequest":{"properties":{"preserve_answers":{"type":"boolean","title":"Preserve Answers","default":true}},"type":"object","title":"ReopenRequest"},"RequestOtpRequest":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"RequestOtpRequest"},"ResetPasswordRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"code":{"type":"string","maxLength":16,"minLength":4,"title":"Code"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password"}},"type":"object","required":["email","code","new_password"],"title":"ResetPasswordRequest"},"ResolveOpeningRequest":{"properties":{"method":{"type":"string","title":"Method"}},"type":"object","required":["method"],"title":"ResolveOpeningRequest"},"ResolveRequestPayload":{"properties":{"resolution_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolution Note"}},"type":"object","title":"ResolveRequestPayload"},"ResplitDocumentEntry":{"properties":{"page_range":{"type":"string","title":"Page Range"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"supplier_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supplier Name"}},"type":"object","required":["page_range"],"title":"ResplitDocumentEntry"},"ResplitRequest":{"properties":{"documents":{"items":{"$ref":"#/components/schemas/ResplitDocumentEntry"},"type":"array","title":"Documents"}},"type":"object","title":"ResplitRequest"},"RuleWriteRequest":{"properties":{"rule_name":{"type":"string","title":"Rule Name"},"account_code":{"items":{"type":"integer"},"type":"array","title":"Account Code"},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field"},"operator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operator"},"value":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Value"},"value1":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Value1"},"value2":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Value2"},"keywords":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Keywords"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"},"action_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Message"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"entity_type":{"items":{"type":"string"},"type":"array","title":"Entity Type"},"gst_applicability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gst Applicability"},"year_applicability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Year Applicability"},"applicability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Applicability"},"reclassification_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reclassification From"},"reclassification_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reclassification To"},"auto_apply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auto Apply"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"condition_specific_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition Specific Type"},"client_ids":{"items":{"type":"string"},"type":"array","title":"Client Ids"},"small_th":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Small Th"},"medium_th":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Medium Th"},"enterprise_th":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Enterprise Th"}},"type":"object","required":["rule_name"],"title":"RuleWriteRequest","description":"Create/update body. Permissive — the UI sends a wide, loosely-typed shape."},"SaveFileLinksRequest":{"properties":{"zato_job_uuid":{"type":"string","title":"Zato Job Uuid"},"fyi_file_ids":{"items":{"type":"string"},"type":"array","title":"Fyi File Ids"}},"type":"object","required":["zato_job_uuid","fyi_file_ids"],"title":"SaveFileLinksRequest"},"SaveMappingsRequest":{"properties":{"mappings":{"items":{"$ref":"#/components/schemas/MappingItem"},"type":"array","title":"Mappings"}},"type":"object","required":["mappings"],"title":"SaveMappingsRequest"},"SendRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"},"recipient_email":{"type":"string","title":"Recipient Email"},"recipient_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Name"},"financial_year":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Financial Year"},"period_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Period Start"},"period_end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Period End"},"due_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Due Date"}},"type":"object","required":["client_uuid","recipient_email"],"title":"SendRequest"},"SetCategoryRequest":{"properties":{"parent_key":{"type":"string","title":"Parent Key"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"sub_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Key"},"account_mapping":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Mapping"}},"type":"object","required":["parent_key"],"title":"SetCategoryRequest"},"SetHiddenCabinetsRequest":{"properties":{"cabinet_ids":{"items":{"type":"string"},"type":"array","title":"Cabinet Ids"}},"type":"object","required":["cabinet_ids"],"title":"SetHiddenCabinetsRequest"},"SetNewPasswordRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password"},"session_token":{"type":"string","maxLength":4096,"minLength":8,"title":"Session Token"}},"type":"object","required":["email","new_password","session_token"],"title":"SetNewPasswordRequest","description":"Used to complete Cognito's NEW_PASSWORD_REQUIRED challenge (first login\nafter a temp password from the welcome / invite email)."},"TeammateInviteRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"email":{"type":"string","format":"email","title":"Email"},"role_level":{"type":"integer","enum":[1,2,3,4,5,6],"title":"Role Level"},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Phone"},"auth_type":{"type":"string","maxLength":32,"title":"Auth Type","default":"manual"},"branch_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch Uuid"},"is_branch_head":{"type":"boolean","title":"Is Branch Head","default":false}},"type":"object","required":["name","email","role_level"],"title":"TeammateInviteRequest"},"UpdateClientThresholdsRequest":{"properties":{"threshold_data":{"additionalProperties":true,"type":"object","title":"Threshold Data"}},"type":"object","required":["threshold_data"],"title":"UpdateClientThresholdsRequest"},"UpdateClientWpThresholdsRequest":{"properties":{"threshold_data":{"additionalProperties":true,"type":"object","title":"Threshold Data"}},"type":"object","required":["threshold_data"],"title":"UpdateClientWpThresholdsRequest"},"UpdateJobThresholdsRequest":{"properties":{"threshold_data":{"additionalProperties":true,"type":"object","title":"Threshold Data"}},"type":"object","required":["threshold_data"],"title":"UpdateJobThresholdsRequest"},"UpdateJobTypeThresholdsRequest":{"properties":{"threshold_data":{"additionalProperties":true,"type":"object","title":"Threshold Data"}},"type":"object","required":["threshold_data"],"title":"UpdateJobTypeThresholdsRequest"},"UpdateJobTypeWpThresholdsRequest":{"properties":{"threshold_data":{"additionalProperties":true,"type":"object","title":"Threshold Data"}},"type":"object","required":["threshold_data"],"title":"UpdateJobTypeWpThresholdsRequest"},"UpdateJobWpThresholdsRequest":{"properties":{"threshold_data":{"additionalProperties":true,"type":"object","title":"Threshold Data"}},"type":"object","required":["threshold_data"],"title":"UpdateJobWpThresholdsRequest"},"UpdateMappingIn":{"properties":{"parent_key":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Parent Key"},"section":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Section"}},"type":"object","title":"UpdateMappingIn"},"UpdateOrgThresholdsRequest":{"properties":{"threshold_data":{"additionalProperties":true,"type":"object","title":"Threshold Data"}},"type":"object","required":["threshold_data"],"title":"UpdateOrgThresholdsRequest"},"UpdateOrgWpThresholdsRequest":{"properties":{"threshold_data":{"additionalProperties":true,"type":"object","title":"Threshold Data"}},"type":"object","required":["threshold_data"],"title":"UpdateOrgWpThresholdsRequest"},"UpdateQuestionsRequest":{"properties":{"questions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Questions"}},"type":"object","required":["questions"],"title":"UpdateQuestionsRequest"},"UploadFileSpec":{"properties":{"file_name":{"type":"string","maxLength":512,"minLength":1,"title":"File Name"},"content_type":{"type":"string","maxLength":255,"title":"Content Type","default":"application/octet-stream"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size"}},"additionalProperties":true,"type":"object","required":["file_name"],"title":"UploadFileSpec"},"UploadUrlsRequest":{"properties":{"level":{"anyOf":[{"type":"string","enum":["firm","client","job"]},{"type":"null"}],"title":"Level"},"client_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"},"job_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Uuid"},"files":{"items":{"$ref":"#/components/schemas/UploadFileSpec"},"type":"array","minItems":1,"title":"Files"}},"additionalProperties":true,"type":"object","required":["files"],"title":"UploadUrlsRequest"},"UserUpdateInFirm":{"properties":{"user_uuid":{"type":"string","title":"User Uuid"},"full_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Full Name"},"role_level":{"anyOf":[{"type":"integer","enum":[1,2,3,4,5,6]},{"type":"null"}],"title":"Role Level"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","required":["user_uuid"],"title":"UserUpdateInFirm"},"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"},"XeroAdoptTenantRequest":{"properties":{"xero_tenant_uuid":{"type":"string","title":"Xero Tenant Uuid"}},"type":"object","required":["xero_tenant_uuid"],"title":"XeroAdoptTenantRequest","description":"Bind the chosen org to this client and overwrite its data from Xero."},"XeroClientStatusResponse":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"},"is_connected":{"type":"boolean","title":"Is Connected"},"xero_tenant_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xero Tenant Uuid"},"tenant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Name"},"tenant_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Type"},"bound_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Bound At"}},"type":"object","required":["client_uuid","is_connected","xero_tenant_uuid","tenant_name","tenant_type","bound_at"],"title":"XeroClientStatusResponse"},"XeroConnectRequest":{"properties":{"client_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid","description":"Optional. If provided, the FIRST tenant returned by Xero gets auto-bound to this client on callback (so the user doesn't have to pick afterwards)."},"token_type":{"type":"string","title":"Token Type","description":"'XERO' for accounting GL flow, 'XPM' for Practice Manager flow.","default":"XERO"},"pick_org":{"type":"boolean","title":"Pick Org","description":"When true (client-scoped 'connect this client to Xero' flow), the callback only establishes the connection + discovers orgs — it does NOT auto-bind the first tenant or auto-onboard clients. The UI then lists the authorized orgs and the user picks one to adopt onto this client.","default":false}},"type":"object","title":"XeroConnectRequest","description":"Body of POST /xero/connect."},"XeroConnectResponse":{"properties":{"authorize_url":{"type":"string","title":"Authorize Url"},"state":{"type":"string","title":"State"}},"type":"object","required":["authorize_url","state"],"title":"XeroConnectResponse"},"XeroSyncJobSummary":{"properties":{"xero_sync_job_uuid":{"type":"string","title":"Xero Sync Job Uuid"},"status":{"type":"string","title":"Status"},"resource_type":{"type":"string","title":"Resource Type"},"report_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Report Date"},"trace_id":{"type":"string","title":"Trace Id"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["xero_sync_job_uuid","status","resource_type","report_date","trace_id","error_message","started_at","finished_at","created_at","updated_at"],"title":"XeroSyncJobSummary"},"XeroSyncTrialBalanceRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"},"job_uuid":{"type":"string","title":"Job Uuid"},"xero_tenant_uuid":{"type":"string","title":"Xero Tenant Uuid"},"report_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Report Date"}},"type":"object","required":["client_uuid","job_uuid","xero_tenant_uuid"],"title":"XeroSyncTrialBalanceRequest"},"XeroTenantBindRequest":{"properties":{"client_uuid":{"type":"string","title":"Client Uuid"}},"type":"object","required":["client_uuid"],"title":"XeroTenantBindRequest"},"XeroTenantBindResponse":{"properties":{"xero_tenant_uuid":{"type":"string","title":"Xero Tenant Uuid"},"client_uuid":{"type":"string","title":"Client Uuid"},"bound_at":{"type":"string","format":"date-time","title":"Bound At"}},"type":"object","required":["xero_tenant_uuid","client_uuid","bound_at"],"title":"XeroTenantBindResponse"},"XeroTenantListResponse":{"properties":{"tenants":{"items":{"$ref":"#/components/schemas/XeroTenantSummary"},"type":"array","title":"Tenants"}},"type":"object","required":["tenants"],"title":"XeroTenantListResponse"},"XeroTenantSummary":{"properties":{"xero_tenant_uuid":{"type":"string","title":"Xero Tenant Uuid"},"xero_tenant_external_id":{"type":"string","title":"Xero Tenant External Id"},"tenant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Name"},"tenant_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Type"},"client_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uuid"},"is_active":{"type":"boolean","title":"Is Active"},"bound_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Bound At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["xero_tenant_uuid","xero_tenant_external_id","tenant_name","tenant_type","client_uuid","is_active","bound_at","created_at"],"title":"XeroTenantSummary"},"XeroTrialBalanceResponse":{"properties":{"job_uuid":{"type":"string","title":"Job Uuid"},"report_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Date"},"rows":{"items":{"$ref":"#/components/schemas/XeroTrialBalanceRow"},"type":"array","title":"Rows"},"totals":{"additionalProperties":{"type":"number"},"type":"object","title":"Totals"},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"sync_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sync Status"}},"type":"object","required":["job_uuid","report_date","rows","totals","last_synced_at","sync_status"],"title":"XeroTrialBalanceResponse"},"XeroTrialBalanceRow":{"properties":{"xero_trial_balance_uuid":{"type":"string","title":"Xero Trial Balance Uuid"},"section":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Section"},"account_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Code"},"account_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Name"},"debit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Debit"},"credit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Credit"},"ytd_debit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ytd Debit"},"ytd_credit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ytd Credit"},"balance_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Balance Type"}},"type":"object","required":["xero_trial_balance_uuid","section","account_code","account_name","debit","credit","ytd_debit","ytd_credit","balance_type"],"title":"XeroTrialBalanceRow"},"app__modules__auth__schemas__VerifyOtpRequest":{"properties":{"code":{"type":"string","maxLength":10,"minLength":4,"title":"Code"}},"type":"object","required":["code"],"title":"VerifyOtpRequest"},"app__modules__fyi__schemas__ClientMappingItem":{"properties":{"fyi_entity_id":{"type":"string","title":"Fyi Entity Id"},"zato_client_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zato Client Uuid"}},"type":"object","required":["fyi_entity_id"],"title":"ClientMappingItem","description":"One entity→client mapping row. zato_client_uuid=None clears the link."},"app__modules__fyi__schemas__SaveClientMappingsRequest":{"properties":{"mappings":{"items":{"$ref":"#/components/schemas/app__modules__fyi__schemas__ClientMappingItem"},"type":"array","title":"Mappings"}},"type":"object","required":["mappings"],"title":"SaveClientMappingsRequest"},"app__modules__organization__org_schemas__BranchUpdateRequest":{"properties":{"branch_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Branch Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"is_primary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Primary"}},"type":"object","title":"BranchUpdateRequest"},"app__modules__practice__schemas__BranchUpdateRequest":{"properties":{"branch_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Branch Name"},"branch_code":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Branch Code"},"contact_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Contact Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Phone"},"is_primary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Primary"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"manager_user_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manager User Uuid"}},"type":"object","title":"BranchUpdateRequest"},"app__modules__questionnaire__schemas_recipient__VerifyOtpRequest":{"properties":{"pre_session_token":{"type":"string","title":"Pre Session Token"},"code":{"type":"string","title":"Code"}},"type":"object","required":["pre_session_token","code"],"title":"VerifyOtpRequest"},"app__modules__xero__router_partner_sync__ClientMappingItem":{"properties":{"zatoClientUuid":{"type":"string","title":"Zatoclientuuid"},"xpmClientXeroId":{"type":"string","title":"Xpmclientxeroid"}},"type":"object","required":["zatoClientUuid","xpmClientXeroId"],"title":"ClientMappingItem"},"app__modules__xero__router_partner_sync__SaveClientMappingsRequest":{"properties":{"mappings":{"items":{"$ref":"#/components/schemas/app__modules__xero__router_partner_sync__ClientMappingItem"},"type":"array","title":"Mappings"},"replace_existing":{"type":"boolean","title":"Replace Existing","default":false}},"type":"object","required":["mappings"],"title":"SaveClientMappingsRequest"}}}}