Using Voximplant ChildAccounts
There is a number of Voximplant entities developers work with and it's important to understand user and account management to design your application properly. Voximplant application users reflect end users of the application, and Voximplant developer can control each user account balance by setting the parent_accounting parameter to false (via the AddUser and SetUserInfo methods) or specifying this setting in the Control Panel (a Separate account balance checkbox) while creating/editing the app user.
It's possible to transfer funds from the developer account to an app user account and back using the TransferMoneyToUser method.
But let's imagine that a developer is building Cloud PBX service where every company should have its own account balance and can control users account balance (if required), while the developer has his own developer account balance where he uploads funds to spread among companies. For this type of service Voximplant offers child accounts (subaccounts) that can be created by a developer using his parent account credentials, PLEASE NOTICE that this functionality is disabled by default and developers need to ask Voximplant team to enable it. In this case for transferring funds from developer account to child accounts TransferMoneyToChildAccount method should be used. See the picture below:
If a developer needs to withdraw funds from user or child account balance and add it to his account balance then amount should be negative, otherwise – positive. Thus the chain for adding funds looks like as follows: Developer's card / wire -> Developer account balance -> Child account balance (optional) -> App user account balance (optional).