> ## Documentation Index
> Fetch the complete documentation index at: https://dev.moonpay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# createClient()

> Initialize a reusable SDK client with a `sessionToken`.

Initialize a client with a [sessionToken](/platform/guides/api-and-sdk-credentials#session-token) provided by your backend. The client is optional, but it gives you a single place to manage the [integration credentials](/platform/guides/api-and-sdk-credentials#client-credentials) used across the SDK.

```ts Initialize client theme={null}
import { createClient } from "@moonpay/platform-sdk-web";

const client = createClient({ sessionToken: "c3N0XzAwMQ==" });
```

`createClient()` returns the client synchronously. Method calls on the client (for example, `client.getConnection()`) return a `Result<T, E>` you check before reading `value`.

***

## Parameters

| Property       | Type     | Required | Description                                                                                                                                                    |
| -------------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sessionToken` | `string` | ✅        | The [sessionToken](/platform/guides/api-and-sdk-credentials#session-token) created on your server.                                                             |
| `apiBaseUrl`   | `string` |          | Override the MoonPay Platform API base URL. Defaults to production. Use this only when MoonPay support has asked you to point at a non-production environment. |
| `frameBaseUrl` | `string` |          | Override the MoonPay frame base URL. Defaults to production. Use this only when MoonPay support has asked you to point at a non-production environment.        |

## Return value

`createClient()` returns a `Client` instance. It does not throw and does not return a `Result`.

### `Client`

The client instance exposes every integration method:

* [`client.getConnection()`](/platform/sdk-reference/web/get-connection)
* [`client.connect()`](/platform/sdk-reference/web/connect)
* [`client.setupAuth()`](/platform/sdk-reference/web/setup-auth)
* [`client.resetConnection()`](/platform/sdk-reference/web/reset-connection)
* [`client.getPaymentMethods()`](/platform/sdk-reference/web/get-payment-methods)
* [`client.deletePaymentMethod()`](/platform/sdk-reference/web/delete-payment-method)
* [`client.getQuote()`](/platform/sdk-reference/web/get-quote)
* [`client.getTransaction()`](/platform/sdk-reference/web/get-transaction)
* [`client.listTransactions()`](/platform/sdk-reference/web/list-transactions)
* [`client.setupWidget()`](/platform/sdk-reference/web/setup-widget)
* [`client.setupApplePay()`](/platform/sdk-reference/web/setup-apple-pay)
* [`client.setupGooglePay()`](/platform/sdk-reference/web/setup-google-pay)
* [`client.setupBuy()`](/platform/sdk-reference/web/setup-buy)
* [`client.setupBuyButton()`](/platform/sdk-reference/web/setup-buy-button)
* [`client.setupChallenge()`](/platform/sdk-reference/web/setup-challenge)
* [`client.setupAddCard()`](/platform/sdk-reference/web/setup-add-card)
* [Identity methods](/platform/sdk-reference/web/identity) — `createIdentity()`, `getIdentity()`, `updateIdentity()`, `verifyIdentity()`, `getIdentityUploadUrl()`, `submitIdentityFiles()`
