Executes the HTTP POST request

        :param endpoint: string indicating the URL component to call
        :param data: the data to submit
        :return: the dumped JSON response content

def post(self, endpoint, data):
        """
        Executes the HTTP POST request

        :param endpoint: string indicating the URL component to call
        :param data: the data to submit
        :return: the dumped JSON response content
        """
        headers = {
            "Content-Type": "application/json",
            "Accept": "application/json",
            "x-standardize-only": "true" if self.standardize else "false",
            "x-include-invalid": "true" if self.invalid else "false",
            "x-accept-keypair": "true" if self.accept_keypair else "false",
        }
        if not self.logging:
            headers["x-suppress-logging"] = "true"

        params = {"auth-id": self.auth_id, "auth-token": self.auth_token}
        url = self.BASE_URL + endpoint
        response = self.session.post(
            url,
            json.dumps(stringify(data)),
            params=params,
            headers=headers,
            timeout=self.timeout,
        )
        if response.status_code == 200:
            return response.json()

        raise ERROR_CODES.get(response.status_code, SmartyStreetsError)