Billing
This section describes billing and accounting entities in Yeti.
Yeti billing is intentionally simple and is based on processing several types of billing events:
Payments
Payments represent the flow of funds between an external entity (for example, a bank account) and a Customer Account within Yeti.
The direction of the money flow is defined by the payment amount:
A positive amount means funds are transferred from the external entity to the Yeti account.
A negative amount means funds are transferred from the Yeti account to the external entity.
Transactions
Transactions represent internal spendings or earnings within the Yeti system.
The direction of the money flow is defined by the transaction amount:
A positive amount represents spending (account balance decreases).
A negative amount represents earning (account balance increases).
CDR Billing
During CDR billing, the default behavior is as follows:
The customer price is deducted from the customer (call originator) account balance.
The vendor price is added to the vendor (termination provider) account balance.
This default behavior can be inverted using the Reverse Billing mechanism:
When the Destination reverse billing flag is enabled, the customer price is added to the customer account balance.
When the Dialpeer reverse billing flag is enabled, the vendor price is deducted from the vendor account balance.
This diagram illustrates all possible scenarios for a single account. In most real-world scenarios, a single call affects two different accounts - the customer account (call originator), and the vendor account (termination provider).
WARNING
- Payments and Transactions creation are synchronous processes - Account balance will be modified immediately(in same database transaction).
- CDR Billing is asynchronous process. When CDR stored, billing event will be generated which will be processed asynchronously by cdr-billing process. It means Account balance modification may be delayed depends on system load.