# 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`](logging-configuration-builder.md) | Represents the logging 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 $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(); ``` API calls return an `ApiResponse` object that includes the following fields: | Field | Description | | --- | --- | | `getStatusCode` | Status code of the HTTP response | | `getHeaders` | Headers of the HTTP response as a Hash | | `getResult` | The deserialized body of the HTTP response as a String | ## 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 | | getOAuthAuthorizationController() | Gets OAuthAuthorizationController |