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.

Epic history: BIF-6428 was the Phase-1 build epic (closed Done) — most of its child Tasks shipped and are code-corroborated (shared-pool FK column, WABA-ID reporting end-to-end, Postpaid Limit reset/aggregation, contract carry-over, low-balance threshold), but its 7 parent Stories remain Waiting Confirmation and the core sharing mechanism (the FK index is still unique — 2+ WABAs cannot yet share one pool) is unbuilt. BIF-8910 ("26Q3 BIF – One CID Multiple WABA Rollout") is now the live executable Epic, owning that core gap, the remaining RFC Phase-1 dev items (blocked on Detail 2.F), and Story confirmation via collab/UAT testing ahead of rollout. See decision 0001 for the full evidence trail.

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.