> ## 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.

# Zentra Developer Docs

> Evaluate the financial infrastructure control plane, build one safe flow, inspect the API Reference, and prepare for launch.

**Zentra** is a financial infrastructure control plane. We give regulated fintech teams reviewed public APIs for deterministic money movement, signed webhook delivery, tenant-scoped policy governance, and optional rails you can enable as your product grows.

Use these docs as an inspectable developer evaluation path: understand the core control plane, build a reviewed primitive in the sandbox, verify signed webhook events, configure tenant policies, and prepare for production with operational evidence.

## Onboarding Paths

<Steps>
  <Step title="Evaluate the Control Plane">
    Understand how tenant isolation, explicit state lifecycles, and audit evidence fit together in a deterministic financial operating system.
  </Step>

  <Step title="Build in Sandbox">
    Generate credentials, install our typed SDKs, and build your first reviewed transfer flow using sandbox bank routing codes.
  </Step>

  <Step title="Verify Webhook Signatures">
    Configure a signed event endpoint, handle automatic retry attempts, and process incoming callbacks idempotently.
  </Step>

  <Step title="Prepare for Production">
    Establish operator access, set up IP whitelists, verify compliance checkpoints, and migrate to live keys with evidence attached.
  </Step>
</Steps>

## Visualizing the Control Plane

Zentra sits directly between your product applications and underlying financial networks. Your services own the business logic; Zentra governs the routing, state persistence, policy verification, and ledger reconciliation.

```mermaid theme={null}
graph TD
    User["End User Client"] -->|"Business Logic"| App["Your Application"]
    App -->|"Signed API Request"| Zentra["Zentra API Gateway"]
    
    subgraph Control_Plane["Zentra Control Plane (Reviewed Core)"]
        Zentra -->|"Policy Engine"| Policy["Tenant Limits & Scopes"]
        Zentra -->|"Ledger System"| Ledger["Idempotency & State Log"]
        Zentra -->|"Delivery Rail"| Webhooks["Signed Webhooks"]
    end
    
    subgraph Addon_Rails["Reviewed Optional Rails"]
        Zentra -->|"Transfers"| Trans["Outbound Rails"]
        Zentra -->|"Payments"| Pay["Inbound Collections"]
        Zentra -->|"Virtual Accounts"| VA["Dedicated Wallets"]
        Zentra -->|"Cards"| Card["Card Issuance"]
        Zentra -->|"Identity"| Ident["BVN / NIN Verification"]
    end
    
    Ledger -->|"Settlement Flow"| Bank["Bank Rail Providers"]
    Trans -->|"Money Routing"| Network["Settlement Networks"]
    
    classDef app fill:#14161A,stroke:#2A2E35,stroke-width:1px,color:#F5F4F0
    classDef zentra fill:#2563FF,stroke:#AFC8FF,stroke-width:1px,color:#F5F4F0
    classDef proof fill:#2A2E35,stroke:#5770A0,stroke-width:1px,color:#F5F4F0
    
    class User,App,Bank,Network app
    class Zentra,Policy zentra
    class Ledger,Webhooks,Trans,Pay,VA,Card,Ident proof
```

## V1 Product Primitives

Opt into reviewed modules as your business requirements expand. Primitives are separated structurally to avoid black-box failures.

<CardGroup cols={2}>
  <Card title="Transfers" icon="paper-plane">
    Outbound money movement with deterministic routing, explicit status tracking, and strict idempotency safety.
  </Card>

  <Card title="Payments" icon="credit-card">
    Optional collection rails to accept, route, and reconcile customer-present payment flows.
  </Card>

  <Card title="Virtual Accounts" icon="building-columns">
    Dedicated bank account allocations for incoming payments, mapped directly to tenant wallets.
  </Card>

  <Card title="Cards" icon="id-card">
    Programmatic card issuing with real-time spend limits, custom filters, and authorization hooks.
  </Card>

  <Card title="Webhooks" icon="webhook">
    Signed, signature-verifiable callbacks documenting every ledger mutation with automated backoff retries.
  </Card>

  <Card title="Identity" icon="shield-check">
    Gated customer verification flows (BVN, NIN, and Liveness Checks) built for regulated environments.
  </Card>
</CardGroup>

## Code Examples

Initialize the official client SDK and create a sandbox transfer using minor units (`amountMinor` represents 500,00.00 Kobo/cents to avoid floating-point drift).

<CodeGroup>
  ```javascript Node.js theme={null}
  import { Zentra } from "@zentra/sdk";

  const zentra = new Zentra({
    apiKey: process.env.ZENTRA_SECRET_KEY,
    environment: "sandbox"
  });

  const transfer = await zentra.transfers.create({
    amountMinor: 500000,
    destinationBankCode: "058",
    destinationAccountNumber: "0123456789",
    reference: "TRF_20260519_QS01",
    narration: "Sandbox payout test"
  });

  console.log(`Transfer initiated: ${transfer.id} (Status: ${transfer.status})`);
  ```

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

  client = Zentra(
      api_key=os.environ.get("ZENTRA_SECRET_KEY"),
      environment="sandbox"
  )

  transfer = client.transfers.create(
      amount_minor=500000,
      destination_bank_code="058",
      destination_account_number="0123456789",
      reference="TRF_20260519_QS01",
      narration="Sandbox payout test"
  )

  print(f"Transfer initiated: {transfer['id']} (Status: {transfer['status']})")
  ```
</CodeGroup>

## Operational Verification

Zentra does not hide failure modes behind generic "secure" claims. We provide open, auditable tracking tools for infrastructure and compliance teams.

<CardGroup cols={2}>
  <Card title="Reviewed API Surface" href="/resources/reviewed-public-surface">
    Inspect the exact JSON interfaces and tenant-gated routes currently validated in the live gateway.
  </Card>

  <Card title="Launch Readiness" href="/trust/launch-readiness">
    Ensure your integration is robust against network timeouts, key rotation, and duplicate callbacks.
  </Card>
</CardGroup>
