Balance Transfers
A balance transfer is a subscription management transaction that moves an amount from one balance instance to another balance instance.
- Transfer balances between any two prepaid G/L balance instances of the same balance unit, for example, minutes or megabytes.
- The source balance and the target
balance can be in the same wallet or in
different wallets.
For example, a subscription belonging to a family sharing group can transfer 100 voice minutes from his or her minutes balance to the group minutes balance, or to another family member. Note that with this example the balances are in the same group hierarchy, but this is not a requirement.
- The source and target balances can
be simple balances or
periodic balances.
For periodic balances, only the current balance interval is impacted. Transfers to or from on demand balances are not supported.
- The source balance can be expired. The target balance cannot be expired.
- You cannot transfer balances
between an actual currency balance and a pseudo-currency balance.
Transfers must be from an actual currency balance to an actual currency balance or from a pseudo-currency balance to a pseudo-currency balance. For more information about actual currency balances and pseudo-currency balances, see the discussion about actual currency and pseudo-currency balances.
- When MATRIXX Engine is configured to include GL information in events, the source and target
balances must be either both liability assets or both non-liability assets.
For example, you cannot transfer a liability asset balance to a non-liability asset balance.
- The amount being transferred must
be specified either as a positive absolute value or as a percentage of the
available amount in the source balance. The entire amount in the source balance is available for transfer, regardless of any reservations against that amount. However, if the specified transfer amount exceeds the available amount, the operation will fail. Any transferred amount that had been reserved in the source balance will no longer be reserved in the target balance.Note: If the transfer amount removes the entire amount from the source balance, and that balance is configured to automatically expire, the balance is not expired upon completion of the transfer request. The next time Task Manager runs, as configured during MATRIXX Engine configuration, Task Manager processes the expiration.
- No adjustment (1)
- Adjust by the transferred amount (2)
- Adjust by source credit floor amount (3)
Option | Behavior |
---|---|
1 | No credit floor amount is calculated and the credit floor of the target balance is not adjusted. |
2 | The amount by which to adjust the target balance's credit floor is calculated by using the transferred amount. |
3 | The amount by which to adjust the target balance's credit
floor is calculated based on whether the transfer amount is a
percentage or an absolute value.
|
After the credit floor adjustment amount is determined, the way it is applied to the target balance credit floor is based on whether the target balance is a simple balance or a periodic balance and the Grant Credit Floor Adjust value in the balance template:
- Simple balances — If the
Grant Credit Floor Adjust value that is set in the
balance template is Grant Amount plus Balance Amount, the
new credit floor is equal to the current balance amount plus the calculated
credit floor adjustment amount. If the Grant Credit Floor
Adjust value is Actual Grant Amount, the
new credit floor is equal to the calculated credit floor adjustment amount. The simple balance Grant Credit Floor Adjust values are:
- Grant Amount plus Balance Amount
- Grant Amount
- Periodic balances — The new credit floor is equal to the current credit floor plus the calculated credit floor adjustment amount.
- If the balance is a currency, revenue is recognized according to the GL information in the MtxBalanceTransferEvent Event Detail Records (EDRs) (both primary event and secondary event).
- If the balance is a non-liability asset, there is no action because no GL information is generated in MtxBalanceTransferEvent EDRs.
- If the transferred balance is a liability asset, the asset and its deferred revenue amount is transferred from the source wallet to the target wallet. Revenue is recognized later when the transferred asset is consumed. The GL account names and transaction type specified in the GL information in the transfer event override those specified in the GL information from the original purchase event.
For more information about auto-expiring balances, see MATRIXX Pricing and Rating.
For information about normalizing on the transfer reason for GL accounts, see MATRIXX Pricing and Rating.
Failed Balance Transfers
- There is not enough in the sending balance to transfer (insufficient funds).
- The recipient balance can not accept the additional funds (balance floor reached).
balance_transfer_failure
event
should be enabled in pricing for this event to be generated as it is created in
the disabled state. For more information about event failure, see the discussion about event generation for failed transactions in MATRIXX Pricing and Rating. For more information about MtxBalanceTransferFailureEvent, see the discussion about MtxBalanceTransferFailureEvent in MATRIXX Integration.