Skip to main content
Learn how to build a complete digital banking application using Zentra’s financial infrastructure control plane.
Treat this guide as architecture-first. The reviewed public surfaces in the current repo are transfers, payments, identity, cards, virtual accounts, billpay, and webhooks. Higher-level wallet or product behaviors should still be treated as application-layer composition unless separately documented for your tenant.
In the examples below, customer and wallet are application-layer concepts. Implement them in your own backend, or map them to tenant-specific overlays if your environment exposes extra draft APIs. The KYC snippets assume a tenant-gated reviewed identity surface and should still be validated against your enabled environment.

What You’ll Build

By the end of this guide, you’ll have:
  • Customer onboarding with KYC
  • Virtual bank accounts for each customer
  • Wallet management
  • Money transfers
  • Virtual card issuing
  • Transaction history
  • Real-time notifications

Primitive-First Model

Build your app in layers:
  1. primitives: transfers, webhooks, audit-safe references, and tenant-gated identity checks where enabled
  2. optional rail add-ons: virtual accounts, cards, and payment collection
  3. product logic in your own backend: ledgers, onboarding flows, limits, rewards, savings experiences, and subscription logic

Prerequisites

Before starting, ensure you have:
  • Zentra developer account (Create account)
  • Basic knowledge of your chosen programming language
  • Development environment set up

Architecture Overview

Step 1: Set Up Authentication

First, set up your API client:

Step 2: Customer Onboarding

When a user signs up, create your own app-level customer record and then run KYC against Zentra’s tenant-specific identity surface if your environment exposes it:

Step 3: Create Virtual Account

Create a dedicated account number for the customer:

Step 4: Set Up Wallet

Project or initialize the user’s balance state in your own backend:

Step 5: Handle Deposits

Listen for webhook notifications when virtual account is credited:

Step 6: Enable Transfers

Allow users to send money:

Step 7: Issue Virtual Cards

Let users create virtual cards:

Step 8: Transaction History

Display user’s transaction history:

Step 9: Real-time Balance Updates

Use webhooks to update balances in real-time:

Step 10: Going Live

When ready for production:
  1. Switch to Live Mode
  2. Complete Compliance
    • Submit business documents
    • Complete KYC verification
    • Set up webhook endpoints
  3. Test Thoroughly
    • Run end-to-end tests
    • Test error scenarios
    • Load test your infrastructure
  4. Monitor Everything
    • Set up error tracking (Sentry)
    • Monitor API usage
    • Track transaction success rates

Complete Example App

Here’s a minimal Express.js app. Notice that user/customer state and transaction history live in your backend, while Zentra handles the reviewed rail and money-movement surfaces:

Next Steps

API Reference

Explore all available endpoints

Webhook Guide

Master webhook handling

Going Live

Production checklist

Test Data

Test in sandbox mode

Get Help

Questions? We’re here to help: