# PayPal-Ruby-Server-SDK
**Repository Path**: mirrors_paypal/PayPal-Ruby-Server-SDK
## Basic Information
- **Project Name**: PayPal-Ruby-Server-SDK
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-09-11
- **Last Updated**: 2026-04-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Getting Started with PayPal Server SDK
## 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:
- Orders Controller: [Orders API v2](https://developer.paypal.com/docs/api/orders/v2/)
- Payments Controller: [Payments API v2](https://developer.paypal.com/docs/api/payments/v2)
- Vault Controller: [Payment Method Tokens API v3](https://developer.paypal.com/docs/api/payment-tokens/v3/) *Available in the US only.*
- Transaction Search Controller: [Transaction Search API v1](https://developer.paypal.com/docs/api/transaction-search/v1/)
- Subscriptions Controller: [Subscriptions API v1](https://developer.paypal.com/docs/api/subscriptions/v1/)
## Install the Package
Install the gem from the command line:
```bash
gem install paypal-server-sdk -v 2.2.0
```
Or add the gem to your Gemfile and run `bundle`:
```ruby
gem 'paypal-server-sdk', '2.2.0'
```
For additional gem details, see the [RubyGems page for the paypal-server-sdk gem](https://rubygems.org/gems/paypal-server-sdk/versions/2.2.0).
## IRB Console Usage
You can explore the SDK interactively using IRB in two ways
### 1. Use IRB with Installed Gem
Open your system terminal (Command Prompt, Git Bash or macOS Terminal) and type the following command to start the irb console.
```bash
irb
```
Now you can load the SDK in the IRB
```ruby
require 'paypal_server_sdk'
include PaypalServerSdk
```
### 2. Use IRB within SDK
Open your system terminal (Command Prompt, Git Bash or macOS Terminal) and navigate to the root folder of SDK.
```
cd path/to/paypal_server_sdk
```
Now you can start the preconfigured irb console by running the following command
```bash
ruby bin/console
```
**_Note:_** This automatically loads the SDK from lib/
## Initialize the API Client
**_Note:_** Documentation for the client can be found [here.](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/client.md)
The following parameters are configurable for the API Client:
| Parameter | Type | Description |
| --- | --- | --- |
| environment | `Environment` | The API environment.
**Default: `Environment.SANDBOX`** |
| connection | `Faraday::Connection` | The Faraday connection object passed by the SDK user for making requests |
| adapter | `Faraday::Adapter` | The Faraday adapter object passed by the SDK user for performing http requests |
| timeout | `Float` | The value to use for connection timeout.
**Default: 60** |
| max_retries | `Integer` | The number of times to retry an endpoint call if it fails.
**Default: 0** |
| retry_interval | `Float` | Pause in seconds between retries.
**Default: 1** |
| backoff_factor | `Float` | The amount to multiply each successive retry's interval amount by in order to provide backoff.
**Default: 2** |
| retry_statuses | `Array` | A list of HTTP statuses to retry.
**Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
| retry_methods | `Array` | A list of HTTP methods to retry.
**Default: %i[get put]** |
| http_callback | `HttpCallBack` | The Http CallBack allows defining callables for pre and post API calls. |
| proxy_settings | [`ProxySettings`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/proxy-settings.md) | Optional proxy configuration to route HTTP requests through a proxy server. |
| logging_configuration | [`LoggingConfiguration`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/logging-configuration.md) | The SDK logging configuration for API calls |
| client_credentials_auth_credentials | [`ClientCredentialsAuthCredentials`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/auth/oauth-2-client-credentials-grant.md) | The credential object for OAuth 2 Client Credentials Grant |
The API client can be initialized as follows:
### Code-Based Client Initialization
```ruby
require 'paypal_server_sdk'
include PaypalServerSdk
client = Client.new(
client_credentials_auth_credentials: ClientCredentialsAuthCredentials.new(
o_auth_client_id: 'OAuthClientId',
o_auth_client_secret: 'OAuthClientSecret'
),
environment: Environment::SANDBOX,
logging_configuration: LoggingConfiguration.new(
log_level: Logger::INFO,
request_logging_config: RequestLoggingConfiguration.new(
log_body: true
),
response_logging_config: ResponseLoggingConfiguration.new(
log_headers: true
)
)
)
```
### Environment-Based Client Initialization
```ruby
require 'paypal_server_sdk'
include PaypalServerSdk
# Create client from environment
client = Client.from_env
```
See the [`Environment-Based Client Initialization`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/environment-based-client-initialization.md) section for details.
## Environments
The SDK can be configured to use a different environment for making API calls. Available environments are:
### Fields
| Name | Description |
| --- | --- |
| Production | PayPal Live Environment |
| Sandbox | **Default** PayPal Sandbox Environment |
## Authorization
This API uses the following authentication schemes.
* [`Oauth2 (OAuth 2 Client Credentials Grant)`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/auth/oauth-2-client-credentials-grant.md)
## List of APIs
* [Orders](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/controllers/orders.md)
* [Payments](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/controllers/payments.md)
* [Vault](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/controllers/vault.md)
* [Transaction Search](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/controllers/transaction-search.md)
* [Subscriptions](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/controllers/subscriptions.md)
## SDK Infrastructure
### Configuration
* [ProxySettings](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/proxy-settings.md)
* [Environment-Based Client Initialization](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/environment-based-client-initialization.md)
* [AbstractLogger](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/abstract-logger.md)
* [LoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/logging-configuration.md)
* [RequestLoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/request-logging-configuration.md)
* [ResponseLoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/response-logging-configuration.md)
### HTTP
* [HttpResponse](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/http-response.md)
* [HttpRequest](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/http-request.md)
### Utilities
* [ApiResponse](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/api-response.md)
* [ApiHelper](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/api-helper.md)
* [DateTimeHelper](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.2.0/doc/date-time-helper.md)