# Client Class Documentation The following parameters are configurable for the API Client: | Parameter | Type | Description | | --- | --- | --- | | environment | `Environment` | The API environment.
**Default: `Environment.SANDBOX`** | | timeout | `int` | Timeout for API calls in seconds.
*Default*: `0` | | enableRetries | `bool` | Whether to enable retries and backoff feature.
*Default*: `false` | | numberOfRetries | `int` | The number of retries to make.
*Default*: `0` | | retryInterval | `float` | The retry time interval between the endpoint calls.
*Default*: `1` | | backOffFactor | `float` | Exponential backoff factor to increase interval between retries.
*Default*: `2` | | maximumRetryWaitTime | `int` | The maximum wait time in seconds for overall retrying requests.
*Default*: `0` | | retryOnTimeout | `bool` | Whether to retry on request timeout.
*Default*: `true` | | httpStatusCodesToRetry | `array` | Http status codes to retry against.
*Default*: `408, 413, 429, 500, 502, 503, 504, 521, 522, 524` | | httpMethodsToRetry | `array` | Http methods to retry against.
*Default*: `'GET', 'PUT'` | | loggingConfiguration | [`LoggingConfigurationBuilder`](../doc/logging-configuration-builder.md) | Represents the logging configurations for API calls | | proxyConfiguration | [`ProxyConfigurationBuilder`](../doc/proxy-configuration-builder.md) | Represents the proxy configurations for API calls | | clientCredentialsAuth | [`ClientCredentialsAuth`](auth/oauth-2-client-credentials-grant.md) | The Credentials Setter for OAuth 2 Client Credentials Grant | The API client can be initialized as follows: ```php 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(); ``` ## PayPal Server SDK Client The gateway for the SDK. This class acts as a factory for the Controllers and also holds the configuration of the SDK. ## Controllers | Name | Description | | --- | --- | | getOrdersController() | Gets OrdersController | | getPaymentsController() | Gets PaymentsController | | getVaultController() | Gets VaultController | | getTransactionSearchController() | Gets TransactionSearchController | | getSubscriptionsController() | Gets SubscriptionsController | | getOAuthAuthorizationController() | Gets OAuthAuthorizationController |