Skip to main content

Quickstart Guide

This guide walks through the fastest safe path to a Zentra integration: create your developer account, generate keys, initialize the SDK, resolve an account, and create a test transfer with a stable reference and minor-unit amount.
Prerequisites:
Start with reviewed public namespaces first: transfers and webhooks. Add payments, identity, cards, virtual accounts, or billpay only when your product actually needs those rails and your tenant is enabled for them.
1

Get your API keys

Sign in to the Developer Console and open API Keys.You will see two types of keys:
  • Sandbox keys (sk_sandbox_...): Use these for development and testing.
  • Live keys (sk_live_...): Use these for production only after your account is approved for live traffic.
Keep your Secret Key (sk_...) secure. Never commit it to GitHub or client-side code.
2

Install the SDK

We recommend using an official SDK for typed requests and consistent auth handling.
npm install @zentra/sdk
3

Initialize the client

Import the library and initialize it with your secret key.
import { Zentra } from "@zentra/sdk";

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

List banks and create a test transfer

Start with a reviewed primitive flow. Fetch the reviewed bank directory, then create a transfer using minor units and a stable business reference.
const banks = await zentra.transfers.getBanks();
console.log(`Loaded ${banks.length} banks`);

const transfer = await zentra.transfers.create({
  amountMinor: 50000,
  destinationBankCode: "058",
  destinationAccountNumber: "0123456789",
  destinationAccountName: "Sandbox Beneficiary",
  narration: "Zentra quickstart payout",
  reference: "QS_TRF_001"
});

console.log(`Transfer created: ${transfer.reference}`);

Optional Rail Add-Ons

When your product needs more than primitive transfers:
  • enable payments for customer-present charges, refunds, and saved payment tokens
  • enable virtual accounts for inbound collections
  • enable cards for issuing and spend controls
  • enable identity when your tenant needs the reviewed identity namespace
  • enable billpay when your tenant uses that optional rail

Next Steps

Now that your first primitive flow works, choose the next capability you actually need:

Transfers

Move money using the reviewed primitive transfer contract.

Webhooks

Verify signatures, process events idempotently, and keep your state in sync.

Reviewed surface policy

Check which namespaces are reviewed public, tenant-gated, or still draft.