# Create GroupFlex

Creates a new GroupFlex

Endpoint: POST /groups/{groupID}/flexes
Version: v1
Security: apiKeyAuth, bearerAuth

## Security:

  - `apiKeyAuth` (unknown)
    apiKey in header x-api-key

  - `bearerAuth` (unknown)
    http bearer JWT

## Path parameters:

  - `groupID` (string, required)
    Group ID

## Header parameters:

  - `vbasoftware-database` (string, required)
    Target database

## Request fields (application/json):

  - `group_ID` (string, required)
    References Groups.Group_ID value on the parent record.

  - `plan_ID` (string, required)
    References the Plans.Plan_ID on the parent record. Must be a plan with a plan type flagged as Flex.

  - `calendar_Year` (string, required)
    The numeric calendar year for this flex period. For example, 2022.

  - `contribution_Amount` (number)
    This is the employer contribution amount.

  - `contribution_Pct` (boolean, required)
    Indicates if the amount entered in "Contribution_Amount" is a percent or flat amount. Note: This field is marked as NOT NULL in the database and therefore required by the API.

  - `contribution_Pct_Type` (string)
    When "Contribution_Pct" is used, this notes what the contribution percentage is based upon: EMPELE - % of Employee Contribution, SALNET - % of Employee Net Salary, SALGROSS - % of Employee Gross Salary.

  - `contribution_Schedule` (string)
    References ContributionSchedule.Contribution_Schedule to define the employer contribution schedule for this flex offering.

  - `effective_Date` (string, required)
    The effective date for this flex period. Note: This field is marked as NOT NULL in the database and therefore required by the API.

  - `entry_Date` (string)
    Date when the record was first added to the system.

  - `entry_User` (string)
    User that first added the record to the system.

  - `first_Contribution_Date` (string)
    Notes the date that is the start date that employer contribution schedule will build upon to lay out the contributions for the flex period.

  - `first_Payment_Date` (string)
    Notes the date that is the start date that payment schedule will build upon to lay out the payment for the flex period.

  - `first_Reimburse_Date` (string)
    Notes the date that is the start date that reimbursement schedule will build upon to lay out the reimbursments for the flex period.

  - `flex_Vendor` (string)
    For EDI processing and integrations, notes the external flex vendor used for procesisng (typically card swipes).

  - `grace_Period` (integer)
    The grace period value based on "Grace_Period_Type" for how long you have to process a flex claim after the term date.

  - `grace_Period_Type` (string)
    Combined with "Grace_Period", notes the grace period in: D - Days or M - Months.

  - `max_Election` (number)
    The Max Election a member can enter for this offering.

  - `minimum_Payment` (number)
    The minimum payment that can be applied during flex claims processing.

  - `payment_Schedule` (string)
    References PaymentSchedule.Payment_Schedule to define the payment schedule for this flex offering.

  - `reimburse_Schedule` (string)
    References ReimburseSchedule.Reimburse_Schedule to define the reimbursement schedule for this flex offering.

  - `rollover_Amount` (number)
    The amount of flex contribution that can be rolled over to a subsquent flex offering on this same group.

  - `submit_Period` (integer)
    The submit period value based on "Submit_Period_Type" for how long you have to submit a flex claim after the term date.

  - `submit_Period_Type` (string)
    Combined with "Submit_Period", notes the submission period in: D - Days or M - Months.

  - `term_Date` (string, required)
    The term date for this flex period. Note: This field is marked as NOT NULL in the database and therefore required by the API.

  - `update_Date` (string)
    Date when the record was last updated in the system.

  - `update_User` (string)
    User that last updated the record in the system.

## Response 200:

  - `200` (unknown)
    Success

## Response 200 fields (application/json):

  - `data` (object)

  - `data.group_ID` (string, required)
    References Groups.Group_ID value on the parent record.

  - `data.plan_ID` (string, required)
    References the Plans.Plan_ID on the parent record. Must be a plan with a plan type flagged as Flex.

  - `data.calendar_Year` (string, required)
    The numeric calendar year for this flex period. For example, 2022.

  - `data.contribution_Amount` (number)
    This is the employer contribution amount.

  - `data.contribution_Pct` (boolean, required)
    Indicates if the amount entered in "Contribution_Amount" is a percent or flat amount. Note: This field is marked as NOT NULL in the database and therefore required by the API.

  - `data.contribution_Pct_Type` (string)
    When "Contribution_Pct" is used, this notes what the contribution percentage is based upon: EMPELE - % of Employee Contribution, SALNET - % of Employee Net Salary, SALGROSS - % of Employee Gross Salary.

  - `data.contribution_Schedule` (string)
    References ContributionSchedule.Contribution_Schedule to define the employer contribution schedule for this flex offering.

  - `data.effective_Date` (string, required)
    The effective date for this flex period. Note: This field is marked as NOT NULL in the database and therefore required by the API.

  - `data.entry_Date` (string)
    Date when the record was first added to the system.

  - `data.entry_User` (string)
    User that first added the record to the system.

  - `data.first_Contribution_Date` (string)
    Notes the date that is the start date that employer contribution schedule will build upon to lay out the contributions for the flex period.

  - `data.first_Payment_Date` (string)
    Notes the date that is the start date that payment schedule will build upon to lay out the payment for the flex period.

  - `data.first_Reimburse_Date` (string)
    Notes the date that is the start date that reimbursement schedule will build upon to lay out the reimbursments for the flex period.

  - `data.flex_Vendor` (string)
    For EDI processing and integrations, notes the external flex vendor used for procesisng (typically card swipes).

  - `data.grace_Period` (integer)
    The grace period value based on "Grace_Period_Type" for how long you have to process a flex claim after the term date.

  - `data.grace_Period_Type` (string)
    Combined with "Grace_Period", notes the grace period in: D - Days or M - Months.

  - `data.max_Election` (number)
    The Max Election a member can enter for this offering.

  - `data.minimum_Payment` (number)
    The minimum payment that can be applied during flex claims processing.

  - `data.payment_Schedule` (string)
    References PaymentSchedule.Payment_Schedule to define the payment schedule for this flex offering.

  - `data.reimburse_Schedule` (string)
    References ReimburseSchedule.Reimburse_Schedule to define the reimbursement schedule for this flex offering.

  - `data.rollover_Amount` (number)
    The amount of flex contribution that can be rolled over to a subsquent flex offering on this same group.

  - `data.submit_Period` (integer)
    The submit period value based on "Submit_Period_Type" for how long you have to submit a flex claim after the term date.

  - `data.submit_Period_Type` (string)
    Combined with "Submit_Period", notes the submission period in: D - Days or M - Months.

  - `data.term_Date` (string, required)
    The term date for this flex period. Note: This field is marked as NOT NULL in the database and therefore required by the API.

  - `data.update_Date` (string)
    Date when the record was last updated in the system.

  - `data.update_User` (string)
    User that last updated the record in the system.

  - `error` (object)

  - `error.detail` (string)
    A human-readable explanation specific to this occurrence of the problem.

  - `error.instance` (string)
    A URI reference that identifies the specific occurrence of the problem.It may
or may not yield further information if dereferenced.

  - `error.status` (integer)
    The HTTP status code([RFC7231], Section 6) generated by the origin server for
this occurrence of the problem.

  - `error.title` (string)
    A short, human-readable summary of the problem type.It SHOULD NOT change from
occurrence to occurrence of the problem, except for purposes of localization(e.g.,
using proactive content negotiation; see[RFC7231], Section 3.4).

  - `error.type` (string)
    A URI reference [RFC3986] that identifies the problem type. This specification
encourages that, when dereferenced, it provide human-readable documentation for
the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member
is not present, its value is assumed to be "about:blank".

  - `debug` (object)

  - `debug.activityID` (string, required)

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 403:

  - `403` (unknown)
    Forbidden. The x-api-key header is missing or not valid. The API gateway sends this response, not VBAPI, so the body is not the VBAPI envelope; see Errors and troubleshooting.

## Response 429:

  - `429` (unknown)
    Too many requests. The limit is 25 requests per second sustained, with bursts up to 50, per API key. Wait and retry with exponential backoff and jitter.

