'Initiates an Express Checkout transaction.
Optionally, the SetExpressCheckout API operation can set up billing agreements for
reference transactions and recurring payments.
Returns a NVP instance - check for token and payerid to continue!'

def setExpressCheckout(self, params):

    if ('amt' in params):
        import warnings
        warnings.warn("'amt'    has    been    deprecated.    'paymentrequest_0_amt'    should    be    used    instead.", DeprecationWarning)
        params = params.copy()
        params.update({'paymentrequest_0_amt': params['amt']})
        del params['amt']
    if self._is_recurring(params):
        params = self._recurring_setExpressCheckout_adapter(params)
    defaults = {'method': 'SetExpressCheckout', 'noshipping': 1}
    required = ['returnurl', 'cancelurl', 'paymentrequest_0_amt']
    nvp_obj = self._fetch(params, required, defaults)
    if nvp_obj.flag:
        raise PayPalFailure(nvp_obj.flag_info)
    return nvp_obj
