{"openapi":"3.1.0","info":{"title":"Product showcase API","description":"A demonstration. The data is fictional and not accurate. GET only. No ranking.","version":"1.0.0"},"servers":[{"url":"https://sandbox.itgives.link"}],"paths":{"/api/v1/products":{"get":{"summary":"List all products","operationId":"api_products_api_v1_products_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductListResponse"},"example":{"as_of":"2026-11-04","data":[{"as_of":"2026-11-04","facts":23,"fictional":true,"id":"demo-accident","name":{"en":"Personal Accident Cover (Demo)","vi":"Bảo hiểm Tai nạn Cá nhân (Demo)"},"need":"accident","slug":"accident","summary":{"en":"Death and disability from an accident, with optional daily allowance and medical costs.","vi":"Tử vong và thương tật do tai nạn, kèm trợ cấp ngày và chi phí y tế tùy chọn."}},{"as_of":"2026-11-04","facts":29,"fictional":true,"id":"demo-comprehensive","name":{"en":"Comprehensive Health Cover (Demo)","vi":"Bảo hiểm Sức khỏe Toàn diện (Demo)"},"need":"comprehensive","slug":"comprehensive","summary":{"en":"Hospital stays on every plan. Outpatient on plans C3, C4 and C5. Dental and maternity on plans C4 and C5. A flat price per plan.","vi":"Nằm viện ở mọi chương trình. Ngoại trú ở các chương trình C3, C4 và C5. Nha khoa và thai sản ở các chương trình C4 và C5. Phí cố định theo chương trình."}},{"as_of":"2026-11-04","facts":24,"fictional":true,"id":"demo-hospital","name":{"en":"Hospital Cover (Demo)","vi":"Bảo hiểm Nằm viện (Demo)"},"need":"hospital","slug":"hospital","summary":{"en":"Hospital stays, surgery and serious illness lump sum. Needs a state health insurance card.","vi":"Nằm viện, phẫu thuật và tiền bệnh hiểm nghèo. Cần thẻ bảo hiểm y tế nhà nước."}}],"data_status":"demonstration","disclaimer":{"en":"DEMONSTRATION ONLY. This site shows what technology can do. The data here is NOT current. It may be wrong or out of date. TCGI does not promise it is accurate. Do not use it to buy, claim or decide anything. For current product information, contact TCGI. Products shown are fictional.","vi":"CHỈ ĐỂ MINH HỌA. Trang này cho thấy công nghệ có thể làm được gì. Dữ liệu ở đây KHÔNG phải dữ liệu hiện hành. Dữ liệu có thể sai hoặc đã cũ. TCGI không cam kết dữ liệu chính xác. Không dùng để mua, yêu cầu bồi thường hay ra quyết định. Để biết thông tin sản phẩm hiện hành, vui lòng liên hệ TCGI. Các sản phẩm hiển thị là hư cấu."},"short_label":{"en":"Demonstration data. Not current. Not accurate.","vi":"Dữ liệu minh họa. Không hiện hành. Không chính xác."},"expires_at":"2026-11-13T02:07:00+07:00"}}}},"400":{"description":"A query param is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"410":{"description":"The demonstration has ended.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/products/{slug}":{"get":{"summary":"Get one product","operationId":"api_product_api_v1_products__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"},"example":"accident"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductResponse"},"example":{"as_of":"2026-11-04","data":{"as_of":"2026-11-04","coverage_area":["Vietnam"],"facets":{"age":{"fact":"demo-accident.age_entry","value":{"max_years":65,"min_days":15}},"card_required":{"fact":"demo-accident.card_required","value":false},"channel":{"fact":"demo-accident.where_sold","value":"demo_agent"},"covers":[{"derived":"rule","fact":"demo-accident.benefit_death_disability","limit_vnd":null,"need":"accident","not_paid":null,"optional":null,"paid":null,"plans":null,"wait_days":0,"wait_fact":"demo-accident.wait_accident","text":{"en":"Covers accident. No waiting period.","vi":"Bảo hiểm tai nạn. Không có thời gian chờ."},"fact_text":{"en":"Accidental death pays 100% of the sum insured. Permanent disability pays a percentage of the sum insured from an injury table.","vi":"Tử vong do tai nạn được chi trả 100% số tiền bảo hiểm. Thương tật vĩnh viễn được chi trả theo tỷ lệ phần trăm của số tiền bảo hiểm trong bảng thương tật."}},{"derived":"rule","fact":"demo-accident.benefit_allowance","limit_vnd":null,"need":"hospital","not_paid":["hospital_illness"],"optional":["hospital_accident"],"paid":["hospital_accident"],"plans":null,"wait_days":null,"wait_fact":null,"text":{"en":"Pays for part of hospital stay. Paid: a hospital stay after an accident (as an option you add). Not paid: a hospital stay for an illness.","vi":"Chi trả một phần cho nằm viện. Được chi trả: nằm viện do tai nạn (là quyền lợi tùy chọn bạn thêm). Không chi trả: nằm viện do bệnh."},"fact_text":{"en":"Optional daily allowance while in hospital after an accident, at VND 100,000, 150,000 or 200,000 a day, up to 60 days.","vi":"Trợ cấp ngày tùy chọn khi nằm viện sau tai nạn, 100.000, 150.000 hoặc 200.000 đồng mỗi ngày, tối đa 60 ngày."}},{"derived":"rule","fact":"demo-accident.benefit_medical","limit_vnd":null,"need":"outpatient","not_paid":["outpatient_illness"],"optional":["outpatient_accident"],"paid":["outpatient_accident"],"plans":null,"wait_days":null,"wait_fact":null,"text":{"en":"Pays for part of outpatient. Paid: outpatient treatment after an accident (as an option you add). Not paid: outpatient visits for an illness.","vi":"Chi trả một phần cho ngoại trú. Được chi trả: điều trị ngoại trú sau tai nạn (là quyền lợi tùy chọn bạn thêm). Không chi trả: khám ngoại trú do bệnh."},"fact_text":{"en":"Optional accident medical costs, inpatient and outpatient, up to VND 80 million.","vi":"Chi phí y tế do tai nạn tùy chọn, nội trú và ngoại trú, tối đa 80 triệu đồng."}}],"need":{"fact":"demo-accident.overview","value":["accident"]},"need_part":{"value":{"hospital":{"facts":["demo-accident.benefit_allowance","demo-accident.benefit_medical"],"not_paid":["hospital_illness"],"optional":["hospital_accident"],"paid":["hospital_accident"]},"outpatient":{"facts":["demo-accident.benefit_medical"],"not_paid":["outpatient_illness"],"optional":["outpatient_accident"],"paid":["outpatient_accident"]}}},"not_accepted":{"fact":"demo-accident.not_accepted","value":{"disability_pct_min":50,"under_treatment":true}},"not_for":[{"case":{"age":66},"code":"age","derived":"rule","fact":"demo-accident.age_entry","over_years":65,"result":"no","text":{"en":"Not for you if you are older than 65.","vi":"Không dành cho bạn nếu bạn trên 65 tuổi."},"fact_text":{"en":"Entry from 15 days old up to age 65.","vi":"Tham gia từ 15 ngày tuổi đến 65 tuổi."}},{"case":{"age_days":14},"code":"age","derived":"rule","fact":"demo-accident.age_entry","result":"no","under_days":15,"text":{"en":"Not for you if you are younger than 15 days.","vi":"Không dành cho bạn nếu bạn dưới 15 ngày tuổi."},"fact_text":{"en":"Entry from 15 days old up to age 65.","vi":"Tham gia từ 15 ngày tuổi đến 65 tuổi."}},{"case":{"need":["serious_illness"]},"code":"need","derived":"rule","fact":"demo-accident.overview","needs":["serious_illness","dental","maternity"],"result":"no","text":{"en":"Not for you if you need cover for serious illness, dental or maternity.","vi":"Không dành cho bạn nếu bạn cần bảo hiểm cho bệnh hiểm nghèo, nha khoa hoặc thai sản."},"fact_text":{"en":"Pays if an accident causes death or permanent disability. You can add a daily allowance while in hospital and accident medical costs. The price adds up one amount per benefit you pick: a rate times the amount that benefit is charged on.","vi":"Chi trả khi tai nạn gây tử vong hoặc thương tật vĩnh viễn. Bạn có thể thêm trợ cấp ngày khi nằm viện và chi phí y tế do tai nạn. Phí là tổng các khoản của từng quyền lợi bạn chọn: tỷ lệ nhân với số tiền mà quyền lợi đó được tính phí trên."}},{"case":null,"code":"not_accepted","derived":"rule","fact":"demo-accident.not_accepted","result":"no","who":{"disability_pct_min":50,"under_treatment":true},"text":{"en":"Not for you if you have a permanent disability of 50% or more or you are under treatment for an illness or injury when you apply.","vi":"Không dành cho bạn nếu bạn bị thương tật vĩnh viễn từ 50% trở lên hoặc bạn đang điều trị bệnh hoặc thương tích khi đăng ký."},"fact_text":{"en":"Not accepted: people with a permanent disability of 50% or more, or who are under treatment for an illness or injury when they apply.","vi":"Không nhận bảo hiểm: người có thương tật vĩnh viễn từ 50% trở lên, hoặc đang điều trị bệnh hay thương tích khi đăng ký."}}],"parent":{"fact":"demo-accident.child_alone","value":{"required":false,"under_years":null}},"preexisting_covered":{"fact":"demo-accident.preexisting","value":false},"sum_insured":{"fact":"demo-accident.price_basis","value":{"max_vnd":1000000000,"min_vnd":20000000}},"wait_max_days":{"fact":"demo-accident.wait_accident","value":0}},"facts":[{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.overview","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:overview]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"It pays if an accident causes death or a permanent disability. You can add a daily amount for days in hospital, and cover for medical bills after an accident. The premium is the total of one amount for each benefit you pick.","generated":true,"vi":"Sản phẩm chi trả khi tai nạn gây tử vong hoặc thương tật vĩnh viễn. Bạn có thể thêm khoản trợ cấp cho mỗi ngày nằm viện và bảo hiểm chi phí y tế sau tai nạn. Phí bảo hiểm là tổng các khoản của từng quyền lợi bạn chọn."},"standard":{"en":"Pays if an accident causes death or permanent disability. You can add a daily allowance while in hospital and accident medical costs. The price adds up one amount per benefit you pick: a rate times the amount that benefit is charged on.","vi":"Chi trả khi tai nạn gây tử vong hoặc thương tật vĩnh viễn. Bạn có thể thêm trợ cấp ngày khi nằm viện và chi phí y tế do tai nạn. Phí là tổng các khoản của từng quyền lợi bạn chọn: tỷ lệ nhân với số tiền mà quyền lợi đó được tính phí trên."}},"type":"overview","valid_from":"2026-01-01","value":{"needs":["accident"]}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.age_entry","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:age_entry]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"A person can start this cover from 15 days old up to age 65. Someone older than 65 cannot start it.","generated":true,"vi":"Có thể bắt đầu tham gia từ 15 ngày tuổi đến 65 tuổi. Người trên 65 tuổi không thể bắt đầu tham gia."},"standard":{"en":"Entry from 15 days old up to age 65.","vi":"Tham gia từ 15 ngày tuổi đến 65 tuổi."}},"type":"eligibility","valid_from":"2026-01-01","value":{"age_max_years":65,"age_min_days":15}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.card_required","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:card_required]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"You do not need a BHYT card to buy this product.","generated":true,"vi":"Bạn không cần thẻ BHYT để mua sản phẩm này."},"standard":{"en":"No state health insurance card is needed.","vi":"Không yêu cầu thẻ bảo hiểm y tế nhà nước."}},"type":"eligibility","valid_from":"2026-01-01","value":{"card_required":false}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.child_alone","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:child_alone]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"A child can be covered alone. A parent does not have to join.","generated":true,"vi":"Trẻ em có thể được bảo hiểm một mình. Cha mẹ không cần cùng tham gia."},"standard":{"en":"A child can be insured on their own. No parent has to join.","vi":"Trẻ em có thể được bảo hiểm riêng. Không bắt buộc cha mẹ cùng tham gia."}},"type":"eligibility","valid_from":"2026-01-01","value":{"parent_required":false}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.not_accepted","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:not_accepted]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"You cannot buy this product if you have a permanent disability of 50% or more. You also cannot buy it while you are being treated for an illness or injury.","generated":true,"vi":"Bạn không mua được sản phẩm này nếu có thương tật vĩnh viễn từ 50% trở lên. Bạn cũng không mua được khi đang điều trị bệnh hoặc thương tích."},"standard":{"en":"Not accepted: people with a permanent disability of 50% or more, or who are under treatment for an illness or injury when they apply.","vi":"Không nhận bảo hiểm: người có thương tật vĩnh viễn từ 50% trở lên, hoặc đang điều trị bệnh hay thương tích khi đăng ký."}},"type":"eligibility","valid_from":"2026-01-01","value":{"disability_pct_min":50,"under_treatment":true}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.wait_accident","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:wait_accident]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"There is no waiting period. Cover starts when the whole premium has been paid.","generated":true,"vi":"Không có thời gian chờ. Bảo hiểm bắt đầu khi đã đóng đủ phí bảo hiểm."},"standard":{"en":"No waiting period. Cover starts once the premium is paid in full.","vi":"Không có thời gian chờ. Bảo hiểm có hiệu lực khi đã đóng đủ phí."}},"type":"waiting_period","valid_from":"2026-01-01","value":{"cover":"accident","days":0}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.benefit_death_disability","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:benefit_death_disability]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"If an accident causes death, it pays 100% of the sum insured. If it causes a permanent disability, it pays part of the sum insured. A table of injuries sets how much.","generated":true,"vi":"Nếu tai nạn gây tử vong, sản phẩm trả 100% số tiền bảo hiểm. Nếu gây thương tật vĩnh viễn, sản phẩm trả một phần số tiền bảo hiểm. Bảng thương tật quy định mức trả."},"standard":{"en":"Accidental death pays 100% of the sum insured. Permanent disability pays a percentage of the sum insured from an injury table.","vi":"Tử vong do tai nạn được chi trả 100% số tiền bảo hiểm. Thương tật vĩnh viễn được chi trả theo tỷ lệ phần trăm của số tiền bảo hiểm trong bảng thương tật."}},"type":"benefit","valid_from":"2026-01-01","value":{"death_pct":100,"need":"accident","pays":["accident_death_disability"]}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.benefit_allowance","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:benefit_allowance]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"You can add a daily allowance. It pays VND 100,000, 150,000 or 200,000 for each day in hospital after an accident, for up to 60 days.","generated":true,"vi":"Bạn có thể thêm trợ cấp ngày. Sản phẩm trả 100.000, 150.000 hoặc 200.000 đồng cho mỗi ngày nằm viện sau tai nạn, tối đa 60 ngày."},"standard":{"en":"Optional daily allowance while in hospital after an accident, at VND 100,000, 150,000 or 200,000 a day, up to 60 days.","vi":"Trợ cấp ngày tùy chọn khi nằm viện sau tai nạn, 100.000, 150.000 hoặc 200.000 đồng mỗi ngày, tối đa 60 ngày."}},"type":"benefit","valid_from":"2026-01-01","value":{"daily_vnd_options":[100000,150000,200000],"max_days":60,"optional":true,"pays":["hospital_accident"]}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.benefit_medical","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:benefit_medical]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"You can add cover for medical bills after an accident, with or without a hospital stay. You pick the limit, up to VND 80 million.","generated":true,"vi":"Bạn có thể thêm bảo hiểm chi phí y tế sau tai nạn, dù có nằm viện hay không. Bạn chọn hạn mức, tối đa 80 triệu đồng."},"standard":{"en":"Optional accident medical costs, inpatient and outpatient, up to VND 80 million.","vi":"Chi phí y tế do tai nạn tùy chọn, nội trú và ngoại trú, tối đa 80 triệu đồng."}},"type":"benefit","valid_from":"2026-01-01","value":{"limit_max_vnd":80000000,"optional":true,"pays":["accident_treatment","hospital_accident","outpatient_accident"]}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.cover_period","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:cover_period]"},"review_label":{"en":"Gap: not in the demo data","vi":"Thiếu: không có trong dữ liệu demo"},"review_status":"gap","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"One policy lasts up to 12 months. The demo rules do not say whether you can renew it.","generated":true,"vi":"Một hợp đồng bảo hiểm kéo dài tối đa 12 tháng. Quy tắc demo không nêu có được tái tục hay không."},"standard":{"en":"One policy covers up to 12 months. The rules say nothing about renewal.","vi":"Thời hạn bảo hiểm tối đa 12 tháng. Quy tắc không nêu về việc tái tục."}},"type":"servicing","valid_from":"2026-01-01","value":{"months_max":12}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.preexisting","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:preexisting]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"It pays only for an injury that comes straight from the accident. An injury or illness you had before is a pre-existing condition and is not covered.","generated":true,"vi":"Sản phẩm chỉ trả cho thương tích do chính tai nạn gây ra. Thương tích hoặc bệnh đã có từ trước là bệnh có sẵn và không được bảo hiểm."},"standard":{"en":"Only an injury that is the first result of the accident counts. An earlier injury or illness does not.","vi":"Chỉ thương tích là hậu quả đầu tiên của tai nạn mới được tính. Thương tích hoặc bệnh có từ trước thì không."}},"type":"preexisting","valid_from":"2026-01-01","value":{"covered":false}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.excl_fighting","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:excl_fighting]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"Exclusion: an injury from a fight is not paid, unless you were only defending yourself.","generated":true,"vi":"Loại trừ bảo hiểm: thương tích do đánh nhau không được chi trả, trừ khi bạn chỉ tự vệ."},"standard":{"en":"Not covered: fighting, unless only in self-defence.","vi":"Không chi trả: đánh nhau, trừ trường hợp chỉ tự vệ."}},"type":"exclusion","valid_from":"2026-01-01","value":{"excluded":"fighting"}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.excl_sport","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:excl_sport]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"Exclusion: an accident in professional sport or in any kind of race is not paid.","generated":true,"vi":"Loại trừ bảo hiểm: tai nạn khi chơi thể thao chuyên nghiệp hoặc khi tham gia bất kỳ cuộc đua nào không được chi trả."},"standard":{"en":"Not covered: professional sport and any racing.","vi":"Không chi trả: thể thao chuyên nghiệp và mọi hình thức đua."}},"type":"exclusion","valid_from":"2026-01-01","value":{"excluded":"pro_sport_racing"}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.excl_alcohol","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:excl_alcohol]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"Exclusion: an accident caused by alcohol or drugs is not paid. That includes driving with more alcohol than the law allows.","generated":true,"vi":"Loại trừ bảo hiểm: tai nạn do rượu bia hoặc ma túy không được chi trả, kể cả khi lái xe vượt nồng độ cồn cho phép."},"standard":{"en":"Not covered: accidents caused by alcohol or drugs, including driving over the legal alcohol limit.","vi":"Không chi trả: tai nạn do rượu bia hoặc ma túy, kể cả lái xe vượt nồng độ cồn cho phép."}},"type":"exclusion","valid_from":"2026-01-01","value":{"excluded":"alcohol_drugs"}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.excl_war","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:excl_war]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"Exclusion: harm caused by war, terrorism or riots is not paid.","generated":true,"vi":"Loại trừ bảo hiểm: tổn hại do chiến tranh, khủng bố hoặc bạo loạn không được chi trả."},"standard":{"en":"Not covered: war, terrorism and riots.","vi":"Không chi trả: chiến tranh, khủng bố và bạo loạn."}},"type":"exclusion","valid_from":"2026-01-01","value":{"excluded":"war_terrorism"}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.price_basis","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:price_basis]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"The premium is worked out benefit by benefit, then added up. For death and disability, the rate is taken on the sum insured. For the daily allowance, it is taken on the daily amount x 60 days. For medical costs, it is taken on the medical limit you pick. Your age does not change the premium.","generated":true,"vi":"Phí bảo hiểm được tính cho từng quyền lợi rồi cộng lại. Với tử vong và thương tật, tỷ lệ được tính trên số tiền bảo hiểm. Với trợ cấp ngày, tỷ lệ được tính trên số tiền mỗi ngày x 60 ngày. Với chi phí y tế, tỷ lệ được tính trên hạn mức y tế bạn chọn. Tuổi không làm thay đổi phí bảo hiểm."},"standard":{"en":"Premium per person per year is the total of one amount per benefit chosen: the rate times the amount that benefit is charged on. Death and disability is charged on the sum insured. Daily allowance is charged on the daily amount x 60 days. Medical cost is charged on the medical limit you pick. Each amount is rounded to the nearest VND 1,000. Age does not change the price. Death and disability is always included.","vi":"Phí mỗi người mỗi năm là tổng các khoản của từng quyền lợi đã chọn: tỷ lệ nhân với số tiền mà quyền lợi đó được tính phí trên. Tử vong và thương tật được tính trên số tiền bảo hiểm. Trợ cấp ngày được tính trên số tiền mỗi ngày x 60 ngày. Chi phí y tế được tính trên hạn mức y tế bạn chọn. Mỗi khoản được làm tròn đến 1.000 đồng gần nhất. Tuổi không làm thay đổi phí. Tử vong và thương tật luôn được bao gồm."}},"type":"price_rule","valid_from":"2026-01-01","value":{"allowance_options":[{"base_vnd":6000000,"cap_days":60,"daily_vnd":100000,"rate_pct":0.65},{"base_vnd":9000000,"cap_days":60,"daily_vnd":150000,"rate_pct":0.52},{"base_vnd":12000000,"cap_days":60,"daily_vnd":200000,"rate_pct":0.46}],"base":{"allowance":"daily_vnd x cap_days","death_disability":"sum_insured","medical":"medical_vnd"},"main_rate_pct":0.11,"medical_bands":[{"max_vnd_exclusive":30000000,"min_vnd":0,"rate_pct":0.8},{"max_vnd_exclusive":50000000,"min_vnd":30000000,"rate_pct":0.66},{"max_vnd_exclusive":80000001,"min_vnd":50000000,"rate_pct":0.58}],"shape":"rate_times_amount","sum_insured_max_vnd":1000000000,"sum_insured_min_vnd":20000000}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.where_sold","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:where_sold]"},"review_label":{"en":"Checked against the demo rules","vi":"Đã đối chiếu với quy tắc demo"},"review_status":"reviewed","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"You buy it through a demo agent. The agent is made up for this demo.","generated":true,"vi":"Bạn mua qua đại lý demo. Đại lý này là hư cấu, chỉ dùng cho bản demo."},"standard":{"en":"Sold through demo agents (fictional).","vi":"Bán qua đại lý demo (hư cấu)."}},"type":"channel","valid_from":"2026-01-01","value":{"channel":"demo_agent"}},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.how_to_buy","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:how_to_buy]"},"review_label":{"en":"Gap: not in the demo data","vi":"Thiếu: không có trong dữ liệu demo"},"review_status":"gap","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"This demo does not say how to buy this product.","generated":true,"vi":"Bản demo này không nêu cách mua sản phẩm."},"standard":{"en":"How to buy: not published in this demo.","vi":"Cách mua: không được công bố trong bản demo này."}},"type":"servicing","valid_from":"2026-01-01","value":null},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.how_to_claim","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:how_to_claim]"},"review_label":{"en":"Gap: not in the demo data","vi":"Thiếu: không có trong dữ liệu demo"},"review_status":"gap","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"This demo does not say how to make a claim.","generated":true,"vi":"Bản demo này không nêu cách gửi yêu cầu bồi thường."},"standard":{"en":"How to claim: not published in this demo.","vi":"Cách yêu cầu bồi thường: không được công bố trong bản demo này."}},"type":"servicing","valid_from":"2026-01-01","value":null},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.renewal","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:renewal]"},"review_label":{"en":"Gap: not in the demo data","vi":"Thiếu: không có trong dữ liệu demo"},"review_status":"gap","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"This demo does not say whether you can renew the cover, or how.","generated":true,"vi":"Bản demo này không nêu có được tái tục bảo hiểm hay không, và tái tục thế nào."},"standard":{"en":"Renewal: not published in this demo.","vi":"Tái tục: không được công bố trong bản demo này."}},"type":"servicing","valid_from":"2026-01-01","value":null},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.cancellation","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:cancellation]"},"review_label":{"en":"Gap: not in the demo data","vi":"Thiếu: không có trong dữ liệu demo"},"review_status":"gap","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"This demo does not say how to cancel, or what is paid back if you do.","generated":true,"vi":"Bản demo này không nêu cách hủy hợp đồng, hay khoản nào được hoàn lại khi hủy."},"standard":{"en":"Cancellation: not published in this demo.","vi":"Hủy hợp đồng: không được công bố trong bản demo này."}},"type":"servicing","valid_from":"2026-01-01","value":null},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.payment","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:payment]"},"review_label":{"en":"Gap: not in the demo data","vi":"Thiếu: không có trong dữ liệu demo"},"review_status":"gap","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"This demo does not say how the premium can be paid.","generated":true,"vi":"Bản demo này không nêu có thể đóng phí bảo hiểm bằng cách nào."},"standard":{"en":"Payment options: not published in this demo.","vi":"Cách thanh toán: không được công bố trong bản demo này."}},"type":"servicing","valid_from":"2026-01-01","value":null},{"as_of":"2026-11-04","fictional":true,"id":"demo-accident.contact","product":"demo-accident","provenance":{"fhir":"InsurancePlan/demo-accident","field":"extension[fact:contact]"},"review_label":{"en":"Gap: not in the demo data","vi":"Thiếu: không có trong dữ liệu demo"},"review_status":"gap","source":{"label":"Demo rules","public":true},"sources_differ":null,"stale":false,"stale_after":null,"status":"sold","text":{"plain":{"approved":false,"en":"This demo gives no phone number, address or email for this product.","generated":true,"vi":"Bản demo này không có số điện thoại, địa chỉ hay email cho sản phẩm này."},"standard":{"en":"Contact details: not published in this demo.","vi":"Thông tin liên hệ: không được công bố trong bản demo này."}},"type":"servicing","valid_from":"2026-01-01","value":null}],"faq":[{"answer":{"en":"Entry from 15 days old up to age 65.","vi":"Tham gia từ 15 ngày tuổi đến 65 tuổi."},"facts":["demo-accident.age_entry"],"id":"who","question":{"en":"Who can buy this?","vi":"Ai có thể mua sản phẩm này?"}},{"answer":{"en":"Accidental death pays 100% of the sum insured. Permanent disability pays a percentage of the sum insured from an injury table. Optional daily allowance while in hospital after an accident, at VND 100,000, 150,000 or 200,000 a day, up to 60 days. Optional accident medical costs, inpatient and outpatient, up to VND 80 million.","vi":"Tử vong do tai nạn được chi trả 100% số tiền bảo hiểm. Thương tật vĩnh viễn được chi trả theo tỷ lệ phần trăm của số tiền bảo hiểm trong bảng thương tật. Trợ cấp ngày tùy chọn khi nằm viện sau tai nạn, 100.000, 150.000 hoặc 200.000 đồng mỗi ngày, tối đa 60 ngày. Chi phí y tế do tai nạn tùy chọn, nội trú và ngoại trú, tối đa 80 triệu đồng."},"facts":["demo-accident.benefit_death_disability","demo-accident.benefit_allowance","demo-accident.benefit_medical"],"id":"covers","question":{"en":"What does it cover?","vi":"Sản phẩm bảo hiểm những gì?"}},{"answer":{"en":"Only an injury that is the first result of the accident counts. An earlier injury or illness does not. Not covered: fighting, unless only in self-defence. Not covered: professional sport and any racing. Not covered: accidents caused by alcohol or drugs, including driving over the legal alcohol limit. Not covered: war, terrorism and riots.","vi":"Chỉ thương tích là hậu quả đầu tiên của tai nạn mới được tính. Thương tích hoặc bệnh có từ trước thì không. Không chi trả: đánh nhau, trừ trường hợp chỉ tự vệ. Không chi trả: thể thao chuyên nghiệp và mọi hình thức đua. Không chi trả: tai nạn do rượu bia hoặc ma túy, kể cả lái xe vượt nồng độ cồn cho phép. Không chi trả: chiến tranh, khủng bố và bạo loạn."},"facts":["demo-accident.preexisting","demo-accident.excl_fighting","demo-accident.excl_sport","demo-accident.excl_alcohol","demo-accident.excl_war"],"id":"not_covered","question":{"en":"What is not covered?","vi":"Những gì không được bảo hiểm?"}},{"answer":{"en":"No waiting period. Cover starts once the premium is paid in full.","vi":"Không có thời gian chờ. Bảo hiểm có hiệu lực khi đã đóng đủ phí."},"facts":["demo-accident.wait_accident"],"id":"wait","question":{"en":"How long before I am covered?","vi":"Bao lâu thì tôi được bảo hiểm?"}},{"answer":{"en":"Premium per person per year is the total of one amount per benefit chosen: the rate times the amount that benefit is charged on. Death and disability is charged on the sum insured. Daily allowance is charged on the daily amount x 60 days. Medical cost is charged on the medical limit you pick. Each amount is rounded to the nearest VND 1,000. Age does not change the price. Death and disability is always included.","vi":"Phí mỗi người mỗi năm là tổng các khoản của từng quyền lợi đã chọn: tỷ lệ nhân với số tiền mà quyền lợi đó được tính phí trên. Tử vong và thương tật được tính trên số tiền bảo hiểm. Trợ cấp ngày được tính trên số tiền mỗi ngày x 60 ngày. Chi phí y tế được tính trên hạn mức y tế bạn chọn. Mỗi khoản được làm tròn đến 1.000 đồng gần nhất. Tuổi không làm thay đổi phí. Tử vong và thương tật luôn được bao gồm."},"facts":["demo-accident.price_basis"],"id":"cost","question":{"en":"How much does it cost?","vi":"Chi phí là bao nhiêu?"}},{"answer":{"en":"No state health insurance card is needed. A child can be insured on their own. No parent has to join. Not accepted: people with a permanent disability of 50% or more, or who are under treatment for an illness or injury when they apply.","vi":"Không yêu cầu thẻ bảo hiểm y tế nhà nước. Trẻ em có thể được bảo hiểm riêng. Không bắt buộc cha mẹ cùng tham gia. Không nhận bảo hiểm: người có thương tật vĩnh viễn từ 50% trở lên, hoặc đang điều trị bệnh hay thương tích khi đăng ký."},"facts":["demo-accident.card_required","demo-accident.child_alone","demo-accident.not_accepted"],"id":"before_join","question":{"en":"Do I need anything before I join?","vi":"Tôi cần chuẩn bị gì trước khi tham gia?"}}],"fictional":true,"id":"demo-accident","insurer":"TCGI (demonstration data)","name":{"en":"Personal Accident Cover (Demo)","vi":"Bảo hiểm Tai nạn Cá nhân (Demo)"},"need":"accident","plans":[{"id":"A-FLEX","name":"Accident Cover (choose your sum insured)","status":"sold","sum_insured_range_vnd":[20000000,1000000000],"sum_insured_vnd":null}],"prices":{"allowance_options":[{"base_vnd":6000000,"cap_days":60,"daily_vnd":100000,"rate_pct":0.65},{"base_vnd":9000000,"cap_days":60,"daily_vnd":150000,"rate_pct":0.52},{"base_vnd":12000000,"cap_days":60,"daily_vnd":200000,"rate_pct":0.46}],"base":{"allowance":"daily_vnd x cap_days","death_disability":"sum_insured","medical":"medical_vnd"},"currency":"VND","main_rate_pct":0.11,"medical_bands":[{"max_vnd_exclusive":30000000,"min_vnd":0,"rate_pct":0.8},{"max_vnd_exclusive":50000000,"min_vnd":30000000,"rate_pct":0.66},{"max_vnd_exclusive":80000001,"min_vnd":50000000,"rate_pct":0.58}],"per":"person per year","shape":"rate_times_amount","sum_insured_max_vnd":1000000000,"sum_insured_min_vnd":20000000},"slug":"accident","status":"sold","summary":{"en":"Death and disability from an accident, with optional daily allowance and medical costs.","vi":"Tử vong và thương tật do tai nạn, kèm trợ cấp ngày và chi phí y tế tùy chọn."},"valid_from":"2026-01-01"},"data_status":"demonstration","disclaimer":{"en":"DEMONSTRATION ONLY. This site shows what technology can do. The data here is NOT current. It may be wrong or out of date. TCGI does not promise it is accurate. Do not use it to buy, claim or decide anything. For current product information, contact TCGI. Products shown are fictional.","vi":"CHỈ ĐỂ MINH HỌA. Trang này cho thấy công nghệ có thể làm được gì. Dữ liệu ở đây KHÔNG phải dữ liệu hiện hành. Dữ liệu có thể sai hoặc đã cũ. TCGI không cam kết dữ liệu chính xác. Không dùng để mua, yêu cầu bồi thường hay ra quyết định. Để biết thông tin sản phẩm hiện hành, vui lòng liên hệ TCGI. Các sản phẩm hiển thị là hư cấu."},"short_label":{"en":"Demonstration data. Not current. Not accurate.","vi":"Dữ liệu minh họa. Không hiện hành. Không chính xác."},"expires_at":"2026-11-13T02:07:00+07:00"}}}},"400":{"description":"A query param is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"410":{"description":"The demonstration has ended.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/match/{rest}":{"get":{"summary":"Say which products fit, with the params in the path","description":"The same as /api/v1/match, for a client that cannot send a query string. card stands for has_card (yes or no). Repeat the need pair for more than one need.","operationId":"api_match_path_api_v1_match__rest__get","parameters":[{"name":"rest","in":"path","required":true,"schema":{"type":"string","description":"The params as name and value pairs, each part split by a slash that is sent as it is, not encoded: age/34/card/no/need/hospital. The names, the validation and the answer are those of /api/v1/match, which explains them.","title":"Rest"},"description":"The params as name and value pairs, each part split by a slash that is sent as it is, not encoded: age/34/card/no/need/hospital. The names, the validation and the answer are those of /api/v1/match, which explains them.","example":"age/34/card/no/need/hospital"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchResponse"},"example":{"as_of":"2026-11-04","data_status":"demonstration","disclaimer":{"en":"DEMONSTRATION ONLY. This site shows what technology can do. The data here is NOT current. It may be wrong or out of date. TCGI does not promise it is accurate. Do not use it to buy, claim or decide anything. For current product information, contact TCGI. Products shown are fictional.","vi":"CHỈ ĐỂ MINH HỌA. Trang này cho thấy công nghệ có thể làm được gì. Dữ liệu ở đây KHÔNG phải dữ liệu hiện hành. Dữ liệu có thể sai hoặc đã cũ. TCGI không cam kết dữ liệu chính xác. Không dùng để mua, yêu cầu bồi thường hay ra quyết định. Để biết thông tin sản phẩm hiện hành, vui lòng liên hệ TCGI. Các sản phẩm hiển thị là hư cấu."},"short_label":{"en":"Demonstration data. Not current. Not accurate.","vi":"Dữ liệu minh họa. Không hiện hành. Không chính xác."},"expires_at":"2026-11-13T02:07:00+07:00","data":{"groups":{"fits":["demo-comprehensive"],"partly":["demo-accident"],"no":["demo-hospital"]},"results":[{"product":"demo-accident","result":"partly","reasons":[{"code":"need_part","fact":"demo-accident.benefit_allowance","need":"hospital","paid":["hospital_accident"],"not_paid":["hospital_illness"],"optional":["hospital_accident"],"text":{"en":"It pays for part of this need (hospital stay). Paid: a hospital stay after an accident (as an option you add). Not paid: a hospital stay for an illness.","vi":"Sản phẩm chỉ chi trả một phần cho nhu cầu này (nằm viện). Được chi trả: nằm viện do tai nạn (là quyền lợi tùy chọn bạn thêm). Không chi trả: nằm viện do bệnh."},"fact_text":{"en":"Optional daily allowance while in hospital after an accident, at VND 100,000, 150,000 or 200,000 a day, up to 60 days.","vi":"Trợ cấp ngày tùy chọn khi nằm viện sau tai nạn, 100.000, 150.000 hoặc 200.000 đồng mỗi ngày, tối đa 60 ngày."}}]},{"product":"demo-comprehensive","result":"fits","reasons":[]},{"product":"demo-hospital","result":"no","reasons":[{"code":"card","fact":"demo-hospital.card_required","text":{"en":"It needs a state health insurance (BHYT) card and the answer was no.","vi":"Sản phẩm yêu cầu thẻ bảo hiểm y tế nhà nước (BHYT) và câu trả lời là không có."},"fact_text":{"en":"Everyone insured must hold a Vietnamese state health insurance (BHYT) card.","vi":"Mọi người được bảo hiểm phải có thẻ bảo hiểm y tế (BHYT) nhà nước của Việt Nam."}}]}],"notes":[],"note":null}}}}},"400":{"description":"A query param is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"410":{"description":"The demonstration has ended.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/quote/{rest}":{"get":{"summary":"Work out a price, with the params in the path","description":"The same as /api/v1/quote, for a client that cannot send a query string. sum, daily and medical stand for sum_insured, daily_vnd and medical_vnd.","operationId":"api_quote_path_api_v1_quote__rest__get","parameters":[{"name":"rest","in":"path","required":true,"schema":{"type":"string","description":"The params as name and value pairs, each part split by a slash that is sent as it is, not encoded: sum/200000000/daily/150000/medical/40000000. The names, the validation and the answer are those of /api/v1/quote, which explains them.","title":"Rest"},"description":"The params as name and value pairs, each part split by a slash that is sent as it is, not encoded: sum/200000000/daily/150000/medical/40000000. The names, the validation and the answer are those of /api/v1/quote, which explains them.","example":"sum/200000000/daily/150000/medical/40000000"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteResponse"},"example":{"as_of":"2026-11-04","data_status":"demonstration","disclaimer":{"en":"DEMONSTRATION ONLY. This site shows what technology can do. The data here is NOT current. It may be wrong or out of date. TCGI does not promise it is accurate. Do not use it to buy, claim or decide anything. For current product information, contact TCGI. Products shown are fictional.","vi":"CHỈ ĐỂ MINH HỌA. Trang này cho thấy công nghệ có thể làm được gì. Dữ liệu ở đây KHÔNG phải dữ liệu hiện hành. Dữ liệu có thể sai hoặc đã cũ. TCGI không cam kết dữ liệu chính xác. Không dùng để mua, yêu cầu bồi thường hay ra quyết định. Để biết thông tin sản phẩm hiện hành, vui lòng liên hệ TCGI. Các sản phẩm hiển thị là hư cấu."},"short_label":{"en":"Demonstration data. Not current. Not accurate.","vi":"Dữ liệu minh họa. Không hiện hành. Không chính xác."},"expires_at":"2026-11-13T02:07:00+07:00","data":{"lines":[{"benefit":"death_disability","base_vnd":200000000,"rate_pct":0.11,"amount_vnd":220000},{"benefit":"allowance","base_vnd":9000000,"rate_pct":0.52,"amount_vnd":47000},{"benefit":"medical","base_vnd":40000000,"rate_pct":0.66,"amount_vnd":264000}],"total_vnd":531000,"currency":"VND","per":"person per year"}}}}},"400":{"description":"A query param is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"410":{"description":"The demonstration has ended.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/match":{"get":{"summary":"Say which products fit the answers","description":"Start here, then read the product for its rules, plans and prices. One call is one person: age is the age of the person to be insured, so a child or each family member gets a call of their own. need can repeat: need=hospital&need=dental. A skipped answer never excludes a product. No ranking. Result values. fits: no answer rules the product out. Its reasons, when it has any, are points to check and not exclusions. partly: it can fit with a condition, such as a child who must join with a parent, or it covers only some of the needs asked for, or pays only part of one. no: a rule excludes it. The reasons say which rule. Each reason has a code, the sentence in text (en and vi) and the id of the fact it rests on. Reason codes. age: the age is outside the product's entry age range. The result is no. card: the product needs a state health insurance (BHYT) card and has_card was false. The result is no. need: the product pays nothing of any need asked for. needs lists them. The result is no. need_partly: the product pays nothing of some of the needs asked for, and needs lists those. The result is partly, unless another reason says no. need_part: the product pays for part of one need asked for. need is that need, paid lists what it pays, not_paid what it does not, and optional the paid parts that only a benefit the person adds pays. This reason alone never gives no: the result is partly, unless another reason says no. parent: the person is a child below the age at which the product lets a child join alone, so a parent must join too. The result is partly. card_unknown: the product needs a state health insurance (BHYT) card and has_card was left out. The result does not change: check for the card before choosing. copay: the person is a child at an age where the product has a co-payment, so the family pays pct percent of each claim. The result does not change. When fits and partly are both empty, note says why, and notes holds the same as codes. Note codes. family: who was family. Results are per person and no family price is worked out. age_above: no product accepts the age. limit is the highest entry age, and products are the ones at that limit. age_below: no product accepts the age. limit is the lowest entry age, and products are the ones at that limit. nothing_fits: fits and partly are both empty for another reason. The reasons of each product say why. A client that cannot send a query string can put the same params in the path as name and value pairs, with card for has_card (yes or no), and sum, daily and medical for the quote amounts: /api/v1/match/age/34/card/no/need/hospital. The answer is the same JSON.","operationId":"api_match_api_v1_match_get","parameters":[{"name":"age","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":120,"minimum":0},{"type":"null"}],"description":"Age of the person to be insured, in completed years. One call is one person, so a child gets a call of their own with the child's age. Leave out to skip.","title":"Age"},"description":"Age of the person to be insured, in completed years. One call is one person, so a child gets a call of their own with the child's age. Leave out to skip.","example":35},{"name":"age_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":364,"minimum":0},{"type":"null"}],"description":"For a baby under one year: the age in days. Some entry ages are counted in days. Send it in place of age. Leave out for anyone aged 1 or older.","title":"Age Days"},"description":"For a baby under one year: the age in days. Some entry ages are counted in days. Send it in place of age. Leave out for anyone aged 1 or older."},{"name":"has_card","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Holds a Vietnamese state health insurance (BHYT) card. Leave out to skip.","title":"Has Card"},"description":"Holds a Vietnamese state health insurance (BHYT) card. Leave out to skip.","example":true},{"name":"need","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["hospital","serious_illness","accident","outpatient","dental","maternity"],"type":"string"}},{"type":"null"}],"description":"What the cover is for. Repeat the param for more than one need: need=hospital&need=dental. A product that covers only some of them, or pays only part of one, is partly. Leave out to skip.","title":"Need"},"description":"What the cover is for. Repeat the param for more than one need: need=hospital&need=dental. A product that covers only some of them, or pays only part of one, is partly. Leave out to skip.","example":["hospital"]},{"name":"who","in":"query","required":false,"schema":{"anyOf":[{"enum":["self","child","family"],"type":"string"},{"type":"null"}],"description":"Who the cover is for. It changes no result. family adds a note that results are per person, so send one call for each family member with that person's age. Leave out to skip.","title":"Who"},"description":"Who the cover is for. It changes no result. family adds a note that results are per person, so send one call for each family member with that person's age. Leave out to skip."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchResponse"},"example":{"as_of":"2026-11-04","data_status":"demonstration","disclaimer":{"en":"DEMONSTRATION ONLY. This site shows what technology can do. The data here is NOT current. It may be wrong or out of date. TCGI does not promise it is accurate. Do not use it to buy, claim or decide anything. For current product information, contact TCGI. Products shown are fictional.","vi":"CHỈ ĐỂ MINH HỌA. Trang này cho thấy công nghệ có thể làm được gì. Dữ liệu ở đây KHÔNG phải dữ liệu hiện hành. Dữ liệu có thể sai hoặc đã cũ. TCGI không cam kết dữ liệu chính xác. Không dùng để mua, yêu cầu bồi thường hay ra quyết định. Để biết thông tin sản phẩm hiện hành, vui lòng liên hệ TCGI. Các sản phẩm hiển thị là hư cấu."},"short_label":{"en":"Demonstration data. Not current. Not accurate.","vi":"Dữ liệu minh họa. Không hiện hành. Không chính xác."},"expires_at":"2026-11-13T02:07:00+07:00","data":{"groups":{"fits":["demo-comprehensive","demo-hospital"],"partly":["demo-accident"],"no":[]},"results":[{"product":"demo-accident","result":"partly","reasons":[{"code":"need_part","fact":"demo-accident.benefit_allowance","need":"hospital","paid":["hospital_accident"],"not_paid":["hospital_illness"],"optional":["hospital_accident"],"text":{"en":"It pays for part of this need (hospital stay). Paid: a hospital stay after an accident (as an option you add). Not paid: a hospital stay for an illness.","vi":"Sản phẩm chỉ chi trả một phần cho nhu cầu này (nằm viện). Được chi trả: nằm viện do tai nạn (là quyền lợi tùy chọn bạn thêm). Không chi trả: nằm viện do bệnh."},"fact_text":{"en":"Optional daily allowance while in hospital after an accident, at VND 100,000, 150,000 or 200,000 a day, up to 60 days.","vi":"Trợ cấp ngày tùy chọn khi nằm viện sau tai nạn, 100.000, 150.000 hoặc 200.000 đồng mỗi ngày, tối đa 60 ngày."}}]},{"product":"demo-comprehensive","result":"fits","reasons":[]},{"product":"demo-hospital","result":"fits","reasons":[]}],"notes":[],"note":null}}}}},"400":{"description":"A query param is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"410":{"description":"The demonstration has ended.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/glossary":{"get":{"summary":"Insurance words used here, in plain language","description":"General meanings only. No product's number or rule is in the glossary.","operationId":"api_glossary_api_v1_glossary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlossaryResponse"},"example":{"as_of":"2026-11-04","data_status":"demonstration","disclaimer":{"en":"DEMONSTRATION ONLY. This site shows what technology can do. The data here is NOT current. It may be wrong or out of date. TCGI does not promise it is accurate. Do not use it to buy, claim or decide anything. For current product information, contact TCGI. Products shown are fictional.","vi":"CHỈ ĐỂ MINH HỌA. Trang này cho thấy công nghệ có thể làm được gì. Dữ liệu ở đây KHÔNG phải dữ liệu hiện hành. Dữ liệu có thể sai hoặc đã cũ. TCGI không cam kết dữ liệu chính xác. Không dùng để mua, yêu cầu bồi thường hay ra quyết định. Để biết thông tin sản phẩm hiện hành, vui lòng liên hệ TCGI. Các sản phẩm hiển thị là hư cấu."},"short_label":{"en":"Demonstration data. Not current. Not accurate.","vi":"Dữ liệu minh họa. Không hiện hành. Không chính xác."},"expires_at":"2026-11-13T02:07:00+07:00","data":[{"id":"sum-insured","term":{"en":"Sum insured","vi":"Số tiền bảo hiểm"},"text":{"en":"The most the insurer pays under a plan, usually for each person in a year.","vi":"Số tiền tối đa công ty bảo hiểm chi trả theo một chương trình, thường tính cho mỗi người trong một năm."},"url":{"en":"https://sandbox.itgives.link/en/glossary#sum-insured","vi":"https://sandbox.itgives.link/vi/glossary#sum-insured"}},{"id":"waiting-period","term":{"en":"Waiting period","vi":"Thời gian chờ"},"text":{"en":"A number of days after cover starts. A claim of that kind is not paid if the illness begins inside those days.","vi":"Một số ngày tính từ khi bắt đầu bảo hiểm. Yêu cầu bồi thường thuộc loại đó không được chi trả nếu bệnh phát sinh trong những ngày này."},"url":{"en":"https://sandbox.itgives.link/en/glossary#waiting-period","vi":"https://sandbox.itgives.link/vi/glossary#waiting-period"}},{"id":"pre-existing","term":{"en":"Pre-existing condition","vi":"Bệnh có sẵn"},"text":{"en":"An illness or injury you had, or had signs of, before cover started.","vi":"Bệnh hoặc thương tích bạn đã có, hoặc đã có dấu hiệu, trước ngày bắt đầu bảo hiểm."},"url":{"en":"https://sandbox.itgives.link/en/glossary#pre-existing","vi":"https://sandbox.itgives.link/vi/glossary#pre-existing"}},{"id":"lump-sum","term":{"en":"Lump sum","vi":"Khoản tiền một lần"},"text":{"en":"One fixed payment, made once. It does not depend on the hospital bill.","vi":"Một khoản tiền cố định, trả một lần. Khoản này không phụ thuộc vào hóa đơn viện phí."},"url":{"en":"https://sandbox.itgives.link/en/glossary#lump-sum","vi":"https://sandbox.itgives.link/vi/glossary#lump-sum"}},{"id":"co-payment","term":{"en":"Co-payment","vi":"Đồng chi trả"},"text":{"en":"The share of each claim you pay yourself. With a 10% co-payment on a bill of 100, you pay 10 and the insurer pays 90.","vi":"Phần của mỗi yêu cầu bồi thường mà bạn tự trả. Với mức đồng chi trả 10% trên hóa đơn 100, bạn trả 10 và công ty bảo hiểm trả 90."},"url":{"en":"https://sandbox.itgives.link/en/glossary#co-payment","vi":"https://sandbox.itgives.link/vi/glossary#co-payment"}},{"id":"bhyt","term":{"en":"BHYT card","vi":"Thẻ BHYT"},"text":{"en":"The card of Vietnam's state health insurance (bảo hiểm y tế). Some products can only be bought by a person who holds one.","vi":"Thẻ bảo hiểm y tế nhà nước của Việt Nam. Một số sản phẩm chỉ bán cho người có thẻ này."},"url":{"en":"https://sandbox.itgives.link/en/glossary#bhyt","vi":"https://sandbox.itgives.link/vi/glossary#bhyt"}},{"id":"premium","term":{"en":"Premium","vi":"Phí bảo hiểm"},"text":{"en":"The price you pay for the cover. On this site every premium is for one person for one year.","vi":"Số tiền bạn trả để được bảo hiểm. Trên trang này, mọi mức phí bảo hiểm đều tính cho một người trong một năm."},"url":{"en":"https://sandbox.itgives.link/en/glossary#premium","vi":"https://sandbox.itgives.link/vi/glossary#premium"}},{"id":"claim","term":{"en":"Claim","vi":"Yêu cầu bồi thường"},"text":{"en":"Your request to the insurer to pay under the policy, for example after a hospital stay.","vi":"Yêu cầu của bạn gửi công ty bảo hiểm để được chi trả theo hợp đồng, ví dụ sau một đợt nằm viện."},"url":{"en":"https://sandbox.itgives.link/en/glossary#claim","vi":"https://sandbox.itgives.link/vi/glossary#claim"}},{"id":"exclusion","term":{"en":"Exclusion","vi":"Loại trừ bảo hiểm"},"text":{"en":"Something the product never pays for, whatever plan you pick. Each product lists its own.","vi":"Điều mà sản phẩm không bao giờ chi trả, dù bạn chọn chương trình nào. Mỗi sản phẩm có danh sách loại trừ riêng."},"url":{"en":"https://sandbox.itgives.link/en/glossary#exclusion","vi":"https://sandbox.itgives.link/vi/glossary#exclusion"}},{"id":"listed-serious-illness","term":{"en":"Listed serious illness","vi":"Bệnh hiểm nghèo trong danh mục"},"text":{"en":"A serious illness that is named on a list in the product's rules. An illness that is not on the list does not count for that benefit. A product page says if its list is published.","vi":"Bệnh hiểm nghèo được nêu tên trong một danh mục của quy tắc sản phẩm. Bệnh không có trong danh mục thì không được tính cho quyền lợi đó. Trang sản phẩm cho biết danh mục có được công bố hay không."},"url":{"en":"https://sandbox.itgives.link/en/glossary#listed-serious-illness","vi":"https://sandbox.itgives.link/vi/glossary#listed-serious-illness"}},{"id":"listed-chronic-condition","term":{"en":"Listed chronic condition","vi":"Bệnh mãn tính trong danh mục"},"text":{"en":"A long-lasting illness that is named on a list in the product's rules. A listed condition can have its own, longer waiting period. A product page says if its list is published.","vi":"Bệnh kéo dài được nêu tên trong một danh mục của quy tắc sản phẩm. Bệnh trong danh mục có thể có thời gian chờ riêng, dài hơn. Trang sản phẩm cho biết danh mục có được công bố hay không."},"url":{"en":"https://sandbox.itgives.link/en/glossary#listed-chronic-condition","vi":"https://sandbox.itgives.link/vi/glossary#listed-chronic-condition"}},{"id":"age-at-last-birthday","term":{"en":"Age at last birthday","vi":"Tuổi tính theo sinh nhật gần nhất"},"text":{"en":"Your age in whole years, counted from your most recent birthday. Someone who turned 34 two months ago is 34. The other way to count is age at next birthday, which would make that person 35.","vi":"Tuổi tròn năm của bạn, tính từ sinh nhật gần đây nhất. Người vừa tròn 34 tuổi hai tháng trước là 34 tuổi. Cách tính khác là theo sinh nhật kế tiếp, khi đó người này là 35 tuổi."},"url":{"en":"https://sandbox.itgives.link/en/glossary#age-at-last-birthday","vi":"https://sandbox.itgives.link/vi/glossary#age-at-last-birthday"}},{"id":"sum-insured-per-year","term":{"en":"Sum insured per year","vi":"Số tiền bảo hiểm mỗi năm"},"text":{"en":"The most a plan pays for one person in one year of cover, with all the claims of that year added together.","vi":"Số tiền tối đa một chương trình chi trả cho một người trong một năm bảo hiểm, cộng tất cả các yêu cầu bồi thường của năm đó."},"url":{"en":"https://sandbox.itgives.link/en/glossary#sum-insured-per-year","vi":"https://sandbox.itgives.link/vi/glossary#sum-insured-per-year"}}]}}}},"400":{"description":"A query param is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"410":{"description":"The demonstration has ended.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/intents":{"get":{"summary":"What a customer may say, and the call for it","description":"Each entry maps what a customer may say to the match call to send, the questions to ask first and the notes to give. Every note is generated from the facts and the match rules and names the facts it rests on. Nothing ranks a product. A note with derived inference is served only once it is approved.","operationId":"api_intents_api_v1_intents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentsResponse"},"example":{"as_of":"2026-11-04","data_status":"demonstration","disclaimer":{"en":"DEMONSTRATION ONLY. This site shows what technology can do. The data here is NOT current. It may be wrong or out of date. TCGI does not promise it is accurate. Do not use it to buy, claim or decide anything. For current product information, contact TCGI. Products shown are fictional.","vi":"CHỈ ĐỂ MINH HỌA. Trang này cho thấy công nghệ có thể làm được gì. Dữ liệu ở đây KHÔNG phải dữ liệu hiện hành. Dữ liệu có thể sai hoặc đã cũ. TCGI không cam kết dữ liệu chính xác. Không dùng để mua, yêu cầu bồi thường hay ra quyết định. Để biết thông tin sản phẩm hiện hành, vui lòng liên hệ TCGI. Các sản phẩm hiển thị là hư cấu."},"short_label":{"en":"Demonstration data. Not current. Not accurate.","vi":"Dữ liệu minh họa. Không hiện hành. Không chính xác."},"expires_at":"2026-11-13T02:07:00+07:00","data":[{"id":"older","title":{"en":"An older person","vi":"Người lớn tuổi"},"says":{"en":["My parents are 65.","Can a person over 60 join?"],"vi":["Bố mẹ tôi 65 tuổi.","Người trên 60 tuổi có tham gia được không?"]},"call":"https://sandbox.itgives.link/api/v1/match?age={age}","ask_first":[{"en":"How old?","vi":"Bao nhiêu tuổi?"}],"notes":[{"text":{"en":"One call is one person. Send one call for each person, with that person's age.","vi":"Mỗi lần gọi là một người. Gửi một lần gọi cho mỗi người, với tuổi của người đó."},"facts":[],"derived":"rule"},{"text":{"en":"Personal Accident Cover (Demo): Not for you if you are older than 65.","vi":"Bảo hiểm Tai nạn Cá nhân (Demo): Không dành cho bạn nếu bạn trên 65 tuổi."},"facts":["demo-accident.age_entry"],"derived":"rule"},{"text":{"en":"Comprehensive Health Cover (Demo): Not for you if you are older than 60.","vi":"Bảo hiểm Sức khỏe Toàn diện (Demo): Không dành cho bạn nếu bạn trên 60 tuổi."},"facts":["demo-comprehensive.age_entry"],"derived":"rule"},{"text":{"en":"Hospital Cover (Demo): Not for you if you are older than 60.","vi":"Bảo hiểm Nằm viện (Demo): Không dành cho bạn nếu bạn trên 60 tuổi."},"facts":["demo-hospital.age_entry"],"derived":"rule"},{"text":{"en":"Personal Accident Cover (Demo) covers: Accident. It pays for part of: Hospital stay, Outpatient. It does not cover: Serious illness, Dental, Maternity.","vi":"Bảo hiểm Tai nạn Cá nhân (Demo) bảo hiểm: Tai nạn. Sản phẩm chi trả một phần cho: Nằm viện, Ngoại trú. Sản phẩm không bảo hiểm: Bệnh hiểm nghèo, Nha khoa, Thai sản."},"derived":"rule","facts":["demo-accident.overview","demo-accident.benefit_allowance","demo-accident.benefit_medical"]}],"related":["https://sandbox.itgives.link/en/scenarios/age-60-and-over"]},{"id":"condition","title":{"en":"A health condition","vi":"Đang có bệnh"},"says":{"en":["I have a health condition.","I have been ill."],"vi":["Tôi đang có bệnh.","Tôi từng bị bệnh."]},"call":"https://sandbox.itgives.link/api/v1/match?age={age}","ask_first":[{"en":"How old?","vi":"Bao nhiêu tuổi?"}],"notes":[{"text":{"en":"No product here covers a pre-existing condition.","vi":"Không sản phẩm nào ở đây bảo hiểm bệnh có sẵn."},"facts":["demo-accident.preexisting","demo-comprehensive.preexisting","demo-hospital.preexisting"],"derived":"rule"},{"text":{"en":"Personal Accident Cover (Demo): Only an injury that is the first result of the accident counts. An earlier injury or illness does not.","vi":"Bảo hiểm Tai nạn Cá nhân (Demo): Chỉ thương tích là hậu quả đầu tiên của tai nạn mới được tính. Thương tích hoặc bệnh có từ trước thì không."},"facts":["demo-accident.preexisting"],"derived":"rule"},{"text":{"en":"Comprehensive Health Cover (Demo): Not covered: a condition you had, or had symptoms of, before cover started.","vi":"Bảo hiểm Sức khỏe Toàn diện (Demo): Không chi trả: tình trạng bệnh đã có hoặc đã có triệu chứng trước ngày bắt đầu bảo hiểm."},"facts":["demo-comprehensive.preexisting"],"derived":"rule"},{"text":{"en":"Hospital Cover (Demo): Not covered: a condition you had, or had symptoms of, before cover started.","vi":"Bảo hiểm Nằm viện (Demo): Không chi trả: tình trạng bệnh đã có hoặc đã có triệu chứng trước ngày bắt đầu bảo hiểm."},"facts":["demo-hospital.preexisting"],"derived":"rule"},{"text":{"en":"Personal Accident Cover (Demo): Not for you if you have a permanent disability of 50% or more or you are under treatment for an illness or injury when you apply.","vi":"Bảo hiểm Tai nạn Cá nhân (Demo): Không dành cho bạn nếu bạn bị thương tật vĩnh viễn từ 50% trở lên hoặc bạn đang điều trị bệnh hoặc thương tích khi đăng ký."},"facts":["demo-accident.not_accepted"],"derived":"rule"},{"text":{"en":"Then send the match as usual. This answer is not a param of the match and changes no result.","vi":"Sau đó gửi lệnh đối chiếu như bình thường. Câu trả lời này không phải là tham số đối chiếu và không làm thay đổi kết quả."},"facts":[],"derived":"rule"}],"related":[]},{"id":"maternity","title":{"en":"Pregnancy and maternity","vi":"Mang thai và thai sản"},"says":{"en":["I am pregnant.","We are planning a baby."],"vi":["Tôi đang mang thai.","Chúng tôi dự định sinh con."]},"call":"https://sandbox.itgives.link/api/v1/match?age={age}&need=maternity","ask_first":[{"en":"How old?","vi":"Bao nhiêu tuổi?"}],"notes":[{"text":{"en":"Comprehensive Health Cover (Demo): Covers maternity on plans C4 and C5 only. Waiting period: 270 days.","vi":"Bảo hiểm Sức khỏe Toàn diện (Demo): Bảo hiểm thai sản chỉ ở các chương trình C4 và C5. Thời gian chờ: 270 ngày."},"facts":["demo-comprehensive.benefit_maternity","demo-comprehensive.wait_maternity"],"derived":"rule"}],"related":[]},{"id":"family","title":{"en":"A child or a family","vi":"Trẻ em hoặc gia đình"},"says":{"en":["Cover my child.","Cover my family."],"vi":["Bảo hiểm cho con tôi.","Bảo hiểm cho gia đình tôi."]},"call":"https://sandbox.itgives.link/api/v1/match?age={age}","ask_first":[{"en":"How old is each person to be covered?","vi":"Mỗi người được bảo hiểm bao nhiêu tuổi?"},{"en":"Does everyone to be covered have a Vietnamese state health insurance (BHYT) card?","vi":"Mọi người được bảo hiểm đều có thẻ bảo hiểm y tế nhà nước (BHYT) không?"}],"notes":[{"text":{"en":"One call is one person. Send one call for each person, with that person's age.","vi":"Mỗi lần gọi là một người. Gửi một lần gọi cho mỗi người, với tuổi của người đó."},"facts":[],"derived":"rule"},{"text":{"en":"Family cover: results are per person. No family price is worked out.","vi":"Bảo hiểm gia đình: kết quả tính theo từng người. Không tính phí cho cả gia đình."},"facts":[],"derived":"rule"},{"text":{"en":"Hospital Cover (Demo): Not for a child under 6 on their own. A parent must join too.","vi":"Bảo hiểm Nằm viện (Demo): Không dành cho trẻ dưới 6 tuổi tham gia một mình. Cha hoặc mẹ phải cùng tham gia."},"facts":["demo-hospital.child_with_parent"],"derived":"rule"},{"text":{"en":"For a baby under one year send age_days, the age in days, in place of age.","vi":"Với trẻ dưới một tuổi, hãy gửi age_days, tức tuổi tính bằng ngày, thay cho age."},"facts":[],"derived":"rule"},{"text":{"en":"Personal Accident Cover (Demo): Not for you if you are younger than 15 days.","vi":"Bảo hiểm Tai nạn Cá nhân (Demo): Không dành cho bạn nếu bạn dưới 15 ngày tuổi."},"facts":["demo-accident.age_entry"],"derived":"rule"},{"text":{"en":"Hospital Cover (Demo): Not for you if you are younger than 15 days.","vi":"Bảo hiểm Nằm viện (Demo): Không dành cho bạn nếu bạn dưới 15 ngày tuổi."},"facts":["demo-hospital.age_entry"],"derived":"rule"},{"text":{"en":"Comprehensive Health Cover (Demo): a child aged 1 to under 10 pays 15% of each claim.","vi":"Bảo hiểm Sức khỏe Toàn diện (Demo): trẻ từ 1 đến dưới 10 tuổi tự chi trả 15% mỗi yêu cầu bồi thường."},"facts":["demo-comprehensive.child_copay"],"derived":"rule"}],"related":["https://sandbox.itgives.link/en/scenarios/child-under-6"]},{"id":"card_unsure","title":{"en":"Not sure about the BHYT card","vi":"Không chắc về thẻ BHYT"},"says":{"en":["I am not sure if I have a BHYT card."],"vi":["Tôi không chắc mình có thẻ BHYT hay không."]},"call":"https://sandbox.itgives.link/api/v1/match?age={age}","ask_first":[{"en":"How old?","vi":"Bao nhiêu tuổi?"}],"notes":[{"text":{"en":"Leave has_card out of the call. A product that needs the card keeps its result and carries the reason card_unknown.","vi":"Bỏ has_card khỏi lệnh gọi. Sản phẩm yêu cầu thẻ giữ nguyên kết quả và mang lý do card_unknown."},"facts":[],"derived":"rule"},{"text":{"en":"The BHYT card is the card of Vietnam's state health insurance. To check, look for your paper card or open the VssID app of Vietnam Social Security, which shows the card if you have one.","vi":"Thẻ BHYT là thẻ bảo hiểm y tế nhà nước của Việt Nam. Để kiểm tra, hãy tìm thẻ giấy hoặc mở ứng dụng VssID của Bảo hiểm xã hội Việt Nam, ứng dụng sẽ hiện thẻ nếu bạn có."},"facts":[],"derived":"rule"},{"text":{"en":"Hospital Cover (Demo): Not for you if you do not hold a state health insurance (BHYT) card.","vi":"Bảo hiểm Nằm viện (Demo): Không dành cho bạn nếu bạn không có thẻ bảo hiểm y tế nhà nước (BHYT)."},"facts":["demo-hospital.card_required"],"derived":"rule"}],"related":["https://sandbox.itgives.link/en/glossary#bhyt","https://sandbox.itgives.link/en/scenarios/no-bhyt-card"]},{"id":"ranking","title":{"en":"The cheapest, or which one","vi":"Rẻ nhất, hoặc loại nào"},"says":{"en":["What is the cheapest?","Which one is right for me?"],"vi":["Loại nào rẻ nhất?","Loại nào hợp với tôi?"]},"call":null,"ask_first":[],"notes":[{"text":{"en":"This site does not rank products and names no product as the one to take. Give the person the match and the price tables.","vi":"Trang này không xếp hạng sản phẩm và không nêu sản phẩm nào là sản phẩm nên lấy. Hãy đưa cho người hỏi kết quả đối chiếu và các bảng phí."},"facts":[],"derived":"rule"}],"related":["https://sandbox.itgives.link/llms-prices.txt","https://sandbox.itgives.link/api/v1/match","https://sandbox.itgives.link/llms-full.txt"]},{"id":"servicing","title":{"en":"Buying, claiming and cancelling","vi":"Mua, yêu cầu bồi thường và hủy"},"says":{"en":["How do I claim?","How do I buy it?","How do I cancel?"],"vi":["Tôi yêu cầu bồi thường thế nào?","Tôi mua thế nào?","Tôi hủy thế nào?"]},"call":null,"ask_first":[],"notes":[{"text":{"en":"Personal Accident Cover (Demo): One policy covers up to 12 months. The rules say nothing about renewal.","vi":"Bảo hiểm Tai nạn Cá nhân (Demo): Thời hạn bảo hiểm tối đa 12 tháng. Quy tắc không nêu về việc tái tục."},"facts":["demo-accident.cover_period"],"derived":"rule"},{"text":{"en":"Personal Accident Cover (Demo): not published here: How to buy, How to claim, Renewal, Cancellation, Payment options, Contact details.","vi":"Bảo hiểm Tai nạn Cá nhân (Demo): chưa công bố ở đây: Cách mua, Cách yêu cầu bồi thường, Tái tục, Hủy hợp đồng, Cách thanh toán, Thông tin liên hệ."},"facts":["demo-accident.how_to_buy","demo-accident.how_to_claim","demo-accident.renewal","demo-accident.cancellation","demo-accident.payment","demo-accident.contact"],"derived":"rule"},{"text":{"en":"Comprehensive Health Cover (Demo): not published here: How long cover lasts, How to buy, How to claim, Renewal, Cancellation, Payment options, Contact details.","vi":"Bảo hiểm Sức khỏe Toàn diện (Demo): chưa công bố ở đây: Thời hạn bảo hiểm, Cách mua, Cách yêu cầu bồi thường, Tái tục, Hủy hợp đồng, Cách thanh toán, Thông tin liên hệ."},"facts":["demo-comprehensive.cover_period","demo-comprehensive.how_to_buy","demo-comprehensive.how_to_claim","demo-comprehensive.renewal","demo-comprehensive.cancellation","demo-comprehensive.payment","demo-comprehensive.contact"],"derived":"rule"},{"text":{"en":"Hospital Cover (Demo): not published here: How long cover lasts, How to buy, How to claim, Renewal, Cancellation, Payment options, Contact details.","vi":"Bảo hiểm Nằm viện (Demo): chưa công bố ở đây: Thời hạn bảo hiểm, Cách mua, Cách yêu cầu bồi thường, Tái tục, Hủy hợp đồng, Cách thanh toán, Thông tin liên hệ."},"facts":["demo-hospital.cover_period","demo-hospital.how_to_buy","demo-hospital.how_to_claim","demo-hospital.renewal","demo-hospital.cancellation","demo-hospital.payment","demo-hospital.contact"],"derived":"rule"}],"related":["https://sandbox.itgives.link/en/guides/after-you-choose"]}]}}}},"400":{"description":"A query param is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"410":{"description":"The demonstration has ended.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/quote":{"get":{"summary":"Work out a price for a rate-priced product","description":"The premium of the product priced by rate, in VND per person per year. Each line gives the benefit, base_vnd (the amount the rate is charged on), rate_pct and amount_vnd, and total_vnd is the sum of the lines. Premium per person per year is the total of one amount per benefit chosen: the rate times the amount that benefit is charged on. Death and disability is charged on the sum insured. Daily allowance is charged on the daily amount x 60 days. Medical cost is charged on the medical limit you pick. Each amount is rounded to the nearest VND 1,000. Age does not change the price. Death and disability is always included. A client that cannot send a query string can put the same params in the path as name and value pairs, with card for has_card (yes or no), and sum, daily and medical for the quote amounts: /api/v1/quote/sum/200000000/daily/150000/medical/40000000. The answer is the same JSON.","operationId":"api_quote_api_v1_quote_get","parameters":[{"name":"sum_insured","in":"query","required":true,"schema":{"type":"integer","description":"Sum insured in VND.","title":"Sum Insured"},"description":"Sum insured in VND.","example":20000000},{"name":"daily_vnd","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Daily allowance in VND for each day in hospital. Its rate is charged on this amount times the days it can be paid, not on the sum insured. Leave out for no allowance.","title":"Daily Vnd"},"description":"Daily allowance in VND for each day in hospital. Its rate is charged on this amount times the days it can be paid, not on the sum insured. Leave out for no allowance.","example":100000},{"name":"medical_vnd","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Medical cost limit in VND. Its rate is charged on this limit. Leave out for no medical cover.","title":"Medical Vnd"},"description":"Medical cost limit in VND. Its rate is charged on this limit. Leave out for no medical cover.","example":50000000}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteResponse"},"example":{"as_of":"2026-11-04","data_status":"demonstration","disclaimer":{"en":"DEMONSTRATION ONLY. This site shows what technology can do. The data here is NOT current. It may be wrong or out of date. TCGI does not promise it is accurate. Do not use it to buy, claim or decide anything. For current product information, contact TCGI. Products shown are fictional.","vi":"CHỈ ĐỂ MINH HỌA. Trang này cho thấy công nghệ có thể làm được gì. Dữ liệu ở đây KHÔNG phải dữ liệu hiện hành. Dữ liệu có thể sai hoặc đã cũ. TCGI không cam kết dữ liệu chính xác. Không dùng để mua, yêu cầu bồi thường hay ra quyết định. Để biết thông tin sản phẩm hiện hành, vui lòng liên hệ TCGI. Các sản phẩm hiển thị là hư cấu."},"short_label":{"en":"Demonstration data. Not current. Not accurate.","vi":"Dữ liệu minh họa. Không hiện hành. Không chính xác."},"expires_at":"2026-11-13T02:07:00+07:00","data":{"lines":[{"benefit":"death_disability","base_vnd":20000000,"rate_pct":0.11,"amount_vnd":22000},{"benefit":"allowance","base_vnd":6000000,"rate_pct":0.65,"amount_vnd":39000},{"benefit":"medical","base_vnd":50000000,"rate_pct":0.58,"amount_vnd":290000}],"total_vnd":351000,"currency":"VND","per":"person per year"}}}}},"400":{"description":"A query param is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"410":{"description":"The demonstration has ended.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"ErrorBody":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"ErrorBody"},"ErrorResponse":{"properties":{"data_status":{"type":"string","enum":["demonstration","current"],"title":"Data Status"},"disclaimer":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Disclaimer"},"short_label":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Short Label"},"as_of":{"type":"string","title":"As Of"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"data":{"type":"null","title":"Data"},"error":{"$ref":"#/components/schemas/ErrorBody"}},"type":"object","required":["data_status","as_of","data","error"],"title":"ErrorResponse"},"Fact":{"properties":{"id":{"type":"string","title":"Id"},"product":{"type":"string","title":"Product"},"type":{"type":"string","title":"Type"},"status":{"type":"string","title":"Status"},"text":{"additionalProperties":true,"type":"object","title":"Text","description":"standard: the wording closest to the source. plain: the same fact in short words, with generated (a model wrote it) and approved (a person signed it off). Read standard when plain is null."},"value":{"title":"Value"},"source":{"additionalProperties":true,"type":"object","title":"Source"},"valid_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Valid From"},"as_of":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of"},"stale_after":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stale After"},"stale":{"type":"boolean","title":"Stale"},"review_status":{"type":"string","title":"Review Status","description":"reviewed: the wording was checked against the source the fact names. It does not say the data is accurate, and in a demonstration the source is invented. conflict: two sources differ, and sources_differ holds the other value. gap: the data holds no answer, and the text says so."},"review_label":{"additionalProperties":{"type":"string"},"type":"object","title":"Review Label","description":"review_status in words a person reads."},"sources_differ":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sources Differ"},"provenance":{"additionalProperties":{"type":"string"},"type":"object","title":"Provenance"},"fictional":{"type":"boolean","title":"Fictional"}},"type":"object","required":["id","product","type","status","text","value","source","valid_from","as_of","stale_after","stale","review_status","review_label","sources_differ","provenance","fictional"],"title":"Fact"},"GlossaryEntry":{"properties":{"id":{"type":"string","title":"Id"},"term":{"additionalProperties":{"type":"string"},"type":"object","title":"Term"},"text":{"additionalProperties":{"type":"string"},"type":"object","title":"Text","description":"A general meaning. It holds no product's number or rule."},"url":{"additionalProperties":{"type":"string"},"type":"object","title":"Url","description":"Where the word is explained on the site."}},"type":"object","required":["id","term","text","url"],"title":"GlossaryEntry"},"GlossaryResponse":{"properties":{"data_status":{"type":"string","enum":["demonstration","current"],"title":"Data Status"},"disclaimer":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Disclaimer"},"short_label":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Short Label"},"as_of":{"type":"string","title":"As Of"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"data":{"items":{"$ref":"#/components/schemas/GlossaryEntry"},"type":"array","title":"Data"}},"type":"object","required":["data_status","as_of","data"],"title":"GlossaryResponse"},"Intent":{"properties":{"id":{"type":"string","title":"Id"},"title":{"additionalProperties":{"type":"string"},"type":"object","title":"Title"},"says":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Says","description":"What a customer may say, in English and Vietnamese. Examples, not a full list."},"call":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call","description":"The match call to send, with {age} for the person's age. null when the question is not one for the match."},"ask_first":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Ask First","description":"What to ask the customer before the call."},"notes":{"items":{"$ref":"#/components/schemas/IntentNote"},"type":"array","title":"Notes","description":"What to tell the customer. No note ranks a product."},"related":{"items":{"type":"string"},"type":"array","title":"Related","description":"Pages and files that hold more, such as the scenario page of the same situation."}},"type":"object","required":["id","title","says","call","ask_first","notes","related"],"title":"Intent"},"IntentNote":{"properties":{"text":{"additionalProperties":{"type":"string"},"type":"object","title":"Text"},"facts":{"items":{"type":"string"},"type":"array","title":"Facts","description":"Ids of the facts the note rests on. Empty for a note about how to call the API."},"derived":{"type":"string","enum":["rule","inference"],"title":"Derived","description":"rule: made mechanically from a fact or a match rule. inference: a conclusion the rules do not state. An inference is served only once it is approved."},"approved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Approved","description":"With inference: true. An inference that is not approved is never served."}},"type":"object","required":["text","facts","derived"],"title":"IntentNote"},"IntentsResponse":{"properties":{"data_status":{"type":"string","enum":["demonstration","current"],"title":"Data Status"},"disclaimer":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Disclaimer"},"short_label":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Short Label"},"as_of":{"type":"string","title":"As Of"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"data":{"items":{"$ref":"#/components/schemas/Intent"},"type":"array","title":"Data"}},"type":"object","required":["data_status","as_of","data"],"title":"IntentsResponse"},"Match":{"properties":{"groups":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"propertyNames":{"enum":["fits","partly","no"]},"type":"object","title":"Groups","description":"Product ids by result, in id order. No ranking."},"results":{"items":{"$ref":"#/components/schemas/MatchResult"},"type":"array","title":"Results"},"notes":{"items":{"$ref":"#/components/schemas/Note"},"type":"array","title":"Notes","description":"Notes on the whole match. Empty when there is nothing to add."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"The notes as English sentences, or null. Set when fits and partly are both empty, to say why."}},"type":"object","required":["groups","results","notes","note"],"title":"Match"},"MatchResponse":{"properties":{"data_status":{"type":"string","enum":["demonstration","current"],"title":"Data Status"},"disclaimer":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Disclaimer"},"short_label":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Short Label"},"as_of":{"type":"string","title":"As Of"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"data":{"$ref":"#/components/schemas/Match"}},"type":"object","required":["data_status","as_of","data"],"title":"MatchResponse"},"MatchResult":{"properties":{"product":{"type":"string","title":"Product"},"result":{"type":"string","enum":["fits","partly","no"],"title":"Result","description":"fits: no answer rules the product out. Its reasons, when it has any, are points to check and not exclusions. partly: it can fit with a condition, such as a child who must join with a parent, or it covers only some of the needs asked for, or pays only part of one. no: a rule excludes it. The reasons say which rule."},"reasons":{"items":{"$ref":"#/components/schemas/Reason"},"type":"array","title":"Reasons"}},"type":"object","required":["product","result","reasons"],"title":"MatchResult"},"Note":{"properties":{"code":{"type":"string","enum":["family","age_above","age_below","nothing_fits"],"title":"Code","description":"family: who was family. Results are per person and no family price is worked out. age_above: no product accepts the age. limit is the highest entry age, and products are the ones at that limit. age_below: no product accepts the age. limit is the lowest entry age, and products are the ones at that limit. nothing_fits: fits and partly are both empty for another reason. The reasons of each product say why."},"text":{"additionalProperties":{"type":"string"},"type":"object","title":"Text","description":"The note as a sentence, in English and Vietnamese."},"age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Age","description":"With age_above and age_below: the age asked for."},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit","description":"With age_above and age_below: the entry age at the limit."},"products":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Products","description":"With age_above and age_below: ids of the products at that limit."}},"type":"object","required":["code","text"],"title":"Note"},"Product":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"additionalProperties":{"type":"string"},"type":"object","title":"Name"},"summary":{"additionalProperties":{"type":"string"},"type":"object","title":"Summary"},"need":{"type":"string","title":"Need"},"status":{"type":"string","title":"Status"},"insurer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurer"},"coverage_area":{"items":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"array","title":"Coverage Area"},"fictional":{"type":"boolean","title":"Fictional"},"valid_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Valid From"},"as_of":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of"},"plans":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Plans"},"facts":{"items":{"$ref":"#/components/schemas/Fact"},"type":"array","title":"Facts"},"prices":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Prices"},"facets":{"additionalProperties":true,"type":"object","title":"Facets"},"faq":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Faq"}},"type":"object","required":["id","slug","name","summary","need","status","insurer","coverage_area","fictional","valid_from","as_of","plans","facts","prices","facets","faq"],"title":"Product"},"ProductListResponse":{"properties":{"data_status":{"type":"string","enum":["demonstration","current"],"title":"Data Status"},"disclaimer":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Disclaimer"},"short_label":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Short Label"},"as_of":{"type":"string","title":"As Of"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"data":{"items":{"$ref":"#/components/schemas/ProductSummary"},"type":"array","title":"Data"}},"type":"object","required":["data_status","as_of","data"],"title":"ProductListResponse"},"ProductResponse":{"properties":{"data_status":{"type":"string","enum":["demonstration","current"],"title":"Data Status"},"disclaimer":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Disclaimer"},"short_label":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Short Label"},"as_of":{"type":"string","title":"As Of"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"data":{"$ref":"#/components/schemas/Product"}},"type":"object","required":["data_status","as_of","data"],"title":"ProductResponse"},"ProductSummary":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"additionalProperties":{"type":"string"},"type":"object","title":"Name"},"summary":{"additionalProperties":{"type":"string"},"type":"object","title":"Summary"},"need":{"type":"string","title":"Need"},"fictional":{"type":"boolean","title":"Fictional"},"as_of":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of"},"facts":{"type":"integer","title":"Facts"}},"type":"object","required":["id","slug","name","summary","need","fictional","as_of","facts"],"title":"ProductSummary"},"Quote":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/QuoteLine"},"type":"array","title":"Lines"},"total_vnd":{"type":"integer","title":"Total Vnd","description":"The sum of the lines."},"currency":{"type":"string","title":"Currency"},"per":{"type":"string","title":"Per"}},"type":"object","required":["lines","total_vnd","currency","per"],"title":"Quote"},"QuoteLine":{"properties":{"benefit":{"type":"string","title":"Benefit","description":"death_disability, allowance or medical."},"base_vnd":{"type":"integer","title":"Base Vnd","description":"The amount the rate is charged on. death_disability: the sum insured. allowance: the daily amount times the days it can be paid, never the sum insured. medical: the medical limit picked."},"rate_pct":{"type":"number","title":"Rate Pct","description":"Percent of base_vnd, per year."},"amount_vnd":{"type":"integer","title":"Amount Vnd","description":"base_vnd times rate_pct, rounded to the nearest VND 1,000."}},"type":"object","required":["benefit","base_vnd","rate_pct","amount_vnd"],"title":"QuoteLine"},"QuoteResponse":{"properties":{"data_status":{"type":"string","enum":["demonstration","current"],"title":"Data Status"},"disclaimer":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Disclaimer"},"short_label":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Short Label"},"as_of":{"type":"string","title":"As Of"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"data":{"$ref":"#/components/schemas/Quote"}},"type":"object","required":["data_status","as_of","data"],"title":"QuoteResponse"},"Reason":{"properties":{"code":{"type":"string","enum":["age","card","need","need_partly","need_part","parent","card_unknown","copay"],"title":"Code","description":"age: the age is outside the product's entry age range. The result is no. card: the product needs a state health insurance (BHYT) card and has_card was false. The result is no. need: the product pays nothing of any need asked for. needs lists them. The result is no. need_partly: the product pays nothing of some of the needs asked for, and needs lists those. The result is partly, unless another reason says no. need_part: the product pays for part of one need asked for. need is that need, paid lists what it pays, not_paid what it does not, and optional the paid parts that only a benefit the person adds pays. This reason alone never gives no: the result is partly, unless another reason says no. parent: the person is a child below the age at which the product lets a child join alone, so a parent must join too. The result is partly. card_unknown: the product needs a state health insurance (BHYT) card and has_card was left out. The result does not change: check for the card before choosing. copay: the person is a child at an age where the product has a co-payment, so the family pays pct percent of each claim. The result does not change."},"fact":{"type":"string","title":"Fact","description":"Id of the fact the reason rests on."},"needs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Needs","description":"With need and need_partly: the needs asked for that the product pays nothing of."},"need":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need","description":"With need_part: the need that is paid in part."},"paid":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Paid","description":"With need_part: the parts of the need the product pays."},"not_paid":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Not Paid","description":"With need_part: the parts of the need the product does not pay."},"optional":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Optional","description":"With need_part: the paid parts that only an optional benefit pays."},"pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pct","description":"With copay: the percent of each claim the family pays."},"text":{"additionalProperties":{"type":"string"},"type":"object","title":"Text","description":"The reason as a sentence, in English and Vietnamese. The same sentence the guided page shows."},"fact_text":{"additionalProperties":{"type":"string"},"type":"object","title":"Fact Text","description":"The wording of that fact."}},"type":"object","required":["code","fact","text","fact_text"],"title":"Reason"}}}}