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)

def create_new_sale(self, amount, purpose, payment_reference=None, order_id=None, channel_id=None, capture=True):
        """
        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)
        """
        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')