def payment(self, amount, **kwargs):
params = self.config.clone().update({ '<STR_LIT>': amount }).update(kwargs)<EOL>mandatory = ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>']<EOL>for field in mandatory:<EOL><INDENT>if not params.has(field):<EOL><INDENT>raise ValueError('<STR_LIT>'.format(field))<EOL><DEDENT><DEDENT>params.reasons = [sofort.internals.strip_reason(reason)<EOL>for reason<EOL>in params.reasons]<EOL>return self._request(sofort.xml.multipay(params), params)<EOL>
Get payment URL and new transaction ID

        Usage::

            >>> import sofort
            >>> client = sofort.Client('123456', '123456', '123456',
                                       abort_url='https://mysite.com/abort')
            >>> t = client.pay(12, success_url='http://mysite.com?paid')

            >>> t.transaction
            123123-321231-56A3BE0E-ACAB
            >>> t.payment_url
            https://www.sofort.com/payment/go/136b2012718da216af4c20c2ec2f51100c90406e