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

# SDK Overview

> Checked-in SDKs and wrappers for Zentra's reviewed public API surface

Zentra provides checked-in SDKs and wrappers for the most common server-side and app environments. They wrap the REST API, normalize authentication, and expose helpers for the main reviewed public API surfaces.

<Note>
  Some generated SDKs still include compatibility helpers such as `customers`, `wallets`, `savings`, or `subscriptions`. Identity is part of the reviewed gateway surface, but it remains tenant-gated. Treat transfers, webhooks, virtual accounts, payments, cards, and tenant-enabled identity as the reviewed public HTTP surfaces; treat the rest as compatibility or draft unless your tenant explicitly enables them.
</Note>

<Note>
  Use [SDK Surface Status](/resources/sdk-surface-status) when you need the current reviewed-vs-draft breakdown across the checked-in SDKs and wrappers.
</Note>

## Supported SDKs

For the widest reviewed-first coverage today, start with JavaScript, Python, PHP, or Go. The other pages document the checked-in wrappers and their current caveats.

<CardGroup cols={4}>
  <Card title="JavaScript" href="/sdks/javascript">
    Node.js and TypeScript SDK
  </Card>

  <Card title="Python" href="/sdks/python">
    Python SDK with sync and async support
  </Card>

  <Card title="PHP" href="/sdks/php">
    PHP SDK for Laravel and general server-side integrations
  </Card>

  <Card title="Go" href="/sdks/go">
    Go SDK with reviewed-public transfer and payment helpers
  </Card>
</CardGroup>

<CardGroup cols={4}>
  <Card title="Ruby" href="/sdks/ruby">
    Ruby SDK for Rails and general server-side use
  </Card>

  <Card title="C#" href="/sdks/csharp">
    .NET SDK for reviewed API resources
  </Card>

  <Card title="Java" href="/sdks/java">
    Java wrapper for transfers, payments, and webhooks
  </Card>

  <Card title="Rust" href="/sdks/rust">
    Rust SDK for reviewed API calls and webhook verification
  </Card>
</CardGroup>

<CardGroup cols={3}>
  <Card title="Flutter" href="/sdks/flutter">
    Flutter wrapper for reviewed public API flows
  </Card>

  <Card title="Android" href="/sdks/android">
    Android wrapper for transfers, payments, and webhooks
  </Card>

  <Card title="iOS" href="/sdks/ios">
    Swift package guidance for Zentra API integrations
  </Card>
</CardGroup>

## Quick Example

<CodeGroup>
  ```javascript JavaScript theme={null}
  const transfer = await client.transfers.create({
    amount: 50000,
    bankCode: '058',
    accountNumber: '0123456789',
    accountName: 'Vendor Settlement Account',
    narration: 'SDK overview transfer',
    reference: 'SDK_OVERVIEW_001'
  });

  console.log(transfer.reference);
  ```

  ```python Python theme={null}
  from zentra import Zentra

  client = Zentra(
      secret_key=os.getenv('ZENTRA_SECRET_KEY'),
      base_url='https://sandbox.api.usezentra.com'
  )

  transfer = client.transfers.create(
      amount=50000,
      bank_code='058',
      account_number='0123456789',
      account_name='Vendor Settlement Account',
      narration='SDK overview transfer',
      reference='SDK_OVERVIEW_001'
  )

  print(transfer["reference"])
  ```

  ```php PHP theme={null}
  use Zentra\Zentra;

  $client = new Zentra(
      getenv('ZENTRA_SECRET_KEY'),
      'https://sandbox.api.usezentra.com'
  );

  $transfer = $client->transfers->create([
      'amount' => 50000,
      'recipient_bank_code' => '058',
      'recipient_account_number' => '0123456789',
      'recipient_account_name' => 'Vendor Settlement Account',
      'narration' => 'SDK overview transfer',
      'reference' => 'SDK_OVERVIEW_001'
  ]);

  echo $transfer->reference;
  ```
</CodeGroup>

## Features by SDK

### JavaScript/Node.js SDK

* ✅ Full TypeScript support
* ✅ Promise-based async/await API
* ✅ Browser and Node.js compatible
* ✅ Automatic request retries
* ✅ Webhook signature verification
* ✅ React hooks (optional)

[View Documentation →](/sdks/javascript)

### Python SDK

* ✅ Type hints throughout
* ✅ Async/await support
* ✅ Django and Flask integrations
* ✅ Automatic pagination helpers
* ✅ Webhook utilities
* ✅ Context manager support

[View Documentation →](/sdks/python)

### PHP SDK

* ✅ PSR-4 autoloading
* ✅ Laravel service provider
* ✅ Guzzle HTTP client
* ✅ Comprehensive error handling
* ✅ Webhook helpers
* ✅ Test mode support

[View Documentation →](/sdks/php)

### Go SDK

* ✅ Context-aware request flow
* ✅ Idempotency-aware retry helpers
* ✅ Reviewed-public charge, refund, and token helpers
* ✅ Webhook signature verification
* ✅ Generic paginated response helpers

[View Documentation →](/sdks/go)

### Additional wrappers

* Java, C#, Ruby, Rust, Flutter, Android, and iOS pages document the checked-in wrappers and their current reviewed-vs-compatibility posture.

## Configuration Options

All SDKs support these configuration options:

| Option        | Type   | Default     | Description                              |
| ------------- | ------ | ----------- | ---------------------------------------- |
| `api_key`     | string | required    | Your Zentra secret key                   |
| `environment` | string | `sandbox`   | Target environment (`sandbox` or `live`) |
| `base_url`    | string | SDK default | Override API base URL when needed        |
| `timeout`     | number | SDK default | Request timeout in milliseconds          |
