{"openapi":"3.1.0","info":{"title":"Frias Family Financial Muse connector","version":"0.1.0","description":"Private Origin Muse connector for consult booking, client intake, and Stripe payment links. Mutating calls require Idempotency-Key and confirm-before-commit. Responses never include raw PII."},"servers":[{"url":"https://api.friasfamilyfinancial.com"}],"tags":[{"name":"Discovery"},{"name":"Booking"},{"name":"Intake"},{"name":"Payments"}],"paths":{"/health":{"get":{"tags":["Discovery"],"operationId":"health","summary":"Liveness and adapter mode","responses":{"200":{"description":"OK"}}}},"/openapi.json":{"get":{"tags":["Discovery"],"operationId":"openapi","summary":"Public OpenAPI 3.1 document","security":[],"responses":{"200":{"description":"OpenAPI document"}}}},"/llms.txt":{"get":{"tags":["Discovery"],"operationId":"llmsTxt","summary":"Agent-oriented site description","security":[],"responses":{"200":{"description":"text/plain"}}}},"/v1/availability":{"get":{"tags":["Booking"],"operationId":"list_availability","summary":"List consult availability","parameters":[{"name":"start_time","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"end_time","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"timezone","in":"query","schema":{"type":"string","default":"America/New_York"}},{"name":"event_type","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Availability slots"}}}},"/v1/bookings":{"post":{"tags":["Booking"],"operationId":"book_consult","summary":"Preview or commit a consult booking","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["start_time","timezone","invitee_email","confirm"],"properties":{"start_time":{"type":"string","format":"date-time"},"timezone":{"type":"string"},"invitee_email":{"type":"string","format":"email"},"invitee_name":{"type":"string"},"event_type":{"type":"string"},"confirm":{"type":"boolean"},"confirmation_token":{"type":"string"}}}}}},"responses":{"200":{"description":"Preview or committed result"},"400":{"description":"Validation, missing Idempotency-Key, or confirm flow error"},"409":{"description":"Idempotency payload mismatch or expired confirmation"}}}},"/v1/bookings/{booking_id}/reschedule":{"post":{"tags":["Booking"],"operationId":"reschedule_booking","summary":"Preview or commit a reschedule","parameters":[{"name":"booking_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["start_time","confirm"],"properties":{"start_time":{"type":"string","format":"date-time"},"timezone":{"type":"string"},"invitee_email":{"type":"string","format":"email"},"confirm":{"type":"boolean"},"confirmation_token":{"type":"string"}}}}}},"responses":{"200":{"description":"Preview or committed result"},"400":{"description":"Validation, missing Idempotency-Key, or confirm flow error"},"409":{"description":"Idempotency payload mismatch or expired confirmation"}}}},"/v1/bookings/{booking_id}/cancel":{"post":{"tags":["Booking"],"operationId":"cancel_booking","summary":"Preview or commit a cancellation","parameters":[{"name":"booking_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["confirm"],"properties":{"reason":{"type":"string"},"confirm":{"type":"boolean"},"confirmation_token":{"type":"string"}}}}}},"responses":{"200":{"description":"Preview or committed result"},"400":{"description":"Validation, missing Idempotency-Key, or confirm flow error"},"409":{"description":"Idempotency payload mismatch or expired confirmation"}}}},"/v1/clients":{"post":{"tags":["Intake"],"operationId":"create_client_profile","summary":"Preview or create a client profile","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["entity_type","display_name","contact_email","confirm"],"properties":{"entity_type":{"type":"string","enum":["individual","joint","trust","llc","s_corp","c_corp","partnership","estate"]},"display_name":{"type":"string"},"contact_email":{"type":"string","format":"email"},"timezone":{"type":"string"},"confirm":{"type":"boolean"},"confirmation_token":{"type":"string"}}}}}},"responses":{"200":{"description":"Preview or committed result"},"400":{"description":"Validation, missing Idempotency-Key, or confirm flow error"},"409":{"description":"Idempotency payload mismatch or expired confirmation"}}}},"/v1/clients/{client_id}/intake":{"post":{"tags":["Intake"],"operationId":"submit_intake_answers","summary":"Preview or submit validated intake answers","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["answers","confirm"],"properties":{"answers":{"type":"object","required":["primary_goal"],"additionalProperties":false,"properties":{"primary_goal":{"type":"string","enum":["retirement","tax_planning","business_formation","wealth_transfer","cash_flow","other"]},"tax_situation":{"type":"string","enum":["simple","multi_state","business_owner","estate"]},"has_existing_cpa":{"type":"boolean"},"preferred_meeting":{"type":"string","enum":["virtual","in_person","either"]},"household_members":{"type":"integer","minimum":1,"maximum":12},"notes":{"type":"string","maxLength":500},"annual_revenue_band":{"type":"string","enum":["under_100k","100k_500k","500k_2m","over_2m"]}}},"confirm":{"type":"boolean"},"confirmation_token":{"type":"string"}}}}}},"responses":{"200":{"description":"Preview or committed result"},"400":{"description":"Validation, missing Idempotency-Key, or confirm flow error"},"409":{"description":"Idempotency payload mismatch or expired confirmation"}}}},"/v1/payment-links":{"post":{"tags":["Payments"],"operationId":"create_payment_link","summary":"Preview or create a Stripe hosted payment link","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["invoice_id","confirm"],"properties":{"invoice_id":{"type":"string"},"confirm":{"type":"boolean"},"confirmation_token":{"type":"string"}}}}}},"responses":{"200":{"description":"Preview or committed result"},"400":{"description":"Validation, missing Idempotency-Key, or confirm flow error"},"409":{"description":"Idempotency payload mismatch or expired confirmation"}}}}}}