v0.4.3 2013-01-14 13:39 UTC



PayPal's PHP Adaptive Payments SDK requires

  • PHP 5.2 and above with curl/openssl extensions enabled

Using the SDK

To use the SDK,

  • Copy the config and lib folders into your project. Modify the config file to suit your needs.
  • Make sure that the lib folder in your project is available in PHP's include path
  • Include the services\AdaptivePayments\AdaptivePaymentsService.php file in your code.
  • Instantiate a service wrapper object
  • Instantiate a request object as per your project's needs. All the API request and response classes are available in services\AdaptivePayments\AdaptivePaymentsService.php
  • Invoke the appropriate method on the service object passing in the request object.

For example,


    $payRequest = new PayRequest($requestEnvelope, $actionType, $cancelUrl, 
                                  $currencyCode, $receiverList, $returnUrl);
    // Add optional params
    if($_POST["feesPayer"] != "") {
	   $payRequest->feesPayer = $_POST["feesPayer"];

	$service = new AdaptivePaymentsService();
	$response = $service->Pay($payRequest);	
	$ack = strtoupper($response->responseEnvelope->ack); 
	if($ack == 'SUCCESS') {
		// Success

The SDK provides multiple ways to authenticate your API call.

	$service = new AdaptivePaymentsService();
	// Use the default account (the first account) configured in sdk_config.ini
	$response = $service->Pay($payRequest);	

	// Use a specific account configured in sdk_config.inig
	$response = $service->Pay($payRequest, '');	
	// Pass in a dynamically created API credential object
    $cred = new PPCertificateCredential("username", "password", "path-to-pem-file");
    $cred->setThirdPartyAuthorization(new PPTokenAuthorization("accessToken", "tokenSecret"));
	$response = $service->Pay($payRequest, $cred);	

SDK Configuration

Replace the API credential in config/sdk_config.ini . You can use the configuration file to configure

  • (Multiple) API account credentials.
  • Service endpoint and other HTTP connection parameters
  • Logging

Please refer to the sample config file provided with this bundle.

Using multiple SDKs together

*copy the contents in 'lib/service/' to one of the SDKs *add the service endpoint to 'config/sdk_config.ini', for the endpoints refer the list below

Endpoint Configuration

*The list below specifies endpoints for different services, in SANDBOX and PRODUCTION, with their property keys and end-point as property values.



For additional information please refer to

Instant Payment Notification (IPN)

refer to the IPN-README in 'samples/IPN' directory

Getting help

If you need help using the SDK, a new feature that you need or have a issue to report, please visit