<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create(cls, name, status, avatar_uuid, monetary_account_id=None, location=None, notification_filters=None, tab_text_waiting_screen=None, custom_headers=None):
 """ Create a new CashRegister. Only an UserCompany can create a CashRegisters. They need to be created with status PENDING_APPROVAL, an bunq admin has to approve your CashRegister before you can use it. In the sandbox testing environment an CashRegister will be automatically approved immediately after creation. :type user_id: int :type monetary_account_id: int :param name: The name of the CashRegister. Must be unique for this MonetaryAccount. :type name: str :param status: The status of the CashRegister. Can only be created or updated with PENDING_APPROVAL or CLOSED. :type status: str :param avatar_uuid: The UUID of the avatar of the CashRegister. Use the calls /attachment-public and /avatar to create a new Avatar and get its UUID. :type avatar_uuid: str :param location: The geolocation of the CashRegister. :type location: object_.Geolocation :param notification_filters: The types of notifications that will result in a push notification or URL callback for this CashRegister. :type notification_filters: list[object_.NotificationFilter] :param tab_text_waiting_screen: The tab text for waiting screen of CashRegister. :type tab_text_waiting_screen: list[object_.TabTextWaitingScreen] :type custom_headers: dict[str, str]|None :rtype: BunqResponseInt """


        if custom_headers is None:
            custom_headers = {}

        request_map = {
            cls.FIELD_NAME: name,
            cls.FIELD_STATUS: status,
            cls.FIELD_AVATAR_UUID: avatar_uuid,
            cls.FIELD_LOCATION: location,
            cls.FIELD_NOTIFICATION_FILTERS: notification_filters,
            cls.FIELD_TAB_TEXT_WAITING_SCREEN: tab_text_waiting_screen
        }
        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))
        response_raw = api_client.post(endpoint_url, request_bytes,
                                       custom_headers)

        return BunqResponseInt.cast_from_bunq_response(
            cls._process_for_id(response_raw)
        )