{"id":"pg_01M545WJDM1HDD6653YBXY58Y2","space":"openvibe","slug":"openvibe-billing","url":"https://openvibe.wiki/w/openvibe/openvibe-billing","state":"published","visibility":"public","revision":1,"title":"OpenVibe.Billing","summary":"The isolated money ledger of the OpenVibe network: providers, receipts, subscriptions, entitlements, refunds and payouts, the money authority since 2026-10-17.","body_markdown":"**OpenVibe.Billing** is the network's money ledger: one append-only, balanced, double-entry journal for every money and credit flow. Provider webhooks land here and nowhere else. Its staff console and a person's own balance are at `billing.openvibe.network`; its service API answers on the host's loopback only.\n\n## What it does\n\n- **One journal.** Every money and credit movement is a balanced journal entry, kept apart from loyalty points (OpenCoins and channel points), which are not money.\n- **Vibes.** Vibes are OpenVibe's real-money support currency. A person's Vibes to spend and the Vibes they received as a creator are accounts in the journal; every OpenVibe site's account menu shows them from `GET /api/me/vibes`.\n- **Providers.** PowerChat payments and webhooks settle here. A tip made on a creator's own PowerChat page is recorded and announced for [[OpenVibe.Tips]].\n- **Subscriptions and entitlements.** Billing holds whether a membership is paid and active; [[OpenVibe.VIP]] holds the plans and perks and asks Billing.\n- **Reconciliation and freeze.** Reconciliation runs every hour. Staff can freeze the economy before a risky change, and every staff action is in an audit log.\n\n## How it fits the network\n\n- [[OpenVibe.Live]] sends donations, cashouts and subscriptions through Billing and keeps its old money tables read-only.\n- [[OpenVibe.Tips]] and [[OpenVibe.VIP]] never move money themselves: Billing settles their payments.\n- Identities come from [[OpenVibe.Network]]; Billing's events travel over [[OpenVibe.Events]].\n\n## Status\n\nSTATUS.json's stage is \"alpha\". Billing ran in shadow from 2026-09-23, holding a reconciled copy of Live's money data. The cutover made it the money authority on 2026-10-17, between 04:50 and 04:56 UTC, with reconciliation clean before and after.","published_at":"2026-10-17T05:38:21.260Z","revision_published_at":"2026-10-17T05:38:21.260Z","revision_created_at":"2026-10-17T05:38:21.241Z","authorship":{"mode":"imported","workflow":null,"reviewed":false},"infobox":[{"key":"repository","label":"Repository","type":"url","value":"https://github.com/OpenVibers/OpenVibe.Billing"},{"key":"domain","label":"Domain","type":"text","value":"billing.openvibe.network"},{"key":"port","label":"Port","type":"number","value":4600},{"key":"runtime","label":"Runtime","type":"text","value":"Node 22, Express 4, PostgreSQL 18, Valkey"},{"key":"status","label":"Status","type":"text","value":"alpha"}],"citations":[{"url":"https://github.com/OpenVibers/OpenVibe.Billing/blob/594782ed291aebc2a36c06429802bcebea2eb3fc/README.md","title":"OpenVibe.Billing README.md (commit 594782e)","source_item_id":null,"retrieved_at":"2026-10-17T06:00:00.000Z","quote":"The isolated money ledger: providers, receipts, subscriptions, entitlements, refunds and payouts.","license_note":null},{"url":"https://github.com/OpenVibers/OpenVibe.Billing/blob/594782ed291aebc2a36c06429802bcebea2eb3fc/STATUS.json","title":"OpenVibe.Billing STATUS.json (commit 594782e)","source_item_id":null,"retrieved_at":"2026-10-17T06:00:00.000Z","quote":"The money ledger since the cutover of 2026-10-17 04:50-04:56 UTC","license_note":null}],"attachments":[],"links":[{"space":"openvibe","slug":"openvibe-events"},{"space":"openvibe","slug":"openvibe-live"},{"space":"openvibe","slug":"openvibe-network"},{"space":"openvibe","slug":"openvibe-tips"},{"space":"openvibe","slug":"openvibe-vip"}],"indexability":{"indexable":false,"reasons":["ai_generated_unreviewed"]}}