Getting Started with PayPal Server SDK

June 5, 2026 ยท View on GitHub

Introduction

Important Notes

  • Available Features: This SDK currently contains only 5 of PayPal's API endpoints. Additional endpoints and functionality will be added in the future.

Information

The PayPal Server SDK provides integration access to the PayPal REST APIs. The API endpoints are divided into distinct controllers:

Install the Package

Run the following command to install the package and automatically add the dependency to your composer.json file:

composer require "paypal/paypal-server-sdk:2.3.0"

Or add it to the composer.json file manually as given below:

"require": {
    "paypal/paypal-server-sdk": "2.3.0"
}

You can also view the package at: https://packagist.org/packages/paypal/paypal-server-sdk#2.3.0

Initialize the API Client

Note: Documentation for the client can be found here.

The following parameters are configurable for the API Client:

ParameterTypeDescription
environmentEnvironmentThe API environment.
Default: Environment.SANDBOX
timeoutintTimeout for API calls in seconds.
Default: 0
enableRetriesboolWhether to enable retries and backoff feature.
Default: false
numberOfRetriesintThe number of retries to make.
Default: 0
retryIntervalfloatThe retry time interval between the endpoint calls.
Default: 1
backOffFactorfloatExponential backoff factor to increase interval between retries.
Default: 2
maximumRetryWaitTimeintThe maximum wait time in seconds for overall retrying requests.
Default: 0
retryOnTimeoutboolWhether to retry on request timeout.
Default: true
httpStatusCodesToRetryarrayHttp status codes to retry against.
Default: 408, 413, 429, 500, 502, 503, 504, 521, 522, 524
httpMethodsToRetryarrayHttp methods to retry against.
Default: 'GET', 'PUT'
loggingConfigurationLoggingConfigurationBuilderRepresents the logging configurations for API calls
proxyConfigurationProxyConfigurationBuilderRepresents the proxy configurations for API calls
clientCredentialsAuthClientCredentialsAuthThe Credentials Setter for OAuth 2 Client Credentials Grant

The API client can be initialized as follows:

use PaypalServerSdkLib\Logging\LoggingConfigurationBuilder;
use PaypalServerSdkLib\Logging\RequestLoggingConfigurationBuilder;
use PaypalServerSdkLib\Logging\ResponseLoggingConfigurationBuilder;
use Psr\Log\LogLevel;
use PaypalServerSdkLib\Environment;
use PaypalServerSdkLib\Authentication\ClientCredentialsAuthCredentialsBuilder;
use PaypalServerSdkLib\PaypalServerSdkClientBuilder;

$client = PaypalServerSdkClientBuilder::init()
    ->clientCredentialsAuthCredentials(
        ClientCredentialsAuthCredentialsBuilder::init(
            'OAuthClientId',
            'OAuthClientSecret'
        )
    )
    ->environment(Environment::SANDBOX)
    ->loggingConfiguration(
        LoggingConfigurationBuilder::init()
            ->level(LogLevel::INFO)
            ->requestConfiguration(RequestLoggingConfigurationBuilder::init()->body(true))
            ->responseConfiguration(ResponseLoggingConfigurationBuilder::init()->headers(true))
    )
    ->build();

Environments

The SDK can be configured to use a different environment for making API calls. Available environments are:

Fields

NameDescription
PRODUCTIONPayPal Live Environment
SANDBOXDefault PayPal Sandbox Environment

Authorization

This API uses the following authentication schemes.

List of APIs

SDK Infrastructure

Configuration

HTTP

Utilities