def create(cls, cash_register_id, tab_uuid, description,
               monetary_account_id=None, ean_code=None,
               avatar_attachment_uuid=None, tab_attachment=None, quantity=None,
               amount=None, custom_headers=None):
        """
        Create a new TabItem for a given Tab.

        :type user_id: int
        :type monetary_account_id: int
        :type cash_register_id: int
        :type tab_uuid: str
        :param description: The TabItem's brief description. Can't be empty and
        must be no longer than 100 characters
        :type description: str
        :param ean_code: The TabItem's EAN code.
        :type ean_code: str
        :param avatar_attachment_uuid: An AttachmentPublic UUID that used as an
        avatar for the TabItem.
        :type avatar_attachment_uuid: str
        :param tab_attachment: A list of AttachmentTab attached to the TabItem.
        :type tab_attachment: list[int]
        :param quantity: The quantity of the TabItem. Formatted as a number
        containing up to 15 digits, up to 15 decimals and using a dot.
        :type quantity: str
        :param amount: The money amount of the TabItem. Will not change the
        value of the corresponding Tab.
        :type amount: object_.Amount
        :type custom_headers: dict[str, str]|None

        :rtype: BunqResponseInt
        """

        if custom_headers is None:
            custom_headers = {}

        request_map = {
            cls.FIELD_DESCRIPTION: description,
            cls.FIELD_EAN_CODE: ean_code,
            cls.FIELD_AVATAR_ATTACHMENT_UUID: avatar_attachment_uuid,
            cls.FIELD_TAB_ATTACHMENT: tab_attachment,
            cls.FIELD_QUANTITY: quantity,
            cls.FIELD_AMOUNT: amount
        }
        request_map_string = converter.class_to_json(request_map)
        request_map_string = cls._remove_field_for_request(request_map_string)

        api_client = client.ApiClient(cls._get_api_context())
        request_bytes = request_map_string.encode()
        endpoint_url = cls._ENDPOINT_URL_CREATE.format(cls._determine_user_id(),
                                                       cls._determine_monetary_account_id(
                                                           monetary_account_id),
                                                       cash_register_id,
                                                       tab_uuid)
        response_raw = api_client.post(endpoint_url, request_bytes,
                                       custom_headers)

        return BunqResponseInt.cast_from_bunq_response(
            cls._process_for_id(response_raw)
        )
Create a new TabItem for a given Tab.

        :type user_id: int
        :type monetary_account_id: int
        :type cash_register_id: int
        :type tab_uuid: str
        :param description: The TabItem's brief description. Can't be empty and
        must be no longer than 100 characters
        :type description: str
        :param ean_code: The TabItem's EAN code.
        :type ean_code: str
        :param avatar_attachment_uuid: An AttachmentPublic UUID that used as an
        avatar for the TabItem.
        :type avatar_attachment_uuid: str
        :param tab_attachment: A list of AttachmentTab attached to the TabItem.
        :type tab_attachment: list[int]
        :param quantity: The quantity of the TabItem. Formatted as a number
        containing up to 15 digits, up to 15 decimals and using a dot.
        :type quantity: str
        :param amount: The money amount of the TabItem. Will not change the
        value of the corresponding Tab.
        :type amount: object_.Amount
        :type custom_headers: dict[str, str]|None

        :rtype: BunqResponseInt