{"openapi":"3.1.0","info":{"title":"Medicrest Claims API","description":"Insurance claims engine for Medicrest Plus. See docs/API.md for the narrative guide.","version":"0.3.0"},"paths":{"/api/auth/config":{"get":{"tags":["auth"],"summary":"Public: mode and demo accounts (mock only)","operationId":"auth_config_api_auth_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/login":{"post":{"tags":["auth"],"summary":"Sign in (sets the mc_session cookie)","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/logout":{"post":{"tags":["auth"],"summary":"Sign out","operationId":"logout_api_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/me":{"get":{"tags":["auth"],"summary":"Current principal (user or API key)","operationId":"me_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/status":{"get":{"tags":["reference"],"summary":"Mode, channels, credential health, KPIs (scoped to the caller)","operationId":"status_api_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/payers":{"get":{"tags":["reference"],"summary":"List insurers","operationId":"payers_api_payers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["reference"],"summary":"Create or update an insurer","operationId":"upsert_payer_api_payers_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayerIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payers/{code}":{"delete":{"tags":["reference"],"summary":"Delete an insurer","operationId":"delete_payer_api_payers__code__delete","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cover-rules":{"get":{"tags":["reference"],"summary":"List cover rules","operationId":"rules_api_cover_rules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["reference"],"summary":"Create or update a cover rule","operationId":"upsert_rule_api_cover_rules_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["reference"],"summary":"Delete a cover rule","operationId":"delete_rule_api_cover_rules_delete","parameters":[{"name":"payer_code","in":"query","required":true,"schema":{"type":"string","title":"Payer Code"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","default":"pharmacy","title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/catalogue":{"get":{"tags":["reference"],"summary":"Search the medicine catalogue (demo data)","operationId":"catalogue_api_catalogue_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/icd10":{"get":{"tags":["reference"],"summary":"Search ICD-10 codes","operationId":"icd10_api_icd10_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/eligibility":{"post":{"tags":["claims"],"summary":"Check a member's cover with their insurer","operationId":"eligibility_api_eligibility_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EligIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/otp":{"post":{"tags":["claims"],"summary":"Send a one-time code to the member (EDI channel)","operationId":"otp_api_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sessions":{"get":{"tags":["claims"],"summary":"Pending terminal sessions (terminal channel)","operationId":"sessions_api_sessions_get","parameters":[{"name":"payer_code","in":"query","required":true,"schema":{"type":"string","title":"Payer Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/authorise":{"post":{"tags":["claims"],"summary":"Authorise the encounter (start visit / merge session)","operationId":"authorise_api_authorise_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/quote":{"post":{"tags":["claims"],"summary":"Price a basket: gross, discounts, patient share, insurer pays","operationId":"quote_api_quote_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims":{"post":{"tags":["claims"],"summary":"Submit a claim (claim → invoice → diagnoses → reservation)","operationId":"submit_api_claims_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["claims"],"summary":"List claims (agents see only their insurers)","operationId":"list_claims_api_claims_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/export.csv":{"get":{"tags":["lifecycle"],"summary":"Export the ledger as CSV","operationId":"export_claims_api_claims_export_csv_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/claims/sync-all":{"post":{"tags":["lifecycle"],"summary":"Pull adjudication status for every open claim","operationId":"sync_all_api_claims_sync_all_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/reconciliation":{"get":{"tags":["lifecycle"],"summary":"Per-insurer billed/approved/paid/outstanding, aging, attention list","operationId":"reconciliation_api_reconciliation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/claims/{claim_id}":{"get":{"tags":["claims"],"summary":"One claim with steps, payloads, lifecycle","operationId":"get_claim_api_claims__claim_id__get","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/{claim_id}/attach":{"post":{"tags":["claims"],"summary":"Attach a prescription/document (EDI channel)","operationId":"attach_api_claims__claim_id__attach_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_attach_api_claims__claim_id__attach_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/{claim_id}/credit-note":{"post":{"tags":["claims"],"summary":"Issue a credit note (refund)","operationId":"credit_note_api_claims__claim_id__credit_note_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditIn","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/{claim_id}/close":{"post":{"tags":["claims"],"summary":"Close the terminal session","operationId":"close_api_claims__claim_id__close_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/{claim_id}/retry":{"post":{"tags":["claims"],"summary":"Resume a partial/failed submission","operationId":"retry_api_claims__claim_id__retry_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/{claim_id}/sync":{"post":{"tags":["lifecycle"],"summary":"Pull adjudication status from the channel","operationId":"sync_api_claims__claim_id__sync_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/{claim_id}/adjudicate":{"post":{"tags":["lifecycle"],"summary":"Manual adjudication (staff or the insurer's agent)","operationId":"adjudicate_api_claims__claim_id__adjudicate_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdjudicateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/{claim_id}/payment":{"post":{"tags":["lifecycle"],"summary":"Record a remittance/payment","operationId":"payment_api_claims__claim_id__payment_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/{claim_id}/payments":{"get":{"tags":["lifecycle"],"summary":"Payments recorded on a claim","operationId":"payments_api_claims__claim_id__payments_get","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/sessions":{"post":{"tags":["checkout"],"summary":"Storefront: create a Pay-with-insurance session for an order","operationId":"checkout_create_api_checkout_sessions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/payers":{"get":{"tags":["checkout"],"summary":"Public: insurers a customer can choose and what each needs","operationId":"checkout_payers_api_checkout_payers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/checkouts":{"get":{"tags":["checkout"],"summary":"Desk: list checkout sessions (filter by state)","operationId":"checkouts_api_checkouts_get","parameters":[{"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/checkout/sessions/{token}":{"get":{"tags":["checkout"],"summary":"Token-scoped: read a session (customer page / storefront polling)","operationId":"checkout_get_api_checkout_sessions__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/sessions/{token}/verify":{"post":{"tags":["checkout"],"summary":"Token-scoped: check the member's cover and price the order","operationId":"checkout_verify_api_checkout_sessions__token__verify_post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutVerifyIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/sessions/{token}/otp":{"post":{"tags":["checkout"],"summary":"Token-scoped: send the one-time code","operationId":"checkout_otp_api_checkout_sessions__token__otp_post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutOtpIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/sessions/{token}/confirm":{"post":{"tags":["checkout"],"summary":"Token-scoped: authorise + submit the claim","operationId":"checkout_confirm_api_checkout_sessions__token__confirm_post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutConfirmIn","default":{"otp":"","contact_id":""}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/sessions/{token}/manual":{"post":{"tags":["checkout"],"summary":"Token-scoped: hand the order to the pharmacy team","operationId":"checkout_manual_api_checkout_sessions__token__manual_post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/sessions/{token}/cancel":{"post":{"tags":["checkout"],"summary":"Token-scoped or storefront: cancel the session","operationId":"checkout_cancel_api_checkout_sessions__token__cancel_post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/users":{"get":{"tags":["admin"],"summary":"List dashboard users","operationId":"users_api_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["admin"],"summary":"Create or update a user (empty password keeps the old one)","operationId":"upsert_user_api_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/users/{username}":{"delete":{"tags":["admin"],"summary":"Delete a user","operationId":"delete_user_api_users__username__delete","parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string","title":"Username"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webhooks/deliveries":{"get":{"tags":["admin"],"summary":"Recent webhook deliveries","operationId":"deliveries_api_webhooks_deliveries_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webhooks/deliveries/{did}/redeliver":{"post":{"tags":["admin"],"summary":"Re-send a webhook","operationId":"redeliver_api_webhooks_deliveries__did__redeliver_post","parameters":[{"name":"did","in":"path","required":true,"schema":{"type":"integer","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webhooks/test":{"post":{"tags":["admin"],"summary":"Send a ping event to the configured (or given) URL","operationId":"webhook_test_api_webhooks_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookTestIn","default":{"url":""}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/events":{"get":{"tags":["admin"],"summary":"Activity log (every provider call, redacted)","operationId":"events_api_events_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Since"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AdjudicateIn":{"properties":{"stage":{"type":"string","title":"Stage","description":"acknowledged | approved | queried | rejected"},"approved_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Approved Amount"},"note":{"type":"string","title":"Note","default":""}},"type":"object","required":["stage"],"title":"AdjudicateIn"},"AuthIn":{"properties":{"payer_code":{"type":"string","title":"Payer Code"},"eligibility":{"$ref":"#/components/schemas/EligibilityIn"},"otp":{"type":"string","title":"Otp","default":""},"contact_id":{"type":"string","title":"Contact Id","default":""},"session_id":{"type":"string","title":"Session Id","default":""},"order_number":{"type":"string","title":"Order Number","default":""},"patient_number":{"type":"string","title":"Patient Number","default":""}},"type":"object","required":["payer_code","eligibility"],"title":"AuthIn"},"Body_attach_api_claims__claim_id__attach_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"kind":{"type":"string","title":"Kind","default":"PRESCRIPTION"},"description":{"type":"string","title":"Description","default":""},"to_invoice":{"type":"boolean","title":"To Invoice","default":false}},"type":"object","required":["file"],"title":"Body_attach_api_claims__claim_id__attach_post"},"CheckoutConfirmIn":{"properties":{"otp":{"type":"string","title":"Otp","default":""},"contact_id":{"type":"string","title":"Contact Id","default":""}},"type":"object","title":"CheckoutConfirmIn"},"CheckoutIn":{"properties":{"order_number":{"type":"string","title":"Order Number"},"items":{"items":{"$ref":"#/components/schemas/CheckoutItemIn"},"type":"array","title":"Items"},"customer":{"additionalProperties":true,"type":"object","title":"Customer","default":{}},"diagnoses":{"items":{"$ref":"#/components/schemas/DiagIn"},"type":"array","title":"Diagnoses","default":[]},"return_url":{"type":"string","title":"Return Url","default":""},"webhook_url":{"type":"string","title":"Webhook Url","default":""},"notes":{"type":"string","title":"Notes","default":""},"prescriber":{"type":"string","title":"Prescriber","default":""},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","default":{}}},"type":"object","required":["order_number","items"],"title":"CheckoutIn"},"CheckoutItemIn":{"properties":{"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"unit_price":{"type":"number","title":"Unit Price"},"quantity":{"type":"number","title":"Quantity","default":1},"discount_pct":{"type":"number","title":"Discount Pct","default":0}},"type":"object","required":["code","name","unit_price"],"title":"CheckoutItemIn"},"CheckoutOtpIn":{"properties":{"contact_id":{"type":"string","title":"Contact Id"}},"type":"object","required":["contact_id"],"title":"CheckoutOtpIn"},"CheckoutVerifyIn":{"properties":{"payer_code":{"type":"string","title":"Payer Code"},"member_number":{"type":"string","title":"Member Number"}},"type":"object","required":["payer_code","member_number"],"title":"CheckoutVerifyIn"},"ClaimIn":{"properties":{"order_number":{"type":"string","title":"Order Number"},"payer_code":{"type":"string","title":"Payer Code"},"member_number":{"type":"string","title":"Member Number"},"patient_number":{"type":"string","title":"Patient Number"},"patient_name":{"type":"string","title":"Patient Name"},"lines":{"items":{"$ref":"#/components/schemas/LineIn"},"type":"array","title":"Lines"},"diagnoses":{"items":{"$ref":"#/components/schemas/DiagIn"},"type":"array","title":"Diagnoses","default":[]},"visit":{"anyOf":[{"$ref":"#/components/schemas/VisitIn"},{"type":"null"}]},"category":{"type":"string","title":"Category","default":"pharmacy"},"service_type":{"type":"string","title":"Service Type","default":"OUTPATIENT"},"self_pay":{"type":"number","title":"Self Pay","default":0},"nhif":{"type":"number","title":"Nhif","default":0},"nhif_meta":{"additionalProperties":true,"type":"object","title":"Nhif Meta","default":{}},"doctor_name":{"type":"string","title":"Doctor Name","default":""},"notes":{"type":"string","title":"Notes","default":""},"reserve":{"type":"boolean","title":"Reserve","default":true},"checkout_token":{"type":"string","title":"Checkout Token","default":""}},"type":"object","required":["order_number","payer_code","member_number","patient_number","patient_name","lines"],"title":"ClaimIn"},"CreditIn":{"properties":{"lines":{"anyOf":[{"items":{"$ref":"#/components/schemas/LineIn"},"type":"array"},{"type":"null"}],"title":"Lines"}},"type":"object","title":"CreditIn"},"DiagIn":{"properties":{"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name","default":""},"primary":{"type":"boolean","title":"Primary","default":false}},"type":"object","required":["code"],"title":"DiagIn"},"EligIn":{"properties":{"member_number":{"type":"string","title":"Member Number"},"payer_code":{"type":"string","title":"Payer Code"}},"type":"object","required":["member_number","payer_code"],"title":"EligIn"},"EligibilityIn":{"properties":{"eligible":{"type":"boolean","title":"Eligible","default":true},"member":{"anyOf":[{"$ref":"#/components/schemas/MemberIn"},{"type":"null"}]},"reason":{"type":"string","title":"Reason","default":""},"raw":{"additionalProperties":true,"type":"object","title":"Raw","default":{}}},"type":"object","title":"EligibilityIn"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LineIn":{"properties":{"item_code":{"type":"string","title":"Item Code"},"item_name":{"type":"string","title":"Item Name"},"unit_price":{"type":"number","title":"Unit Price"},"quantity":{"type":"number","title":"Quantity","default":1},"discount_pct":{"type":"number","title":"Discount Pct","default":0},"charge_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Charge Date"}},"type":"object","required":["item_code","item_name","unit_price"],"title":"LineIn"},"LoginIn":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["username","password"],"title":"LoginIn"},"MemberIn":{"properties":{"id":{"type":"string","title":"Id","default":""},"names":{"type":"string","title":"Names","default":""},"member_number":{"type":"string","title":"Member Number"},"payer_code":{"type":"string","title":"Payer Code"},"patient_number":{"type":"string","title":"Patient Number","default":""},"contacts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Contacts","default":[]},"cover":{"additionalProperties":true,"type":"object","title":"Cover","default":{}},"benefits":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Benefits","default":[]}},"type":"object","required":["member_number","payer_code"],"title":"MemberIn"},"OtpIn":{"properties":{"payer_code":{"type":"string","title":"Payer Code"},"contact_id":{"type":"string","title":"Contact Id"}},"type":"object","required":["payer_code","contact_id"],"title":"OtpIn"},"PayerIn":{"properties":{"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"gateway":{"type":"string","title":"Gateway"},"scheme_code":{"type":"string","title":"Scheme Code","default":""},"scheme_name":{"type":"string","title":"Scheme Name","default":""},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["code","name","gateway"],"title":"PayerIn"},"PaymentIn":{"properties":{"amount":{"type":"number","title":"Amount"},"reference":{"type":"string","title":"Reference","default":""},"received_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Received At"},"note":{"type":"string","title":"Note","default":""}},"type":"object","required":["amount"],"title":"PaymentIn"},"QuoteIn":{"properties":{"payer_code":{"type":"string","title":"Payer Code"},"lines":{"items":{"$ref":"#/components/schemas/LineIn"},"type":"array","title":"Lines"},"self_pay":{"type":"number","title":"Self Pay","default":0},"nhif":{"type":"number","title":"Nhif","default":0},"category":{"type":"string","title":"Category","default":"pharmacy"}},"type":"object","required":["payer_code","lines"],"title":"QuoteIn"},"RuleIn":{"properties":{"payer_code":{"type":"string","title":"Payer Code","default":"*"},"category":{"type":"string","title":"Category","default":"pharmacy"},"insured_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insured Type"},"insured_value":{"type":"number","title":"Insured Value","default":0},"discount_pct":{"type":"number","title":"Discount Pct","default":0}},"type":"object","title":"RuleIn"},"UserIn":{"properties":{"username":{"type":"string","title":"Username"},"name":{"type":"string","title":"Name","default":""},"password":{"type":"string","title":"Password","default":""},"role":{"type":"string","title":"Role","default":"staff"},"payer_codes":{"items":{"type":"string"},"type":"array","title":"Payer Codes","default":[]},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["username"],"title":"UserIn"},"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"},"VisitIn":{"properties":{"reference":{"type":"string","title":"Reference"},"gateway":{"type":"string","title":"Gateway","default":""},"member_number":{"type":"string","title":"Member Number","default":""},"payer_code":{"type":"string","title":"Payer Code","default":""},"patient_number":{"type":"string","title":"Patient Number","default":""},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"raw":{"additionalProperties":true,"type":"object","title":"Raw","default":{}}},"type":"object","required":["reference"],"title":"VisitIn"},"WebhookTestIn":{"properties":{"url":{"type":"string","title":"Url","default":""}},"type":"object","title":"WebhookTestIn"}}},"tags":[{"name":"auth","description":"Sign in to the dashboard; who am I."},{"name":"checkout","description":"“Pay with insurance” sessions for the storefront: create, verify member, OTP, confirm, manual, cancel. Token-scoped steps need no API key."},{"name":"claims","description":"Claims desk: eligibility, authorisation, quote, submit, ledger, attachments, credit notes, retry."},{"name":"lifecycle","description":"Adjudication sync, manual adjudication (insurer portal), payments, reconciliation, export."},{"name":"reference","description":"Insurers, cover rules, catalogue, ICD-10, status."},{"name":"admin","description":"Users, webhooks, activity log."}]}