Como usar a API de Subaccounts
Visão geral
Este tópico descreve um caso de uso em que um parceiro utiliza a API de Subaccounts para gerenciar com sucesso os clientes finais.
Pré-requisitos
Você deve estar familiarizado com o conceitos principais associadas à API de Subaccounts.
Criação de uma subconta
Um Parceiro decide criar uma subconta para cada cliente final e, assim, pode utilizar credenciais de API distintas para cada um deles e visualizar seus gastos. Isso é ilustrado no diagrama a seguir:

Para criar uma subconta, pode-se usar o seguinte código:
Escreva o código
Adicione o seguinte ao arquivo ` create-subaccount.sh`:
curl -X "POST" "https://api.nexmo.com/accounts/$VONAGE_API_KEY/subaccounts" -u $VONAGE_API_KEY:$VONAGE_API_SECRET \
-H "Content-Type: application/json" \
-d $'{"name":"'$NEW_SUBACCOUNT_NAME'", "secret":"'$NEW_SUBACCOUNT_SECRET'"}'Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
npm install @vonage/subaccountsCrie um arquivo chamado ` create-subaccount.js ` e insira o seguinte código:
const { SubAccounts } = require('@vonage/subaccounts');
const subAccountClient = new SubAccounts({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
});Escreva o código
Adicione o seguinte ao arquivo ` create-subaccount.js`:
subAccountClient.createSubAccount({
name: NEW_SUBACCOUNT_NAME,
secret: NEW_SUBACCOUNT_SECRET,
})
.then((newSubAccount) => console.log(newSubAccount))
.catch((error) => console.error(error));Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crie um arquivo chamado ` CreateSubaccount ` e adicione o código a seguir ao método ` main `:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` CreateSubaccount `:
val subaccount = client.subaccounts.createSubaccount(
name = SUBACCOUNT_NAME,
secret = SUBACCOUNT_SECRET
)Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.subaccounts ` pelo pacote que contém ` CreateSubaccount`:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'Crie um arquivo chamado ` CreateSubaccount ` e adicione o código a seguir ao método ` main `:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` CreateSubaccount `:
Account subaccount = client.getSubaccountsClient().createSubaccount(
CreateSubaccountRequest.builder()
.name(SUBACCOUNT_NAME)
.secret(SUBACCOUNT_SECRET)
.build()
);Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.subaccounts ` pelo pacote que contém ` CreateSubaccount`:
Pré-requisitos
Install-Package VonageCrie um arquivo chamado ` CreateSubAccountRequest.cs ` e insira o seguinte código:
using Vonage;
using Vonage.Request;Adicione o seguinte ao arquivo ` CreateSubAccountRequest.cs`:
var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);Escreva o código
Adicione o seguinte ao arquivo ` CreateSubAccountRequest.cs`:
var request = Vonage.SubAccounts.CreateSubAccount.CreateSubAccountRequest.Build()
.WithName(NEW_SUBACCOUNT_NAME)
.WithSecret(NEW_SUBACCOUNT_SECRET)
.Create();
var response = await client.SubAccountsClient.CreateSubAccountAsync(request);Pré-requisitos
composer require vonage/clientCrie um arquivo chamado ` create-subaccount.php ` e insira o seguinte código:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);Escreva o código
Adicione o seguinte ao arquivo ` 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);Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
pip install vonage python-dotenvEscreva o código
Adicione o seguinte ao arquivo ` 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=SUBACCOUNT_NAME, secret=SUBACCOUNT_SECRET)
)
print(response)Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
gem install vonageCrie um arquivo chamado ` create-subaccount.rb ` e insira o seguinte código:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Escreva o código
Adicione o seguinte ao arquivo ` create-subaccount.rb`:
client.subaccounts.create(
name: NEW_SUBACCOUNT_NAME,
secret: NEW_SUBACCOUNT_SECRET
)Execute seu código
Salve este arquivo no seu computador e execute-o:
Transferência de créditos
O Parceiro não conseguia controlar os gastos de seus clientes finais, pois todos compartilhavam o mesmo saldo. Um cliente final costumava, ocasionalmente, esgotar todo o saldo compartilhado, bloqueando efetivamente o acesso às APIs da Vonage para os demais clientes finais do Parceiro. O Parceiro decidiu definir um saldo individual e atribuir um limite de crédito a esse cliente final.
NOTA: O parceiro poderia ter feito o pré-pagamento de seus accounts.
É possível atribuir a cada subconta um saldo individual e um limite de crédito, conforme ilustrado no diagrama a seguir:

O trecho de código a seguir ilustra como alocar um valor específico de crédito a uma subconta:
Escreva o código
Adicione o seguinte ao arquivo ` transfer-credit.sh`:
curl -X "POST" "https://api.nexmo.com/accounts/$VONAGE_API_KEY/credit-transfers" -u $VONAGE_API_KEY:$VONAGE_API_SECRET \
-H "Content-Type: application/json" \
-d $'{"from":"'$VONAGE_API_KEY'", "to":"'$SUBACCOUNT_KEY'", "amount": '$AMOUNT'}'Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
npm install @vonage/subaccountsCrie um arquivo chamado ` transfer-credit.js ` e insira o seguinte código:
const { SubAccounts } = require('@vonage/subaccounts');
const subAccountClient = new SubAccounts({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
});Escreva o código
Adicione o seguinte ao arquivo ` transfer-credit.js`:
subAccountClient.transferCredit({
from: VONAGE_API_KEY,
to: SUBACCOUNT_KEY,
amount: AMOUNT,
})
.then((creditTransfer) => console.log(creditTransfer))
.catch((error) => console.error(error));Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crie um arquivo chamado ` TransferCredit ` e adicione o código a seguir ao método ` main `:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` TransferCredit `:
val receipt = client.subaccounts.transferCredit(
from = VONAGE_API_KEY,
to = SUBACCOUNT_KEY,
amount = SUBACCOUNT_CREDIT_AMOUNT
)Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.subaccounts ` pelo pacote que contém ` TransferCredit`:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'Crie um arquivo chamado ` TransferCredit ` e adicione o código a seguir ao método ` main `:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` TransferCredit `:
MoneyTransfer receipt = client.getSubaccountsClient().transferCredit(
MoneyTransfer.builder()
.from(VONAGE_API_KEY).to(SUBACCOUNT_KEY)
.amount(SUBACCOUNT_CREDIT_AMOUNT).build()
);
System.out.println("Transfer successful: "+receipt.getId());Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.subaccounts ` pelo pacote que contém ` TransferCredit`:
Pré-requisitos
Install-Package VonageCrie um arquivo chamado ` TransferCreditRequest.cs ` e insira o seguinte código:
using Vonage;
using Vonage.Request;
using Vonage.SubAccounts.TransferAmount;Adicione o seguinte ao arquivo ` TransferCreditRequest.cs`:
var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);Escreva o código
Adicione o seguinte ao arquivo ` TransferCreditRequest.cs`:
var request = TransferAmountRequest.Build()
.WithFrom(VONAGE_API_KEY)
.WithTo(SUBACCOUNT_KEY)
.WithAmount(amount)
.Create();
var response = await client.SubAccountsClient.TransferCreditAsync(request);Pré-requisitos
composer require vonage/clientCrie um arquivo chamado ` transfer-credit.php ` e insira o seguinte código:
$client = new \Vonage\Client($basic);
Escreva o código
Adicione o seguinte ao arquivo ` transfer-credit.php`:
$transferRequest = new \Vonage\Subaccount\Request\TransferBalanceRequest(VONAGE_API_KEY);
$transferRequest
->setFrom(VONAGE_API_KEY)
->setTo(SUBACCOUNT_KEY)
->setAmount(250);
$subaccount = $client->subaccount()->makeBalanceTransfer($transferRequest);Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
pip install vonage python-dotenvEscreva o código
Adicione o seguinte ao arquivo ` transfer-credit.py`:
from vonage import Auth, Vonage
from vonage_subaccounts import Transfer, TransferRequest
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
request = TransferRequest(
from_=VONAGE_API_KEY, to=SUBACCOUNT_KEY, amount=SUBACCOUNT_CREDIT_AMOUNT
)
response: Transfer = client.subaccounts.transfer_credit(request)
print(response)Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
gem install vonageCrie um arquivo chamado ` transfer-credit.rb ` e insira o seguinte código:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Escreva o código
Adicione o seguinte ao arquivo ` transfer-credit.rb`:
client.subaccounts.transfer_credit(
from: VONAGE_API_KEY,
to: SUBACCOUNT_KEY,
amount: AMOUNT
)Execute seu código
Salve este arquivo no seu computador e execute-o:
Verificação do saldo de todas as Subaccounts
O Parceiro decide implementar o monitoramento. É possível verificar periodicamente o saldo de todas as Subaccounts usando o seguinte trecho de código:
Escreva o código
Adicione o seguinte ao arquivo ` get-subaccounts.sh`:
curl "https://api.nexmo.com/accounts/$VONAGE_API_KEY/subaccounts" -u $VONAGE_API_KEY:$VONAGE_API_SECRETExecute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
npm install @vonage/subaccountsCrie um arquivo chamado ` get-subaccounts.js ` e insira o seguinte código:
const { SubAccounts } = require('@vonage/subaccounts');
const subAccountClient = new SubAccounts({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
});Escreva o código
Adicione o seguinte ao arquivo ` get-subaccounts.js`:
subAccountClient.getSubAccounts()
.then((subAccounts) => console.log(subAccounts))
.catch((error) => console.error(error));Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crie um arquivo chamado ` ListSubaccounts ` e adicione o código a seguir ao método ` main `:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` ListSubaccounts `:
val subaccounts = client.subaccounts.listSubaccounts()Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.subaccounts ` pelo pacote que contém ` ListSubaccounts`:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'Crie um arquivo chamado ` ListSubaccounts ` e adicione o código a seguir ao método ` main `:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` ListSubaccounts `:
ListSubaccountsResponse response = client.getSubaccountsClient().listSubaccounts();Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.subaccounts ` pelo pacote que contém ` ListSubaccounts`:
Pré-requisitos
Install-Package VonageCrie um arquivo chamado ` GetSubAccountsRequest.cs ` e insira o seguinte código:
using Vonage;
using Vonage.Request;Adicione o seguinte ao arquivo ` GetSubAccountsRequest.cs`:
var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);Escreva o código
Adicione o seguinte ao arquivo ` GetSubAccountsRequest.cs`:
var response = await client.SubAccountsClient.GetSubAccountsAsync();Pré-requisitos
composer require vonage/clientCrie um arquivo chamado ` get-subaccounts.php ` e insira o seguinte código:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);Escreva o código
Adicione o seguinte ao arquivo ` get-subaccounts.php`:
$subaccounts = $client->subaccount()->getSubaccounts(VONAGE_API_KEY);Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
pip install vonage python-dotenvEscreva o código
Adicione o seguinte ao arquivo ` list-subaccounts.py`:
from vonage import Auth, Vonage
from vonage_subaccounts import ListSubaccountsResponse
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
response: ListSubaccountsResponse = client.subaccounts.list_subaccounts()
print(response)Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
gem install vonageCrie um arquivo chamado ` list-subaccounts.rb ` e insira o seguinte código:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Escreva o código
Adicione o seguinte ao arquivo ` list-subaccounts.rb`:
response = client.subaccounts.listExecute seu código
Salve este arquivo no seu computador e execute-o:
Alocação adicional de crédito
Após algum tempo, o Parceiro percebeu que o cliente final 1 (subconta 1) havia esgotado todo o seu crédito (40 de 40) e não podia mais fazer chamadas de API. O Parceiro tinha duas opções: esperar que o cliente final 1 pagasse a ele (para, então, efetuar o pagamento à Vonage e transferir o saldo correspondente para a subconta) ou aumentar imediatamente o limite de crédito do cliente final, para que o cliente final 1 pudesse continuar usando a API da Vonage. O Parceiro decidiu alocar crédito adicional. O Parceiro tem 40 = |-60| - |-20| de crédito disponível e decide alocar 20 para a subconta. Isso é ilustrado no diagrama a seguir:

Transferências de saldo no final do mês
No final do mês, o Parceiro recebeu uma fatura de |-20| + |-50| = €70 da Vonage (correspondente a todos os gastos de todas as suas contas). O cliente final 1 (subconta1) cobriu 45 dos €50 que havia gasto. Assim, o Parceiro transferiu €45 para o saldo da subconta1. Isso é ilustrado no diagrama a seguir:

O código a seguir mostra como transferir saldo para uma subconta:
Escreva o código
Adicione o seguinte ao arquivo ` transfer-balance.sh`:
curl -X "POST" "https://api.nexmo.com/accounts/$VONAGE_API_KEY/balance-transfers" -u $VONAGE_API_KEY:$VONAGE_API_SECRET \
-H "Content-Type: application/json" \
-d $'{"from":"'$VONAGE_API_KEY'", "to":"'$SUBACCOUNT_KEY'", "amount": '$AMOUNT'}'Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
npm install @vonage/subaccountsCrie um arquivo chamado ` transfer-balance.js ` e insira o seguinte código:
const { SubAccounts } = require('@vonage/subaccounts');
const subAccountClient = new SubAccounts({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
});Escreva o código
Adicione o seguinte ao arquivo ` transfer-balance.js`:
subAccountClient.transferBalance({
from: VONAGE_API_KEY,
to: SUBACCOUNT_KEY,
amount: AMOUNT,
})
.then((balanceTransfer) => console.log(balanceTransfer))
.catch((error) => console.error(error));Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crie um arquivo chamado ` TransferBalance ` e adicione o código a seguir ao método ` main `:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` TransferBalance `:
val receipt = client.subaccounts.transferBalance(
from = VONAGE_API_KEY,
to = SUBACCOUNT_KEY,
amount = SUBACCOUNT_BALANCE_AMOUNT
)Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.subaccounts ` pelo pacote que contém ` TransferBalance`:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'Crie um arquivo chamado ` TransferBalance ` e adicione o código a seguir ao método ` main `:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` TransferBalance `:
MoneyTransfer receipt = client.getSubaccountsClient().transferBalance(
MoneyTransfer.builder()
.from(VONAGE_API_KEY).to(SUBACCOUNT_KEY)
.amount(SUBACCOUNT_BALANCE_AMOUNT).build()
);
System.out.println("Transfer successful: "+receipt.getId());Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.subaccounts ` pelo pacote que contém ` TransferBalance`:
Pré-requisitos
Install-Package VonageCrie um arquivo chamado ` TransferBalanceRequest.cs ` e insira o seguinte código:
using Vonage;
using Vonage.Request;
using Vonage.SubAccounts.TransferAmount;Adicione o seguinte ao arquivo ` TransferBalanceRequest.cs`:
var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);Escreva o código
Adicione o seguinte ao arquivo ` TransferBalanceRequest.cs`:
var request = TransferAmountRequest.Build()
.WithFrom(VONAGE_API_KEY)
.WithTo(SUBACCOUNT_KEY)
.WithAmount(amount)
.Create();
var response = await client.SubAccountsClient.TransferBalanceAsync(request);Pré-requisitos
composer require vonage/clientCrie um arquivo chamado ` transfer-balance.php ` e insira o seguinte código:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);Escreva o código
Adicione o seguinte ao arquivo ` transfer-balance.php`:
$transferRequest = new \Vonage\Subaccount\Request\TransferBalanceRequest(VONAGE_API_KEY);
$transferRequest
->setFrom(VONAGE_API_KEY)
->setTo(SUBACCOUNT_KEY)
->setAmount(250);
$subaccount = $client->subaccount()->makeBalanceTransfer($transferRequest);Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
pip install vonage python-dotenvEscreva o código
Adicione o seguinte ao arquivo ` transfer-balance.py`:
from vonage import Auth, Vonage
from vonage_subaccounts import Transfer, TransferRequest
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
request = TransferRequest(
from_=VONAGE_API_KEY, to=SUBACCOUNT_KEY, amount=SUBACCOUNT_BALANCE_AMOUNT
)
transfer: Transfer = client.subaccounts.transfer_balance(request)
print(transfer)Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
gem install vonageCrie um arquivo chamado ` transfer-balance.rb ` e insira o seguinte código:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Escreva o código
Adicione o seguinte ao arquivo ` transfer-balance.rb`:
client.subaccounts.transfer_balance(
from: VONAGE_API_KEY,
to: SUBACCOUNT_KEY,
amount: AMOUNT
)Execute seu código
Salve este arquivo no seu computador e execute-o:
Suspensão de uma subconta
O Parceiro gostou da possibilidade de controlar os gastos da subconta e decidiu atribuir um saldo individual e um crédito de €30 ao cliente final 2 (subconta2). O Parceiro, que estava monitorando os gastos de suas subaccounts, percebeu que a subconta2 havia consumido €25 de seu saldo. Preocupado com o ritmo de gastos da subconta 2, o Parceiro decidiu suspendê-la temporariamente. O código para suspender uma subconta é mostrado aqui:
Escreva o código
Adicione o seguinte ao arquivo ` suspend-subaccount.sh`:
curl -X "PATCH" "https://api.nexmo.com/accounts/$VONAGE_API_KEY/subaccounts/$SUBACCOUNT_KEY" -u $VONAGE_API_KEY:$VONAGE_API_SECRET \
-H "Content-Type: application/json" \
-d $'{"suspended":true}'Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
npm install @vonage/subaccountsCrie um arquivo chamado ` suspend-subaccount.js ` e insira o seguinte código:
const { SubAccounts } = require('@vonage/subaccounts');
const subAccountClient = new SubAccounts({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
});Escreva o código
Adicione o seguinte ao arquivo ` suspend-subaccount.js`:
subAccountClient.updateSubAccount(
SUBACCOUNT_KEY,
{ suspended: true },
)
.then((subAccount) => console.log(subAccount))
.catch((error) => console.error(error));Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crie um arquivo chamado ` SuspendSubaccount ` e adicione o código a seguir ao método ` main `:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` SuspendSubaccount `:
val subaccount = client.subaccounts.subaccount(SUBACCOUNT_KEY).suspended(true)Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.subaccounts ` pelo pacote que contém ` SuspendSubaccount`:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'Crie um arquivo chamado ` DeactivateSubaccount ` e adicione o código a seguir ao método ` main `:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` DeactivateSubaccount `:
Account subaccount = client.getSubaccountsClient().updateSubaccount(
UpdateSubaccountRequest.builder(SUBACCOUNT_KEY).suspended(true).build()
);Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.subaccounts ` pelo pacote que contém ` DeactivateSubaccount`:
Pré-requisitos
Install-Package VonageCrie um arquivo chamado ` SuspendAccountRequest.cs ` e insira o seguinte código:
using Vonage;
using Vonage.Request;
using Vonage.SubAccounts.UpdateSubAccount;Adicione o seguinte ao arquivo ` SuspendAccountRequest.cs`:
var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);Escreva o código
Adicione o seguinte ao arquivo ` SuspendAccountRequest.cs`:
var request = UpdateSubAccountRequest.Build().WithSubAccountKey(SUBACCOUNT_KEY)
.SuspendAccount()
.Create();
var response = await client.SubAccountsClient.UpdateSubAccountAsync(request);Pré-requisitos
composer require vonage/clientCrie um arquivo chamado ` suspend-subaccount.php ` e insira o seguinte código:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);Escreva o código
Adicione o seguinte ao arquivo ` suspend-subaccount.php`:
$account = new \Vonage\Subaccount\SubaccountObjects\Account();
$account->setSuspended(true);
$subaccount = $client->subaccount()->updateSubaccount(VONAGE_API_KEY, SUBACCOUNT_KEY, $account);Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
pip install vonage python-dotenvEscreva o código
Adicione o seguinte ao arquivo ` suspend-subaccount.py`:
from vonage import Auth, Vonage
from vonage_subaccounts import ModifySubaccountOptions, Subaccount
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
response: Subaccount = client.subaccounts.modify_subaccount(
subaccount_api_key=SUBACCOUNT_KEY,
options=ModifySubaccountOptions(suspended=True),
)
print(response)Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
gem install vonageCrie um arquivo chamado ` suspend-subaccount.rb ` e insira o seguinte código:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Escreva o código
Adicione o seguinte ao arquivo ` suspend-subaccount.rb`:
client.subaccounts.update(
subaccount_key: SUBACCOUNT_KEY,
suspended: true
)Execute seu código
Salve este arquivo no seu computador e execute-o:
Reativando uma subconta
Após conversas com a subconta2, o Parceiro decide reativar a conta da subconta2. Isso pode ser feito usando o seguinte código:
Escreva o código
Adicione o seguinte ao arquivo ` reactivate-subaccount.sh`:
curl -X "PATCH" "https://api.nexmo.com/accounts/$VONAGE_API_KEY/subaccounts/$SUBACCOUNT_KEY" -u $VONAGE_API_KEY:$VONAGE_API_SECRET \
-H "Content-Type: application/json" \
-d $'{"suspended":false}'Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
npm install @vonage/subaccountsCrie um arquivo chamado ` reactivate-subaccount.js ` e insira o seguinte código:
const { SubAccounts } = require('@vonage/subaccounts');
const subAccountClient = new SubAccounts({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
});Escreva o código
Adicione o seguinte ao arquivo ` reactivate-subaccount.js`:
subAccountClient.updateSubAccount(
SUBACCOUNT_KEY,
{ suspended: false },
)
.then((subAccount) => console.log(subAccount))
.catch((error) => console.error(error));Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crie um arquivo chamado ` ReactivateSubaccount ` e adicione o código a seguir ao método ` main `:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` ReactivateSubaccount `:
val subaccount = client.subaccounts.subaccount(SUBACCOUNT_KEY).suspended(false)Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.subaccounts ` pelo pacote que contém ` ReactivateSubaccount`:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'Crie um arquivo chamado ` ReactivateSubaccount ` e adicione o código a seguir ao método ` main `:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` ReactivateSubaccount `:
Account subaccount = client.getSubaccountsClient().updateSubaccount(
UpdateSubaccountRequest.builder(SUBACCOUNT_KEY).suspended(false).build()
);Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.subaccounts ` pelo pacote que contém ` ReactivateSubaccount`:
Pré-requisitos
Install-Package VonageCrie um arquivo chamado ` EnableAccountRequest.cs ` e insira o seguinte código:
using Vonage;
using Vonage.Request;
using Vonage.SubAccounts.UpdateSubAccount;Adicione o seguinte ao arquivo ` EnableAccountRequest.cs`:
var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);Escreva o código
Adicione o seguinte ao arquivo ` EnableAccountRequest.cs`:
var request = UpdateSubAccountRequest.Build().WithSubAccountKey(SUBACCOUNT_KEY)
.EnableAccount()
.Create();
var response = await client.SubAccountsClient.UpdateSubAccountAsync(request);Pré-requisitos
composer require vonage/clientCrie um arquivo chamado ` reactivate-subaccount.php ` e insira o seguinte código:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);Escreva o código
Adicione o seguinte ao arquivo ` reactivate-subaccount.php`:
$account = new \Vonage\Subaccount\SubaccountObjects\Account();
$account->setSuspended(false);
$subaccount = $client->subaccount()->updateSubaccount(VONAGE_API_KEY, SUBACCOUNT_KEY, $account);Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
pip install vonage python-dotenvEscreva o código
Adicione o seguinte ao arquivo ` reactivate-subaccount.py`:
from vonage import Auth, Vonage
from vonage_subaccounts import ModifySubaccountOptions, Subaccount
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
response: Subaccount = client.subaccounts.modify_subaccount(
subaccount_api_key=SUBACCOUNT_KEY,
options=ModifySubaccountOptions(suspended=False),
)
print(response)Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
gem install vonageCrie um arquivo chamado ` reactivate-subaccount.rb ` e insira o seguinte código:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Escreva o código
Adicione o seguinte ao arquivo ` reactivate-subaccount.rb`:
client.subaccounts.update(
subaccount_key: SUBACCOUNT_KEY,
suspended: false
)Execute seu código
Salve este arquivo no seu computador e execute-o:
Resumo
Neste tópico, você viu como usar a API de Subaccounts para gerenciar clientes finais em cenários comuns.