def create_one_time_invoice(self, charges):
        data = {}
        for n, charge in enumerate(charges):
            each_amount = Decimal(charge['each_amount'])
            each_amount = each_amount.quantize(Decimal('.01'))
            data['charges[%d][chargeCode]' % n ] = charge['code']
            data['charges[%d][quantity]' % n] = charge.get('quantity', 1)
            data['charges[%d][eachAmount]' % n] = '%.2f' % each_amount
            if 'description' in charge.keys():
                data['charges[%d][description]' % n] = charge['description']

        response = self.product.client.make_request(
            path='invoices/new',
            params={'code': self.code},
            data=data,
        )
        return self.load_data_from_xml(response.content)
Charges should be a list of charges to execute immediately.  Each
dataset/ETHPy150Open SeanOC/sharpy/sharpy/product.py/Customer.create_one_time_invoice