Send an HTTP POST request to QuadrigaCX.

        :param endpoint: API endpoint.
        :type endpoint: str | unicode
        :param payload: Request payload.
        :type payload: dict
        :return: Response body from QuadrigaCX.
        :rtype: dict
        :raise quadriga.exceptions.RequestError: If HTTP OK was not returned.

def post(self, endpoint, payload=None):
        """Send an HTTP POST request to QuadrigaCX.

        :param endpoint: API endpoint.
        :type endpoint: str | unicode
        :param payload: Request payload.
        :type payload: dict
        :return: Response body from QuadrigaCX.
        :rtype: dict
        :raise quadriga.exceptions.RequestError: If HTTP OK was not returned.
        """
        nonce = int(time.time() * 10000)
        hmac_msg = str(nonce) + self._client_id + self._api_key
        signature = hmac.new(
            key=self._hmac_key,
            msg=hmac_msg.encode('utf-8'),
            digestmod=hashlib.sha256
        ).hexdigest()

        if payload is None:
            payload = {}
        payload['key'] = self._api_key
        payload['nonce'] = nonce
        payload['signature'] = signature

        response = self._session.post(
            url=self._url + endpoint,
            json=payload,
            timeout=self._timeout
        )
        return self._handle_response(response)