submit_enrollment
HIGH-STAKES WRITE: Files applicants, contact, selected plans and questionnaire answers for MANUAL completion by an Apollo agent — this is not an enrollment confirmation. Pass selectedPlans as {carrier, planId} from quote_carriers, with the SAME applicants, location, household and effectiveDate used for the quote. Never enroll in a carrier's plans after a knockout answer (an answer other than expectedAnswer). Requires explicitUserConsent=true and consentStatement: the user's own message giving consent, quoted VERBATIM (never paraphrased or written by you). Only call after the user has explicitly agreed to submit. Success only when filed=true (status SYNCED/SKIPPED, or BACKUP_FILED: the API couldn't hand it off, so it went straight to an Apollo agent; don't resubmit). If filed=false (RECEIVED/SYNC_FAILED/upstream unavailable), call again with IDENTICAL arguments — the server derives the idempotency key from them, so an identical retry resumes the same submission and never files twice. PLAN_NOT_FOUND means a plan is no longer offered: quote again. Give the user the submissionId as their reference and relay nextStep verbatim; do not promise anything else.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| answers | No | Answers to get_eligibility_questionnaires, where a carrier has one. | |
| location | Yes | ||
| household | No | ||
| applicants | Yes | ||
| contactInfo | Yes | ||
| effectiveDate | Yes | Coverage start YYYY-MM-DD; today or later | |
| selectedPlans | Yes | The plans the applicant chose, as {carrier, planId} exactly as returned by quote_carriers. | |
| childOnlyPlans | No | Same value as the quote, if one was sent. | |
| subsidyEligible | No | Same value as the quote, if one was sent. Ancillary carriers ignore it. | |
| consentStatement | Yes | The user's message in which they consented to submit, quoted verbatim. Recorded as the consent audit trail. | |
| explicitUserConsent | Yes | Must be true; confirms the user explicitly approved submitting. |