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

The package is compatible with Python versions 3.7+. Install the package from PyPi using the following pip command:

pip install paypal-server-sdk==2.3.0

You can also view the package at: https://pypi.python.org/pypi/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
http_client_instanceUnion[Session, HttpClientProvider]The Http Client passed from the sdk user for making requests
override_http_client_configurationboolThe value which determines to override properties of the passed Http Client from the sdk user
http_call_backHttpCallBackThe callback value that is invoked before and after an HTTP call is made to an endpoint
timeoutfloatThe value to use for connection timeout.
Default: 60
max_retriesintThe number of times to retry an endpoint call if it fails.
Default: 0
backoff_factorfloatA backoff factor to apply between attempts after the second try.
Default: 2
retry_statusesArray of intThe http statuses on which retry is to be done.
Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]
retry_methodsArray of stringThe http methods on which retry is to be done.
Default: ["GET", "PUT"]
proxy_settingsProxySettingsOptional proxy configuration to route HTTP requests through a proxy server.
logging_configurationLoggingConfigurationThe SDK logging configuration for API calls
client_credentials_auth_credentialsClientCredentialsAuthCredentialsThe credential object for OAuth 2 Client Credentials Grant

The API client can be initialized as follows:

Code-Based Client Initialization

import logging

from paypalserversdk.configuration import Environment
from paypalserversdk.http.auth.o_auth_2 import ClientCredentialsAuthCredentials
from paypalserversdk.logging.configuration.api_logging_configuration import LoggingConfiguration
from paypalserversdk.logging.configuration.api_logging_configuration import RequestLoggingConfiguration
from paypalserversdk.logging.configuration.api_logging_configuration import ResponseLoggingConfiguration
from paypalserversdk.paypal_serversdk_client import PaypalServersdkClient

client = PaypalServersdkClient(
    client_credentials_auth_credentials=ClientCredentialsAuthCredentials(
        o_auth_client_id='OAuthClientId',
        o_auth_client_secret='OAuthClientSecret'
    ),
    environment=Environment.SANDBOX,
    logging_configuration=LoggingConfiguration(
        log_level=logging.INFO,
        request_logging_config=RequestLoggingConfiguration(
            log_body=True
        ),
        response_logging_config=ResponseLoggingConfiguration(
            log_headers=True
        )
    )
)

Environment-Based Client Initialization

from paypalserversdk.paypal_serversdk_client import PaypalServersdkClient

# Specify the path to your .env file if it’s located outside the project’s root directory.
client = PaypalServersdkClient.from_environment(dotenv_path='/path/to/.env')

See the Environment-Based Client Initialization section for details.

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