public function p2p($notificationurl,$enduserid, $messageid,
		$locale=NULL, $amount=NULL, $currency=NULL, $country=NULL,
		$mobilephone=NULL, $firstname=NULL, $lastname=NULL,
		$nationalidentificationnumber=NULL, $shopperstatement=NULL,
		$ip=NULL, $successurl=NULL, $failurl=NULL, $templateurl=NULL,
		$urltarget=NULL, $suggestedminamount=NULL, $suggestedmaxamount=NULL,
		$integrationmodule=NULL, $holdnotifications=NULL,
		$authorizeonly=NULL, $templatedata=NULL) {

			$data = array(
				'NotificationURL' => $notificationurl,
				'EndUserID' => $enduserid,
				'MessageID' => $messageid
			);

			$attributes = array(
				'AuthorizeOnly' => $this->apiBool($authorizeonly),
				'TemplateData' => $templatedata,

				'Locale' => $locale,
				'Amount' => $amount,
				'Currency' => $currency,
				'Country' => $country,
				'MobilePhone' => $mobilephone,
				'Firstname' => $firstname,
				'Lastname' => $lastname,
				'NationalIdentificationNumber' => $nationalidentificationnumber,
				'ShopperStatement' => $shopperstatement,
				'IP' => $ip,
				'SuccessURL' => $successurl,
				'FailURL' => $failurl,
				'TemplateURL' => $templateurl,
				'URLTarget' => $urltarget,
				'SuggestedMinAmount' => $suggestedminamount,
				'SuggestedMaxAmount' => $suggestedmaxamount,
				'IntegrationModule' => $integrationmodule
			);

			if($holdnotifications) {
				$attributes['HoldNotifications'] = 1;
			}

			$request = new Trustly_Data_JSONRPCRequest('P2P', $data, $attributes);
			return $this->call($request);
	}