Skip to main content

One CID Multiple WABA — Billing V3 Shared Balance Pool

Initiative owned by the Bifrost team. Implements Meta's Coexistence model support in Qontak Billing: companies with multiple WhatsApp Business Account IDs (WABA IDs) share a single aggregated company-level balance pool under the Shared Pool Model, replacing the per-WABA individual balance architecture. Scoped exclusively to billing_version = "3.0.0" organizations.

Scope Changes

  • Backendqontak-billing: aggregate balance query across all WABAs per OrganizationPackage, 3-tier deduction hierarchy (WABI → WAB-Additional → Postpaid) using component quota tables, monthly WABI reset job, carry-over logic for WAB-Additional on contract renewal, low balance notification events, waba_id field in conversation log reports gated by billing_report_show_waba_id preference; hub-service: /billings/info returns aggregated balance for V3 orgs, /mcc_logs adds waba_id filter, /download_broadcast_deduction includes waba_id column when preference enabled
  • Frontendhub-chat: shared balance tooltip on Package Usage page, waba_id column in Broadcast and Conversation/MCC report tables, waba_id in CSV export
  • DataWhatsappPackage.organization_package_id FK (migration 20260113 already exists); billing_report_show_waba_id preference setting per CID; monthly WABI reset cron configuration

QA Lane

Lane B — keeps a human QA gate. Money-critical: balance deduction, WABI monthly reset, carry-over on renewal, and postpaid limit enforcement directly affect client credit availability and billing accuracy. Incorrect deduction order or reset logic would result in client overcharging or service interruption. Classified 2026-06-29.