# PayPal-TypeScript-Server-SDK
**Repository Path**: mirrors_paypal/PayPal-TypeScript-Server-SDK
## Basic Information
- **Project Name**: PayPal-TypeScript-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-03-21
## 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
Run the following command from your project directory to install the package from npm:
```bash
npm install @paypal/paypal-server-sdk@2.2.0
```
For additional package details, see the [Npm page for the @paypal/paypal-server-sdk@2.2.0 npm](https://www.npmjs.com/package/@paypal/paypal-server-sdk/v/2.2.0).
## Initialize the API Client
**_Note:_** Documentation for the client can be found [here.](https://www.github.com/paypal/PayPal-TypeScript-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`** |
| timeout | `number` | Timeout for API calls.
*Default*: `0` |
| httpClientOptions | [`Partial`](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/http-client-options.md) | Stable configurable http client options. |
| unstableHttpClientOptions | `any` | Unstable configurable http client options. |
| logging | [`PartialLoggingOptions`](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/partial-logging-options.md) | Logging Configuration to enable logging |
| clientCredentialsAuthCredentials | [`ClientCredentialsAuthCredentials`](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/auth/oauth-2-client-credentials-grant.md) | The credential object for clientCredentialsAuth |
The API client can be initialized as follows:
### Code-Based Client Initialization
```ts
import { Client, Environment, LogLevel } from '@paypal/paypal-server-sdk';
const client = new Client({
clientCredentialsAuthCredentials: {
oAuthClientId: 'OAuthClientId',
oAuthClientSecret: 'OAuthClientSecret'
},
timeout: 0,
environment: Environment.Sandbox,
logging: {
logLevel: LogLevel.Info,
logRequest: {
logBody: true
},
logResponse: {
logHeaders: true
}
},
});
```
### Configuration-Based Client Initialization
```ts
import * as path from 'path';
import * as fs from 'fs';
import { Client } from '@paypal/paypal-server-sdk';
// Provide absolute path for the configuration file
const absolutePath = path.resolve('./config.json');
// Read the configuration file content
const fileContent = fs.readFileSync(absolutePath, 'utf-8');
// Initialize client from JSON configuration content
const client = Client.fromJsonConfig(fileContent);
```
See the [Configuration-Based Client Initialization](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/configuration-based-client-initialization.md) section for details.
### Environment-Based Client Initialization
```ts
import * as dotenv from 'dotenv';
import * as path from 'path';
import * as fs from 'fs';
import { Client } from '@paypal/paypal-server-sdk';
// Optional - Provide absolute path for the .env file
const absolutePath = path.resolve('./.env');
if (fs.existsSync(absolutePath)) {
// Load environment variables from .env file
dotenv.config({ path: absolutePath, override: true });
}
// Initialize client using environment variables
const client = Client.fromEnvironment(process.env);
```
See the [Environment-Based Client Initialization](https://www.github.com/paypal/PayPal-TypeScript-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-TypeScript-Server-SDK/tree/2.2.0/doc/auth/oauth-2-client-credentials-grant.md)
## List of APIs
* [Orders](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/controllers/orders.md)
* [Payments](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/controllers/payments.md)
* [Vault](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/controllers/vault.md)
* [Transaction Search](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/controllers/transaction-search.md)
* [Subscriptions](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/controllers/subscriptions.md)
## SDK Infrastructure
### Configuration
* [HttpClientOptions](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/http-client-options.md)
* [RetryConfiguration](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/retry-configuration.md)
* [ProxySettings](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/proxy-settings.md)
* [Configuration-Based Client Initialization](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/configuration-based-client-initialization.md)
* [Environment-Based Client Initialization](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/environment-based-client-initialization.md)
* [PartialLoggingOptions](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/partial-logging-options.md)
* [PartialRequestLoggingOptions](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/partial-request-logging-options.md)
* [PartialResponseLoggingOptions](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/partial-response-logging-options.md)
* [LoggerInterface](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/logger-interface.md)
### HTTP
* [HttpRequest](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/http-request.md)
### Utilities
* [ApiResponse](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/api-response.md)
* [ApiError](https://www.github.com/paypal/PayPal-TypeScript-Server-SDK/tree/2.2.0/doc/api-error.md)