Enrollment
A household's enrollment in a specific program.
EnrollmentBase
Section titled “EnrollmentBase”The persistent relationship between a Household and a Program. Created when an Application is submitted. Accumulates EligibilityDeterminations over time.
| Property | Type | Required | Description |
|---|---|---|---|
id | uuid | Yes | The enrollment's unique identifier. |
householdId | uuid | Yes | The household this enrollment belongs to. |
programId | uuid | Yes | The program this enrollment is for. |
applicationId | uuid | Yes | The application that created this enrollment. |
status | EnrollmentStatus | Yes | The current status of the enrollment. |
determinations | EligibilityDeterminationBase[] | No | Eligibility determinations for this enrollment, ordered by `determinedAt` ascending. |
createdAt | string | Yes | The timestamp (in UTC) at which the record was created. |
lastModifiedAt | string | Yes | The timestamp (in UTC) at which the record was last modified. |
{ "id": "30a12e5e-5940-4c08-921c-17a8960fcf4b", "householdId": "40a12e5e-5940-4c08-921c-17a8960fcf4b", "programId": "50a12e5e-5940-4c08-921c-17a8960fcf4b", "applicationId": "60a12e5e-5940-4c08-921c-17a8960fcf4b", "status": { "value": "active", "description": "" }, "createdAt": "2026-05-24T10:30:00Z", "lastModifiedAt": "2026-05-24T10:31:00Z"}$schema: https://json-schema.org/draft/2020-12/schema$id: EnrollmentBase.yamltype: objectproperties: id: $ref: uuid.yaml description: The enrollment's unique identifier. householdId: $ref: uuid.yaml description: The household this enrollment belongs to. programId: $ref: uuid.yaml description: The program this enrollment is for. applicationId: $ref: uuid.yaml description: The application that created this enrollment. status: $ref: EnrollmentStatus.yaml description: The current status of the enrollment. determinations: type: array items: $ref: EligibilityDeterminationBase.yaml description: Eligibility determinations for this enrollment, ordered by `determinedAt` ascending. createdAt: type: string format: date-time description: The timestamp (in UTC) at which the record was created. lastModifiedAt: type: string format: date-time description: The timestamp (in UTC) at which the record was last modified.required: - id - householdId - programId - applicationId - status - createdAt - lastModifiedAtexamples: - id: 30a12e5e-5940-4c08-921c-17a8960fcf4b householdId: 40a12e5e-5940-4c08-921c-17a8960fcf4b programId: 50a12e5e-5940-4c08-921c-17a8960fcf4b applicationId: 60a12e5e-5940-4c08-921c-17a8960fcf4b status: value: active description: "" createdAt: 2026-05-24T10:30:00Z lastModifiedAt: 2026-05-24T10:31:00Zdescription: |- The persistent relationship between a Household and a Program. Created when an Application is submitted. Accumulates EligibilityDeterminations over time./** The persistent relationship between a Household and a Program. Created * when an Application is submitted. Accumulates EligibilityDeterminations * over time. */@example(Examples.Enrollment.active)@Versioning.added(Versions.v0_1)model EnrollmentBase { /** The enrollment's unique identifier. */ id: Types.uuid;
/** The household this enrollment belongs to. */ householdId: Types.uuid;
/** The program this enrollment is for. */ programId: Types.uuid;
/** The application that created this enrollment. */ applicationId: Types.uuid;
/** The current status of the enrollment. */ status: EnrollmentStatus;
/** Eligibility determinations for this enrollment, ordered by `determinedAt` ascending. */ determinations?: EligibilityDeterminationBase[];
/** Standard system metadata (createdAt, lastModifiedAt). */ ...Fields.SystemMetadata;}EnrollmentStatus
Section titled “EnrollmentStatus”The status of an enrollment.
| Property | Type | Required | Description |
|---|---|---|---|
value | EnrollmentStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "pending", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: EnrollmentStatus.yamltype: objectproperties: value: $ref: EnrollmentStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: The status of an enrollment./** The status of an enrollment. */@Versioning.added(Versions.v0_1)model EnrollmentStatus is Fields.ExtensibleEnumT<EnrollmentStatusOptions>;
// #########################################################// EnrollmentRef// #########################################################
/** A denormalized reference to an enrollment. Returned inline on responses * that need to point at enrollments without including the full record * (e.g., the `enrollments` field on ApplicationBase). Carries `programId` * and `status` so callers can disambiguate which enrollment they want to * follow up on without an extra `GET /households/{id}/enrollments`. */@Versioning.added(Versions.v0_1)model EnrollmentRef { /** The enrollment's unique identifier. Use with `GET /households/{id}/enrollments`. */ id: Types.uuid;
/** The program this enrollment is for. */ programId: Types.uuid;
/** The current status of the enrollment. */ status: EnrollmentStatus;}EnrollmentStatusOptions
Section titled “EnrollmentStatusOptions”Predefined set of enrollment statuses.
| Value | Description |
|---|---|
pending | Enrollment is pending an eligibility determination. |
active | Enrollment is active. |
denied | Enrollment was denied. |
closed | Enrollment has been closed. |
custom | A caller-defined status. |
"pending"$schema: https://json-schema.org/draft/2020-12/schema$id: EnrollmentStatusOptions.yamltype: stringenum: - pending - active - denied - closed - customdescription: |- Predefined set of enrollment statuses.
- `pending`: Enrollment is pending an eligibility determination. - `active`: Enrollment is active. - `denied`: Enrollment was denied. - `closed`: Enrollment has been closed. - `custom`: A caller-defined status./** Predefined set of enrollment statuses. * * - `pending`: Enrollment is pending an eligibility determination. * - `active`: Enrollment is active. * - `denied`: Enrollment was denied. * - `closed`: Enrollment has been closed. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum EnrollmentStatusOptions { pending, active, denied, closed, custom,}EnrollmentRef
Section titled “EnrollmentRef”A denormalized reference to an enrollment. Returned inline on responses that need to point at enrollments without including the full record (e.g., the `enrollments` field on ApplicationBase). Carries `programId` and `status` so callers can disambiguate which enrollment they want to follow up on without an extra `GET /households/{id}/enrollments`.
| Property | Type | Required | Description |
|---|---|---|---|
id | uuid | Yes | The enrollment's unique identifier. Use with `GET /households/{id}/enrollments`. |
programId | uuid | Yes | The program this enrollment is for. |
status | EnrollmentStatus | Yes | The current status of the enrollment. |
{ "id": "30a12e5e-5940-4c08-921c-17a8960fcf4b", "programId": "30a12e5e-5940-4c08-921c-17a8960fcf4b", "status": { "value": "pending", "customValue": "string", "description": "string" }}$schema: https://json-schema.org/draft/2020-12/schema$id: EnrollmentRef.yamltype: objectproperties: id: $ref: uuid.yaml description: The enrollment's unique identifier. Use with `GET /households/{id}/enrollments`. programId: $ref: uuid.yaml description: The program this enrollment is for. status: $ref: EnrollmentStatus.yaml description: The current status of the enrollment.required: - id - programId - statusdescription: |- A denormalized reference to an enrollment. Returned inline on responses that need to point at enrollments without including the full record (e.g., the `enrollments` field on ApplicationBase). Carries `programId` and `status` so callers can disambiguate which enrollment they want to follow up on without an extra `GET /households/{id}/enrollments`./** A denormalized reference to an enrollment. Returned inline on responses * that need to point at enrollments without including the full record * (e.g., the `enrollments` field on ApplicationBase). Carries `programId` * and `status` so callers can disambiguate which enrollment they want to * follow up on without an extra `GET /households/{id}/enrollments`. */@Versioning.added(Versions.v0_1)model EnrollmentRef { /** The enrollment's unique identifier. Use with `GET /households/{id}/enrollments`. */ id: Types.uuid;
/** The program this enrollment is for. */ programId: Types.uuid;
/** The current status of the enrollment. */ status: EnrollmentStatus;}