Skip to Content
Kido Bag
Domain Combo SuitesPillar 4. FinTech & Payments

Pillar 4. FinTech, Payments, Double-Entry Ledger & E-Invoice

Immutable Double-Entry Ledgers, EMVCo VietQR, Stripe, Airwallex FX, and Vietnam Circular 78 E-Invoicing.

Pillar 4. FinTech, Payments, Double-Entry Ledger & E-Invoice

6 Domain Combo Suites (20+ Isolated Slices)
Double-entry financial bookkeeping, multi-currency escrow reconciliation, automated VietQR / Stripe payment processing, and Circular 78 tax compliance.


📦 Package Catalog

Package NamePathArchitecture Paradigm & Key Exports
@kido/wallet-ledgerpackages/wallet-ledgerDouble-Entry Ledger + Micro-Decimal Crypto + Referral Clawback + NAV:
• DoubleEntryLedger, EscrowEngine, verifyBalanceEquation
• MicroDecimalAmountGenerator, CryptoTransactionMatcher
• ReferralFraudGuard, executeWacbTransaction
@kido/payment-vietqrpackages/payment-vietqrEMVCo VietQR Generator (NAPAS 247 CRC16) & Bank Webhook Parser:
• generateVietQRPayload, computeCRC16, parseWebhookPayload, VIETNAM_BANKS
@kido/payment-stripepackages/payment-stripeStripe Checkout, Webhook HMAC Verifier & Subscription Lifecycle:
• StripePaymentService, verifyStripeWebhookSignature, mapStripeEventToDomain
@kido/payment-airwallexpackages/payment-airwallexAirwallex Global Multi-Currency Payment Intent & FX Settlement:
• AirwallexClient, createPaymentIntent, calculateFxSettlement
@kido/einvoice-vnpackages/einvoice-vnVietnam Circular 78/2021/TT-BTC E-Invoice XML Builder:
• EInvoiceService, validateVietnamTaxCode, numberToVietnameseWords, buildCircular78Xml
@kido/invoice-pdfpackages/invoice-pdfThermal POS Receipt (58mm/80mm) & A4 VAT Commercial Invoice Print:
• renderInvoiceHtml, calculateInvoiceSummary, amountToVietnameseWords

🔍 Key Architectural Patterns

1. Invariant-Checked Double-Entry Ledger

Every financial movement requires paired debit and credit journal entries. Transactions that fail the balance invariant Sum(Debit) = Sum(Credit) abort immediately:

import { DoubleEntryLedger, verifyBalanceEquation } from '@kido/wallet-ledger';

const ledger = new DoubleEntryLedger();

const entries = [
  { accountId: 'MERCHANT_ESCROW', type: 'DEBIT' as const, amount: 250000, currency: 'VND' },
  { accountId: 'CUSTOMER_WALLET', type: 'CREDIT' as const, amount: 250000, currency: 'VND' },
];

if (!verifyBalanceEquation(entries)) {
  throw new Error('Unbalanced financial transaction');
}

2. Standard EMVCo VietQR Generator

Generate instant bank transfer QR codes compatible with all 54+ Vietnamese banking apps (NAPAS 247):

import { generateVietQRPayload, VIETNAM_BANKS } from '@kido/payment-vietqr';

const qrString = generateVietQRPayload({
  bankBin: VIETNAM_BANKS.MB.bin,
  accountNumber: '0987654321',
  amount: 500000,
  purpose: 'ORDER12345',
});

Produce compliant XML invoices ready for submission to the General Department of Taxation (TCT) and providers like VNPT, Viettel, and MISA:

import { EInvoiceService, numberToVietnameseWords } from '@kido/einvoice-vn';

const xml = EInvoiceService.buildCircular78Xml({
  invoiceSeries: '1C24TKK',
  sellerTaxCode: '0402012345',
  buyerTaxCode: '0100109106',
  items: [
    { name: 'Cloud Architecture Consulting', quantity: 1, unitPrice: 15000000, vatRate: 0.1 },
  ],
});

On this page