<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def payment(self, amount, **kwargs):
 """Get payment URL and new transaction ID Usage:: abort_url='https://mysite.com/abort') 123123-321231-56A3BE0E-ACAB https://www.sofort.com/payment/go/136b2012718da216af4c20c2ec2f51100c90406e """

        params = self.config.clone()\
            .update({ 'amount': amount })\
            .update(kwargs)

        mandatory = ['abort_url', 'reasons', 'success_url']

        for field in mandatory:
            if not params.has(field):
                raise ValueError('Mandatory field "{}" is not specified'.format(field))

        params.reasons = [sofort.internals.strip_reason(reason)
                                for reason
                                in params.reasons]

        return self._request(sofort.xml.multipay(params), params)