
# Getting Started with Paze Checkout API

## Introduction

Paze Checkout API for Merchants

## Install the Package

Run the following command from your project directory to install the package from npm:

```bash
npm install paze-apimatic-sdk@1.0.0
```

For additional package details, see the [Npm page for the paze-apimatic-sdk@1.0.0 npm](https://www.npmjs.com/package/paze-apimatic-sdk/v/1.0.0).

## Initialize the API Client

**_Note:_** Documentation for the client can be found [here.](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/client.md)

The following parameters are configurable for the API Client:

| Parameter | Type | Description |
|  --- | --- | --- |
| environment | [`Environment`](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/README.md#environments) | The API environment. <br> **Default: `Environment.Production`** |
| timeout | `number` | Timeout for API calls.<br>*Default*: `0` |
| httpClientOptions | [`Partial<HttpClientOptions>`](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/http-client-options.md) | Stable configurable http client options. |
| unstableHttpClientOptions | `any` | Unstable configurable http client options. |
| clientCredentialsAuthCredentials | [`ClientCredentialsAuthCredentials`](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.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 } from 'paze-apimatic-sdk';

const client = new Client({
  clientCredentialsAuthCredentials: {
    oAuthClientId: 'OAuthClientId',
    oAuthClientSecret: 'OAuthClientSecret'
  },
  timeout: 0,
  environment: Environment.Production,
});
```

### Configuration-Based Client Initialization

```ts
import * as path from 'path';
import * as fs from 'fs';
import { Client } from 'paze-apimatic-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/sdks-io/paze-apimatic-sdk-js/tree/1.0.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 'paze-apimatic-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/sdks-io/paze-apimatic-sdk-js/tree/1.0.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 | **Default** |

## Authorization

This API uses the following authentication schemes.

* [`OAuth2 (OAuth 2 Client Credentials Grant)`](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/auth/oauth-2-client-credentials-grant.md)

## List of APIs

* [Checkout Session](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/controllers/checkout-session.md)
* [Merchant Onboarding](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/controllers/merchant-onboarding.md)
* [Identity](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/controllers/identity.md)

## SDK Infrastructure

### Configuration

* [HttpClientOptions](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/http-client-options.md)
* [RetryConfiguration](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/retry-configuration.md)
* [ProxySettings](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/proxy-settings.md)
* [Configuration-Based Client Initialization](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/configuration-based-client-initialization.md)
* [Environment-Based Client Initialization](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/environment-based-client-initialization.md)

### HTTP

* [HttpRequest](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/http-request.md)

### Utilities

* [ApiResponse](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/api-response.md)
* [ApiError](https://www.github.com/sdks-io/paze-apimatic-sdk-js/tree/1.0.0/doc/api-error.md)

