openapi: 3.1.0 info: title: Endpoints subpackage_enrollments API version: 1.0.0 servers: - url: https://api.letsdeel.com/rest/v2 - url: https://api-staging.letsdeel.com/rest/v2 tags: - name: subpackage_enrollments paths: /benefits/legal-entities/{legal_entity_id}/contracts/{contract_id}/plans/{plan_id}: post: operationId: enroll-an-employee-in-a-401-k-plan-v-2026-01-01 summary: Enroll an employee in a 401k plan description: "Enroll an employee in a 401k plan\n **Token scopes**: `benefits:write`" tags: - subpackage_enrollments parameters: - name: legal_entity_id in: path description: Legal entity id which employee/contract belongs required: true schema: type: string - name: contract_id in: path description: Contract id from the employee required: true schema: type: string - name: plan_id in: path description: Plan id to enroll the employee into required: true schema: type: string - name: Authorization in: header description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n" required: true schema: type: string responses: '200': description: Successful operation. content: application/json: schema: $ref: '#/components/schemas/Enrollments_enrollAnEmployeeInA401KPlan-v2026-01-01_Response_200' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' requestBody: content: application/json: schema: type: object properties: type: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaType' description: Type of the contribution for 401k. details: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaDetails' description: Object containing additional information about the enrollment. contribution_type: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaContributionType' description: Type of contribution. contribution_limit: type: number format: double description: Maximum limit of contribution. contribution_value: type: number format: double description: Value of the contribution. required: - type - contribution_limit get: operationId: get-enrollment-settings-from-an-employee-in-a-401-k-plan-v-2026-01-01 summary: Get enrollment settings from an employee in a 401k plan description: "Get enrollment settings from an employee in a 401k plan\n **Token scopes**: `benefits:read`" tags: - subpackage_enrollments parameters: - name: legal_entity_id in: path description: Legal entity id which employee/contract belongs required: true schema: type: string - name: contract_id in: path description: Contract id from the employee required: true schema: type: string - name: plan_id in: path description: Plan id to enroll the employee into required: true schema: type: string - name: Authorization in: header description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n" required: true schema: type: string responses: '200': description: Successful operation. content: application/json: schema: $ref: '#/components/schemas/Enrollments_getEnrollmentSettingsFromAnEmployeeInA401KPlan-v2026-01-01_Response_200' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' components: schemas: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaType: type: string enum: - ROTH - TRAD - LOAN - NEC description: Type of the contribution for 401k. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaType BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsType: type: string enum: - ROTH - TRAD - LOAN - NEC description: Type of the contribution for 401k. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsType ? BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsContributionType : type: string enum: - PERCENTAGE - FIXED_AMOUNT description: Type of contribution. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsContributionType Enrollments_enrollAnEmployeeInA401KPlan-v2026-01-01_Response_200: type: object properties: data: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaData' title: Enrollments_enrollAnEmployeeInA401KPlan-v2026-01-01_Response_200 BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaDetails: type: object properties: key: type: string description: A key-value pair providing additional details about the enrollment. description: Object containing additional information about the enrollment. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaDetails ApiError: type: object properties: message: type: string description: A description of the returned error path: type: string description: The JSON path where input validation failed title: ApiError BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItems: type: object properties: id: type: string description: Enrollment id. type: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsType' description: Type of the contribution for 401k. details: oneOf: - $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsDetails' - type: 'null' description: Object containing additional information about the enrollment. contribution_type: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsContributionType' description: Type of contribution. contribution_limit: type: number format: double description: Maximum limit of contribution. contribution_value: type: string description: Value of the contribution. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItems Enrollments_getEnrollmentSettingsFromAnEmployeeInA401KPlan-v2026-01-01_Response_200: type: object properties: data: type: array items: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItems' title: Enrollments_getEnrollmentSettingsFromAnEmployeeInA401KPlan-v2026-01-01_Response_200 ? BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaContributionType : type: string enum: - PERCENTAGE - FIXED_AMOUNT description: Type of contribution. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostRequestBodyContentApplicationJsonSchemaContributionType BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsDetails: type: object properties: key: type: string description: A key-value pair providing additional details about the enrollment. description: Object containing additional information about the enrollment. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdGetResponsesContentApplicationJsonSchemaDataItemsDetails ? BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataContributionType : type: string enum: - PERCENTAGE - FIXED_AMOUNT description: Type of contribution. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataContributionType ApiErrorContainer: type: object properties: request: $ref: '#/components/schemas/ApiErrorRequest' errors: type: array items: $ref: '#/components/schemas/ApiError' title: ApiErrorContainer BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataType: type: string enum: - ROTH - TRAD - LOAN - NEC description: Type of the contribution for 401k. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataType BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaData: type: object properties: id: type: string description: Enrollment id. type: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataType' description: Type of the contribution for 401k. details: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataDetails' description: Object containing additional information about the enrollment. contribution_type: $ref: '#/components/schemas/BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataContributionType' description: Type of contribution. contribution_limit: type: number format: double description: Maximum limit of contribution. contribution_value: type: number format: double description: Value of the contribution. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaData ApiErrorRequest: type: object properties: method: type: string description: The HTTP method of the failed request url: type: string description: The relative URL of the failed request status: type: number format: double description: The status code of the response api_req_id: type: string description: The request ID of the failed request docs: type: string description: A link to the official documentation for the requested endpoint resource source: type: string description: The source handler which produced the returned error code: type: number format: double description: The code of the source handler which produced the returned error title: ApiErrorRequest BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataDetails: type: object properties: key: type: string description: A key-value pair providing additional details about the enrollment. description: Object containing additional information about the enrollment. title: BenefitsLegalEntitiesLegalEntityIdContractsContractIdPlansPlanIdPostResponsesContentApplicationJsonSchemaDataDetails securitySchemes: deelToken: type: http scheme: bearer description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n" oauth2: type: http scheme: bearer description: Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/