code: def create_signature(self, base_url, payload=None):
          
          url = urlparse(base_url)
  
          url_to_sign = "{path}?{query}".format(path=url.path, query=url.query)
  
          converted_payload = self._convert(payload)
  
          decoded_key = base64.urlsafe_b64decode(self.private_key.encode('utf-8'))
          signature = hmac.new(decoded_key, str.encode(url_to_sign + converted_payload), hashlib.sha256)
          return bytes.decode(base64.urlsafe_b64encode(signature.digest()))
docs: Creates unique signature for request.
          Make sure ALL 'GET' and 'POST' data is already included before
          creating the signature or receiver won't be able to re-create it.
  
          :param base_url:
              The url you'll using for your request.
          :param payload:
              The POST data that you'll be sending.