code: def create_new_sale(self, amount, purpose, payment_reference=None, order_id=None, channel_id=None, capture=True):
          
          request_data = {
              "amount": self.base.convert_decimal_to_hundreds(amount),
              "currency": self.currency,
              "purpose": purpose,
              "capture": capture
          }
  
          if payment_reference:
              request_data['paymentreference'] = payment_reference
  
          if order_id:
              request_data['orderid'] = order_id
  
          if channel_id:
              request_data['channelid'] = channel_id
  
          url = "%s%s" % (self.api_endpoint, constants.NEW_SALE_ENDPOINT)
  
          username = self.base.get_username()
          password = self.base.get_password(username=username, request_url=url)
  
          response = requests.post(url, json=request_data, auth=HTTPBasicAuth(username=username, password=password))
  
          if not self.base.verify_response(response.json()):
              raise SignatureValidationException('Server signature verification has failed')
  
          response_json = response.json()
  
          return response_json.get('transactionid'), response_json.get('paymenttokennumber'), response_json.get('status')
docs: Create new sale.
          :param amount: 
          :param purpose: 
          :param payment_reference: 
          :param order_id: 
          :param channel_id: 
          :param capture: 
          :return: tuple (transaction_id, payment_token_number, status)