# Activate a product or update product booking

This endpoint activates or updates a product for a user in a gym. The product is active starting from the specified start date to the end date in Timezone of the club.

Endpoint: PUT /api/v2/accounts/{accountId}/products
Version: 2.0.0
Security: mms

## Security:

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

## Path parameters:

  - `accountId` (string, required)

## Request fields (application/json):

  - `productId` (string, required)
    The ID of the product.

  - `startDate` (string)
    The date from which the specified product is active and can be used by the user. It must be today’s or future date in Timezone of the club. format: yyyy-MM-dd

  - `endDate` (string)
    The date to which the specified product is active and can be used by the user. It must be future date in Timezone of the club. format: yyyy-MM-dd. Max date is 2050-12-31

## Response 200:

  - `200` (unknown)
    Ok

## Response 200 fields (application/json):

  - `productId` (string, required)
    The ID of the product.

  - `startDate` (string)
    The date from which the specified product is active and can be used by the user. It must be today’s or future date in Timezone of the club. format: yyyy-MM-dd

  - `endDate` (string)
    The date to which the specified product is active and can be used by the user. It must be future date in Timezone of the club. format: yyyy-MM-dd. Max date is 2050-12-31

## Response 201:

  - `201` (unknown)
    Created

## Response 201 fields (application/json):

  - `productId` (string, required)
    The ID of the product.

  - `startDate` (string)
    The date from which the specified product is active and can be used by the user. It must be today’s or future date in Timezone of the club. format: yyyy-MM-dd

  - `endDate` (string)
    The date to which the specified product is active and can be used by the user. It must be future date in Timezone of the club. format: yyyy-MM-dd. Max date is 2050-12-31

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `timestamp` (string)
    The timestamp of the request.

  - `path` (string)
    The path requested.

  - `requestId` (string)
    The request ID.
    Example: de625cf1-1

  - `status` (integer)
    The http status code.

  - `error` (string)
    The error.

  - `errorCode` (string)
    The static error code.

  - `message` (string)
    The message to describe the error.

  - `fieldErrors` (array)
    The constraint violations.

  - `fieldErrors.name` (string)
    The field name.
    Example: age

  - `fieldErrors.message` (string)
    The error message.
    Example: Must be greater than 10.

  - `fieldErrors.rejectedValue` (any)
    The rejected value.
    Example: 3

  - `metadata` (object)
    Additional information of the error context

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `timestamp` (string)
    The timestamp of the request.

  - `path` (string)
    The path requested.

  - `requestId` (string)
    The request ID.
    Example: de625cf1-1

  - `status` (integer)
    The http status code.

  - `error` (string)
    The error.

  - `errorCode` (string)
    The static error code.

  - `message` (string)
    The message to describe the error.

  - `fieldErrors` (array)
    The constraint violations.

  - `fieldErrors.name` (string)
    The field name.
    Example: age

  - `fieldErrors.message` (string)
    The error message.
    Example: Must be greater than 10.

  - `fieldErrors.rejectedValue` (any)
    The rejected value.
    Example: 3

  - `metadata` (object)
    Additional information of the error context

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `timestamp` (string)
    The timestamp of the request.

  - `path` (string)
    The path requested.

  - `requestId` (string)
    The request ID.
    Example: de625cf1-1

  - `status` (integer)
    The http status code.

  - `error` (string)
    The error.

  - `errorCode` (string)
    The static error code.

  - `message` (string)
    The message to describe the error.

  - `fieldErrors` (array)
    The constraint violations.

  - `fieldErrors.name` (string)
    The field name.
    Example: age

  - `fieldErrors.message` (string)
    The error message.
    Example: Must be greater than 10.

  - `fieldErrors.rejectedValue` (any)
    The rejected value.
    Example: 3

  - `metadata` (object)
    Additional information of the error context

## Response 404:

  - `404` (unknown)
    Not Found

## Response 404 fields (application/json):

  - `timestamp` (string)
    The timestamp of the request.

  - `path` (string)
    The path requested.

  - `requestId` (string)
    The request ID.
    Example: de625cf1-1

  - `status` (integer)
    The http status code.

  - `error` (string)
    The error.

  - `errorCode` (string)
    The static error code.

  - `message` (string)
    The message to describe the error.

  - `fieldErrors` (array)
    The constraint violations.

  - `fieldErrors.name` (string)
    The field name.
    Example: age

  - `fieldErrors.message` (string)
    The error message.
    Example: Must be greater than 10.

  - `fieldErrors.rejectedValue` (any)
    The rejected value.
    Example: 3

  - `metadata` (object)
    Additional information of the error context

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `timestamp` (string)
    The timestamp of the request.

  - `path` (string)
    The path requested.

  - `requestId` (string)
    The request ID.
    Example: de625cf1-1

  - `status` (integer)
    The http status code.

  - `error` (string)
    The error.

  - `errorCode` (string)
    The static error code.

  - `message` (string)
    The message to describe the error.

  - `fieldErrors` (array)
    The constraint violations.

  - `fieldErrors.name` (string)
    The field name.
    Example: age

  - `fieldErrors.message` (string)
    The error message.
    Example: Must be greater than 10.

  - `fieldErrors.rejectedValue` (any)
    The rejected value.
    Example: 3

  - `metadata` (object)
    Additional information of the error context

