Create a Subaccount
In this code snippet you will see how to create a subaccount.
Example
Ensure the following variables are set to your required values using any convenient method:
| Key | Description |
|---|---|
VONAGE_API_KEY | The API key of the parent account. |
VONAGE_API_SECRET | The API secret of the parent account. |
NEW_SUBACCOUNT_NAME | The name of the new subaccount. |
NEW_SUBACCOUNT_SECRET | The API secret of the new subaccount. |
Write the code
Add the following to create-subaccount.sh:
curl -X POST -u $VONAGE_API_KEY:$VONAGE_API_SECRET https://api.nexmo.com/accounts/$VONAGE_API_KEY/subaccounts \
-H "Content-Type: application/json" \
-d $'{"name":"'$NEW_SUBACCOUNT_NAME'", "secret":"'$NEW_SUBACCOUNT_SECRET'"}'Run your code
Save this file to your machine and run it:
Prerequisites
Add the following to build.gradle:
implementation 'com.vonage:server-sdk-kotlin:1.1.2'Create a file named CreateSubaccount and add the following code to the main method:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Write the code
Add the following to the main method of the CreateSubaccount file:
val subaccount = client.subaccounts.createSubaccount(
name = NEW_SUBACCOUNT_NAME,
secret = NEW_SUBACCOUNT_SECRET
)Run your code
We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Run the following gradle command to execute your application, replacing com.vonage.quickstart.kt.subaccounts with the package containing CreateSubaccount:
Prerequisites
Add the following to build.gradle:
implementation 'com.vonage:server-sdk:8.15.1'Create a file named CreateSubaccount and add the following code to the main method:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();Write the code
Add the following to the main method of the CreateSubaccount file:
Account subaccount = client.getSubaccountsClient().createSubaccount(
CreateSubaccountRequest.builder()
.name(NEW_SUBACCOUNT_NAME)
.secret(NEW_SUBACCOUNT_SECRET)
.build()
);Run your code
We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Run the following gradle command to execute your application, replacing com.vonage.quickstart.subaccounts with the package containing CreateSubaccount:
Prerequisites
Install-Package VonageCreate a file named CreateSubAccountRequest.cs and add the following code:
using Vonage;
using Vonage.Request;Add the following to CreateSubAccountRequest.cs:
var credentials = Credentials.FromApiKeyAndSecret(vonageApiKey, vonageApiSecret);
var client = new VonageClient(credentials);Write the code
Add the following to CreateSubAccountRequest.cs:
var request = Vonage.SubAccounts.CreateSubAccount.CreateSubAccountRequest.Build()
.WithName(newSubAccountName)
.WithSecret(newSubAccountSecret)
.Create();
var response = await client.SubAccountsClient.CreateSubAccountAsync(request);Prerequisites
composer require vonage/clientCreate a file named create-subaccount.php and add the following code:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);Write the code
Add the following to create-subaccount.php:
$account = new \Vonage\Subaccount\SubaccountObjects\Account();
$account->setName(NEW_SUBACCOUNT_NAME);
$account->setSecret(NEW_SUBACCOUNT_SECRET);
$client->subaccount()->createSubaccount(VONAGE_API_KEY, $account);Run your code
Save this file to your machine and run it:
Prerequisites
pip install vonageWrite the code
Add the following to create-subaccount.py:
from vonage import Auth, Vonage
from vonage_subaccounts import NewSubaccount, SubaccountOptions
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
response: NewSubaccount = client.subaccounts.create_subaccount(
SubaccountOptions(
name=NEW_SUBACCOUNT_NAME,
secret=NEW_SUBACCOUNT_SECRET,
use_primary_account_balance=False,
)
)
print(response)Run your code
Save this file to your machine and run it:
Prerequisites
gem install vonageCreate a file named create-subaccount.rb and add the following code:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Write the code
Add the following to create-subaccount.rb:
client.subaccounts.create(
name: NEW_SUBACCOUNT_NAME,
secret: NEW_SUBACCOUNT_SECRET
)Run your code
Save this file to your machine and run it:
Try it out
When you run the code you create a new subaccount of the parent account.
NOTE: This code snippet will create a subaccount that has a credit and balance facility shared with the parent account. If you want to create a subaccount that does not have a credit and balance shared with the parent then you need to set use_primary_account_balance to false when you create the subaccount.