Utilisation de l'API Subaccounts

Vue d'ensemble

Cette rubrique décrit un cas d'utilisation dans lequel un partenaire utilise l'API Subaccounts pour gérer avec succès les clients finaux.

Conditions préalables

Vous devez connaître le Concepts principaux associée à l'API Subaccounts.

Création d'un Subaccounts

Un partenaire décide de créer un Subaccounts pour chaque client final et peut ainsi utiliser des identifiants API distincts pour chacun des clients finaux et voir leurs dépenses. Ceci est illustré dans le diagramme suivant :

Subaccounts with shared balance

Pour créer un Subaccounts, le code suivant peut être utilisé :

Rédiger le code

Ajouter ce qui suit à 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'"}'

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

bash create-subaccount.sh

Conditions préalables

npm install @vonage/subaccounts

Créez un fichier nommé create-subaccount.js et ajoutez le code suivant :

const { SubAccounts } = require('@vonage/subaccounts');

const subAccountClient = new SubAccounts({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

Voir la source complète

Rédiger le code

Ajouter ce qui suit à create-subaccount.js:

subAccountClient.createSubAccount({
  name: NEW_SUBACCOUNT_NAME,
  secret: NEW_SUBACCOUNT_SECRET,
})
  .then((newSubAccount) => console.log(newSubAccount))
  .catch((error) => console.error(error));

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

node create-subaccount.js

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Créez un fichier nommé CreateSubaccount et ajoutez le code suivant à la méthode main:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier CreateSubaccount:

val subaccount = client.subaccounts.createSubaccount(
    name = SUBACCOUNT_NAME,
    secret = SUBACCOUNT_SECRET
)

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.subaccounts par le paquet contenant CreateSubaccount:

gradle run -Pmain=com.vonage.quickstart.kt.subaccounts.CreateSubaccount

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Créez un fichier nommé CreateSubaccount et ajoutez le code suivant à la méthode main:

VonageClient client = VonageClient.builder()
		.apiKey(VONAGE_API_KEY)
		.apiSecret(VONAGE_API_SECRET)
		.build();

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier CreateSubaccount:

Account subaccount = client.getSubaccountsClient().createSubaccount(
		CreateSubaccountRequest.builder()
			.name(SUBACCOUNT_NAME)
			.secret(SUBACCOUNT_SECRET)
			.build()
);

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.subaccounts par le paquet contenant CreateSubaccount:

gradle run -Pmain=com.vonage.quickstart.subaccounts.CreateSubaccount

Conditions préalables

Install-Package Vonage

Créez un fichier nommé CreateSubAccountRequest.cs et ajoutez le code suivant :

using Vonage;
using Vonage.Request;

Voir la source complète

Ajouter ce qui suit à CreateSubAccountRequest.cs:

var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à 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);

Voir la source complète

Conditions préalables

composer require vonage/client

Créez un fichier nommé create-subaccount.php et ajoutez le code suivant :


$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à 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);

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

php create-subaccount.php

Conditions préalables

pip install vonage python-dotenv

Rédiger le code

Ajouter ce qui suit à 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)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

python subaccounts/create-subaccount.py

Conditions préalables

gem install vonage

Créez un fichier nommé create-subaccount.rb et ajoutez le code suivant :

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

Voir la source complète

Rédiger le code

Ajouter ce qui suit à create-subaccount.rb:

client.subaccounts.create(
  name: NEW_SUBACCOUNT_NAME,
  secret: NEW_SUBACCOUNT_SECRET
)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

ruby create-subaccount.rb

Transfert de crédits

Le partenaire ne pouvait pas contrôler les dépenses de ses clients finaux parce qu'ils partageaient tous le même solde. Un client final avait l'habitude de consommer occasionnellement tout le solde partagé, bloquant ainsi l'accès aux API de Vonage pour les autres clients finaux du partenaire. Le partenaire a décidé de fixer un solde individuel et d'attribuer une limite de crédit à ce client final.

NOTE : Le partenaire aurait pu faire en sorte que ses comptes soient prépayés.

Chaque Subaccounts peut se voir attribuer un solde individuel et une limite de crédit, comme le montre le diagramme suivant :

Credit allocation

L'extrait de code suivant illustre l'attribution d'un montant de crédit spécifié à un Subaccounts :

Rédiger le code

Ajouter ce qui suit à 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'}'

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

bash transfer-credit.sh

Conditions préalables

npm install @vonage/subaccounts

Créez un fichier nommé transfer-credit.js et ajoutez le code suivant :

const { SubAccounts } = require('@vonage/subaccounts');

const subAccountClient = new SubAccounts({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

Voir la source complète

Rédiger le code

Ajouter ce qui suit à transfer-credit.js:

subAccountClient.transferCredit({
  from: VONAGE_API_KEY,
  to: SUBACCOUNT_KEY,
  amount: AMOUNT,
})
  .then((creditTransfer) => console.log(creditTransfer))
  .catch((error) => console.error(error));

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

node transfer-credit.js

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Créez un fichier nommé TransferCredit et ajoutez le code suivant à la méthode main:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier TransferCredit:

val receipt = client.subaccounts.transferCredit(
    from = VONAGE_API_KEY,
    to = SUBACCOUNT_KEY,
    amount = SUBACCOUNT_CREDIT_AMOUNT
)

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.subaccounts par le paquet contenant TransferCredit:

gradle run -Pmain=com.vonage.quickstart.kt.subaccounts.TransferCredit

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Créez un fichier nommé TransferCredit et ajoutez le code suivant à la méthode main:

VonageClient client = VonageClient.builder()
		.apiKey(VONAGE_API_KEY)
		.apiSecret(VONAGE_API_SECRET)
		.build();

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier 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());

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.subaccounts par le paquet contenant TransferCredit:

gradle run -Pmain=com.vonage.quickstart.subaccounts.TransferCredit

Conditions préalables

Install-Package Vonage

Créez un fichier nommé TransferCreditRequest.cs et ajoutez le code suivant :

using Vonage;
using Vonage.Request;
using Vonage.SubAccounts.TransferAmount;

Voir la source complète

Ajouter ce qui suit à TransferCreditRequest.cs:

var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à TransferCreditRequest.cs:

var request = TransferAmountRequest.Build()
    .WithFrom(VONAGE_API_KEY)
    .WithTo(SUBACCOUNT_KEY)
    .WithAmount(amount)
    .Create();
var response = await client.SubAccountsClient.TransferCreditAsync(request);

Voir la source complète

Conditions préalables

composer require vonage/client

Créez un fichier nommé transfer-credit.php et ajoutez le code suivant :

$client = new \Vonage\Client($basic);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à 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);

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

php transfer-credit.php

Conditions préalables

pip install vonage python-dotenv

Rédiger le code

Ajouter ce qui suit à 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)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

python subaccounts/transfer-credit.py

Conditions préalables

gem install vonage

Créez un fichier nommé transfer-credit.rb et ajoutez le code suivant :

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

Voir la source complète

Rédiger le code

Ajouter ce qui suit à transfer-credit.rb:

client.subaccounts.transfer_credit(
  from: VONAGE_API_KEY,
  to: SUBACCOUNT_KEY,
  amount: AMOUNT
)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

ruby transfer-credit.rb

Vérification du solde de tous les Subaccounts

Le partenaire décide de mettre en place un suivi. Il est possible de vérifier périodiquement le solde de tous les Subaccounts à l'aide de l'extrait de code suivant :

Rédiger le code

Ajouter ce qui suit à get-subaccounts.sh:

curl "https://api.nexmo.com/accounts/$VONAGE_API_KEY/subaccounts" -u $VONAGE_API_KEY:$VONAGE_API_SECRET

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

bash get-subaccounts.sh

Conditions préalables

npm install @vonage/subaccounts

Créez un fichier nommé get-subaccounts.js et ajoutez le code suivant :

const { SubAccounts } = require('@vonage/subaccounts');

const subAccountClient = new SubAccounts({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

Voir la source complète

Rédiger le code

Ajouter ce qui suit à get-subaccounts.js:

subAccountClient.getSubAccounts()
  .then((subAccounts) => console.log(subAccounts))
  .catch((error) => console.error(error));

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

node get-subaccounts.js

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Créez un fichier nommé ListSubaccounts et ajoutez le code suivant à la méthode main:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier ListSubaccounts:

val subaccounts = client.subaccounts.listSubaccounts()

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.subaccounts par le paquet contenant ListSubaccounts:

gradle run -Pmain=com.vonage.quickstart.kt.subaccounts.ListSubaccounts

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Créez un fichier nommé ListSubaccounts et ajoutez le code suivant à la méthode main:

VonageClient client = VonageClient.builder()
		.apiKey(VONAGE_API_KEY)
		.apiSecret(VONAGE_API_SECRET)
		.build();

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier ListSubaccounts:

ListSubaccountsResponse response = client.getSubaccountsClient().listSubaccounts();

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.subaccounts par le paquet contenant ListSubaccounts:

gradle run -Pmain=com.vonage.quickstart.subaccounts.ListSubaccounts

Conditions préalables

Install-Package Vonage

Créez un fichier nommé GetSubAccountsRequest.cs et ajoutez le code suivant :

using Vonage;
using Vonage.Request;

Voir la source complète

Ajouter ce qui suit à GetSubAccountsRequest.cs:

var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à GetSubAccountsRequest.cs:

var response = await client.SubAccountsClient.GetSubAccountsAsync();

Voir la source complète

Conditions préalables

composer require vonage/client

Créez un fichier nommé get-subaccounts.php et ajoutez le code suivant :

$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à get-subaccounts.php:

$subaccounts = $client->subaccount()->getSubaccounts(VONAGE_API_KEY);

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

php get-subaccounts.php

Conditions préalables

pip install vonage python-dotenv

Rédiger le code

Ajouter ce qui suit à 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)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

python subaccounts/list-subaccounts.py

Conditions préalables

gem install vonage

Créez un fichier nommé list-subaccounts.rb et ajoutez le code suivant :

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

Voir la source complète

Rédiger le code

Ajouter ce qui suit à list-subaccounts.rb:

response = client.subaccounts.list

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

ruby list-subaccounts.rb

Attribution de crédits supplémentaires

Après un certain temps, le partenaire a remarqué que le client final 1 (sous-compte 1) avait utilisé tout son crédit (40 sur 40) et ne pouvait plus effectuer d'appels API. Le partenaire avait le choix entre attendre que le client final 1 le paye (et ensuite effectuer un paiement à Vonage et transférer un solde correspondant au sous-compte) ou augmenter la limite de crédit du client final immédiatement afin que le client final 1 puisse continuer à utiliser l'API de Vonage. Le partenaire a décidé d'allouer un crédit supplémentaire. Le Partenaire a 40 = |-60| - |-20| crédit disponible, et décide d'allouer 20 au Subaccounts. Ceci est illustré dans le diagramme suivant :

Additional credit

Transferts de solde en fin de mois

À la fin du mois, le partenaire a reçu une facture de 70 € de Vonage (pour toutes les dépenses de tous ses Account). Le client final 1 (sous-compte 1) a couvert 45 des 50 € qu'il avait dépensés. Le partenaire a donc transféré 45 € au solde du sous-compte 1. Ceci est illustré dans le diagramme suivant :

Additional credit

Le code suivant montre comment transférer le solde vers un Subaccounts :

Rédiger le code

Ajouter ce qui suit à 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'}'

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

bash transfer-balance.sh

Conditions préalables

npm install @vonage/subaccounts

Créez un fichier nommé transfer-balance.js et ajoutez le code suivant :

const { SubAccounts } = require('@vonage/subaccounts');

const subAccountClient = new SubAccounts({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

Voir la source complète

Rédiger le code

Ajouter ce qui suit à transfer-balance.js:

subAccountClient.transferBalance({
  from: VONAGE_API_KEY,
  to: SUBACCOUNT_KEY,
  amount: AMOUNT,
})
  .then((balanceTransfer) => console.log(balanceTransfer))
  .catch((error) => console.error(error));

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

node transfer-balance.js

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Créez un fichier nommé TransferBalance et ajoutez le code suivant à la méthode main:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier TransferBalance:

val receipt = client.subaccounts.transferBalance(
    from = VONAGE_API_KEY,
    to = SUBACCOUNT_KEY,
    amount = SUBACCOUNT_BALANCE_AMOUNT
)

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.subaccounts par le paquet contenant TransferBalance:

gradle run -Pmain=com.vonage.quickstart.kt.subaccounts.TransferBalance

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Créez un fichier nommé TransferBalance et ajoutez le code suivant à la méthode main:

VonageClient client = VonageClient.builder()
		.apiKey(VONAGE_API_KEY)
		.apiSecret(VONAGE_API_SECRET)
		.build();

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier 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());

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.subaccounts par le paquet contenant TransferBalance:

gradle run -Pmain=com.vonage.quickstart.subaccounts.TransferBalance

Conditions préalables

Install-Package Vonage

Créez un fichier nommé TransferBalanceRequest.cs et ajoutez le code suivant :

using Vonage;
using Vonage.Request;
using Vonage.SubAccounts.TransferAmount;

Voir la source complète

Ajouter ce qui suit à TransferBalanceRequest.cs:

var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à TransferBalanceRequest.cs:

var request = TransferAmountRequest.Build()
    .WithFrom(VONAGE_API_KEY)
    .WithTo(SUBACCOUNT_KEY)
    .WithAmount(amount)
    .Create();
var response = await client.SubAccountsClient.TransferBalanceAsync(request);

Voir la source complète

Conditions préalables

composer require vonage/client

Créez un fichier nommé transfer-balance.php et ajoutez le code suivant :

$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à 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);

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

php transfer-balance.php

Conditions préalables

pip install vonage python-dotenv

Rédiger le code

Ajouter ce qui suit à 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)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

python subaccounts/transfer-balance.py

Conditions préalables

gem install vonage

Créez un fichier nommé transfer-balance.rb et ajoutez le code suivant :

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

Voir la source complète

Rédiger le code

Ajouter ce qui suit à transfer-balance.rb:

client.subaccounts.transfer_balance(
  from: VONAGE_API_KEY,
  to: SUBACCOUNT_KEY,
  amount: AMOUNT
)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

ruby transfer-balance.rb

Suspension d'un Subaccounts

Le Partenaire a apprécié la possibilité de contrôler les dépenses du sous-compte et a décidé d'affecter le solde individuel et le crédit de 30 € au client final 2 (sous-compte2). Le Partenaire, qui surveillait les dépenses de ses sous-comptes, a remarqué que le sous-compte2 avait consommé 25 € de son solde. Alarmé par le taux de dépense du sous-compte 2, le Partenaire a décidé de suspendre temporairement le sous-compte 2. Le code pour suspendre un Subaccounts est montré ici :

Rédiger le code

Ajouter ce qui suit à 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}'

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

bash suspend-subaccount.sh

Conditions préalables

npm install @vonage/subaccounts

Créez un fichier nommé suspend-subaccount.js et ajoutez le code suivant :

const { SubAccounts } = require('@vonage/subaccounts');

const subAccountClient = new SubAccounts({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

Voir la source complète

Rédiger le code

Ajouter ce qui suit à suspend-subaccount.js:

subAccountClient.updateSubAccount(
  SUBACCOUNT_KEY,
  { suspended: true },
)
  .then((subAccount) => console.log(subAccount))
  .catch((error) => console.error(error));

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

node suspend-subaccount.js

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Créez un fichier nommé SuspendSubaccount et ajoutez le code suivant à la méthode main:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier SuspendSubaccount:

val subaccount = client.subaccounts.subaccount(SUBACCOUNT_KEY).suspended(true)

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.subaccounts par le paquet contenant SuspendSubaccount:

gradle run -Pmain=com.vonage.quickstart.kt.subaccounts.SuspendSubaccount

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Créez un fichier nommé DeactivateSubaccount et ajoutez le code suivant à la méthode main:

VonageClient client = VonageClient.builder()
		.apiKey(VONAGE_API_KEY)
		.apiSecret(VONAGE_API_SECRET)
		.build();

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier DeactivateSubaccount:

Account subaccount = client.getSubaccountsClient().updateSubaccount(
		UpdateSubaccountRequest.builder(SUBACCOUNT_KEY).suspended(true).build()
);

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.subaccounts par le paquet contenant DeactivateSubaccount:

gradle run -Pmain=com.vonage.quickstart.subaccounts.DeactivateSubaccount

Conditions préalables

Install-Package Vonage

Créez un fichier nommé SuspendAccountRequest.cs et ajoutez le code suivant :

using Vonage;
using Vonage.Request;
using Vonage.SubAccounts.UpdateSubAccount;

Voir la source complète

Ajouter ce qui suit à SuspendAccountRequest.cs:

var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à SuspendAccountRequest.cs:

var request = UpdateSubAccountRequest.Build().WithSubAccountKey(SUBACCOUNT_KEY)
    .SuspendAccount()
    .Create();
var response = await client.SubAccountsClient.UpdateSubAccountAsync(request);

Voir la source complète

Conditions préalables

composer require vonage/client

Créez un fichier nommé suspend-subaccount.php et ajoutez le code suivant :

$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à suspend-subaccount.php:

$account = new \Vonage\Subaccount\SubaccountObjects\Account();
$account->setSuspended(true);

$subaccount = $client->subaccount()->updateSubaccount(VONAGE_API_KEY, SUBACCOUNT_KEY, $account);

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

php suspend-subaccount.php

Conditions préalables

pip install vonage python-dotenv

Rédiger le code

Ajouter ce qui suit à 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)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

python subaccounts/suspend-subaccount.py

Conditions préalables

gem install vonage

Créez un fichier nommé suspend-subaccount.rb et ajoutez le code suivant :

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

Voir la source complète

Rédiger le code

Ajouter ce qui suit à suspend-subaccount.rb:

client.subaccounts.update(
  subaccount_key: SUBACCOUNT_KEY,
  suspended: true
)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

ruby suspend-subaccount.rb

Réactivation d'un Subaccounts

Après avoir discuté avec le sous-compte2, le Partenaire décide de réactiver le compte du sous-compte2. Ceci peut être réalisé en utilisant le code suivant :

Rédiger le code

Ajouter ce qui suit à 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}'

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

bash reactivate-subaccount.sh

Conditions préalables

npm install @vonage/subaccounts

Créez un fichier nommé reactivate-subaccount.js et ajoutez le code suivant :

const { SubAccounts } = require('@vonage/subaccounts');

const subAccountClient = new SubAccounts({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

Voir la source complète

Rédiger le code

Ajouter ce qui suit à reactivate-subaccount.js:

subAccountClient.updateSubAccount(
  SUBACCOUNT_KEY,
  { suspended: false },
)
  .then((subAccount) => console.log(subAccount))
  .catch((error) => console.error(error));

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

node reactivate-subaccount.js

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Créez un fichier nommé ReactivateSubaccount et ajoutez le code suivant à la méthode main:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier ReactivateSubaccount:

val subaccount = client.subaccounts.subaccount(SUBACCOUNT_KEY).suspended(false)

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.subaccounts par le paquet contenant ReactivateSubaccount:

gradle run -Pmain=com.vonage.quickstart.kt.subaccounts.ReactivateSubaccount

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Créez un fichier nommé ReactivateSubaccount et ajoutez le code suivant à la méthode main:

VonageClient client = VonageClient.builder()
		.apiKey(VONAGE_API_KEY)
		.apiSecret(VONAGE_API_SECRET)
		.build();

Voir la source complète

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier ReactivateSubaccount:

Account subaccount = client.getSubaccountsClient().updateSubaccount(
		UpdateSubaccountRequest.builder(SUBACCOUNT_KEY).suspended(false).build()
);

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.subaccounts par le paquet contenant ReactivateSubaccount:

gradle run -Pmain=com.vonage.quickstart.subaccounts.ReactivateSubaccount

Conditions préalables

Install-Package Vonage

Créez un fichier nommé EnableAccountRequest.cs et ajoutez le code suivant :

using Vonage;
using Vonage.Request;
using Vonage.SubAccounts.UpdateSubAccount;

Voir la source complète

Ajouter ce qui suit à EnableAccountRequest.cs:

var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à EnableAccountRequest.cs:

var request = UpdateSubAccountRequest.Build().WithSubAccountKey(SUBACCOUNT_KEY)
    .EnableAccount()
    .Create();
var response = await client.SubAccountsClient.UpdateSubAccountAsync(request);

Voir la source complète

Conditions préalables

composer require vonage/client

Créez un fichier nommé reactivate-subaccount.php et ajoutez le code suivant :

$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);

Voir la source complète

Rédiger le code

Ajouter ce qui suit à reactivate-subaccount.php:

$account = new \Vonage\Subaccount\SubaccountObjects\Account();
$account->setSuspended(false);

$subaccount = $client->subaccount()->updateSubaccount(VONAGE_API_KEY, SUBACCOUNT_KEY, $account);

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

php reactivate-subaccount.php

Conditions préalables

pip install vonage python-dotenv

Rédiger le code

Ajouter ce qui suit à 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)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

python subaccounts/reactivate-subaccount.py

Conditions préalables

gem install vonage

Créez un fichier nommé reactivate-subaccount.rb et ajoutez le code suivant :

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

Voir la source complète

Rédiger le code

Ajouter ce qui suit à reactivate-subaccount.rb:

client.subaccounts.update(
  subaccount_key: SUBACCOUNT_KEY,
  suspended: false
)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

ruby reactivate-subaccount.rb

Résumé

Dans cette rubrique, vous avez vu comment utiliser l'API Subaccounts pour gérer les clients finaux dans des scénarios typiques.

Autres ressources