Class SubAccountsClient
- Namespace
- Vonage.SubAccounts
- Assembly
- Vonage.dll
public class SubAccountsClient : ISubAccountsClient
- Inheritance
-
SubAccountsClient
- Implements
- Inherited Members
Constructors
SubAccountsClient(VonageHttpClientConfiguration, string)
Creates a new Subaccounts API client.
public SubAccountsClient(VonageHttpClientConfiguration configuration, string apiKey)
Parameters
configurationVonageHttpClientConfigurationThe HTTP client configuration.
apiKeystringThe primary account API key.
Methods
CreateSubAccountAsync(Result<CreateSubAccountRequest>)
Creates a subaccount under the primary account.
public Task<Result<Account>> CreateSubAccountAsync(Result<CreateSubAccountRequest> request)
Parameters
requestResult<CreateSubAccountRequest>The request containing the subaccount details. See CreateSubAccountRequest.
Returns
- Task<Result<Account>>
A Result<T> containing the created Account with its API key and secret on success, or an error on failure.
Examples
var request = CreateSubAccountRequest.Build()
.WithName("Department A")
.DisableSharedAccountBalance()
.Create();
var result = await client.SubAccountsClient.CreateSubAccountAsync(request);
- See Also
GetBalanceTransfersAsync(Result<GetTransfersRequest>)
Retrieves a list of balance transfers that have taken place for the primary account within a specified time period.
public Task<Result<Transfer[]>> GetBalanceTransfersAsync(Result<GetTransfersRequest> request)
Parameters
requestResult<GetTransfersRequest>The request containing the time period filter. See GetTransfersRequest.
Returns
- Task<Result<Transfer[]>>
A Result<T> containing an array of Transfer records on success, or an error on failure.
Examples
var request = GetTransfersRequest.Build()
.WithStartDate(DateTimeOffset.UtcNow.AddDays(-30))
.Create();
var result = await client.SubAccountsClient.GetBalanceTransfersAsync(request);
- See Also
GetCreditTransfersAsync(Result<GetTransfersRequest>)
Retrieves a list of credit transfers that have taken place for the primary account within a specified time period.
public Task<Result<Transfer[]>> GetCreditTransfersAsync(Result<GetTransfersRequest> request)
Parameters
requestResult<GetTransfersRequest>The request containing the time period filter. See GetTransfersRequest.
Returns
- Task<Result<Transfer[]>>
A Result<T> containing an array of Transfer records on success, or an error on failure.
Examples
var request = GetTransfersRequest.Build()
.WithStartDate(DateTimeOffset.UtcNow.AddDays(-30))
.Create();
var result = await client.SubAccountsClient.GetCreditTransfersAsync(request);
- See Also
GetSubAccountAsync(Result<GetSubAccountRequest>)
Retrieves a specific subaccount by its API key.
public Task<Result<Account>> GetSubAccountAsync(Result<GetSubAccountRequest> request)
Parameters
requestResult<GetSubAccountRequest>The request containing the subaccount API key. See GetSubAccountRequest.
Returns
- Task<Result<Account>>
A Result<T> containing the Account details on success, or an error on failure.
Examples
var request = GetSubAccountRequest.Parse("bbe6222f");
var result = await client.SubAccountsClient.GetSubAccountAsync(request);
- See Also
GetSubAccountsAsync()
Retrieves the primary account and all its subaccounts.
public Task<Result<GetSubAccountsResponse>> GetSubAccountsAsync()
Returns
- Task<Result<GetSubAccountsResponse>>
A Result<T> containing a GetSubAccountsResponse with the primary account and all subaccounts on success, or an error on failure.
Examples
var result = await client.SubAccountsClient.GetSubAccountsAsync();
result.IfSuccess(response =>
{
Console.WriteLine($"Primary: {response.PrimaryAccount.Name}");
foreach (var sub in response.SubAccounts)
Console.WriteLine($"Sub: {sub.Name}");
});
- See Also
TransferBalanceAsync(Result<TransferAmountRequest>)
Transfers balance between the primary account and one of its subaccounts.
public Task<Result<Transfer>> TransferBalanceAsync(Result<TransferAmountRequest> request)
Parameters
requestResult<TransferAmountRequest>The request containing transfer details. See TransferAmountRequest.
Returns
- Task<Result<Transfer>>
A Result<T> containing the Transfer record on success, or an error on failure.
Examples
var request = TransferAmountRequest.Build()
.WithFrom("7c9738e6")
.WithTo("ad6dc56f")
.WithAmount(123.45m)
.Create();
var result = await client.SubAccountsClient.TransferBalanceAsync(request);
Remarks
The balance available for transfer equals the absolute value of (account_balance - credit_limit) of the source account.
- See Also
TransferCreditAsync(Result<TransferAmountRequest>)
Transfers credit limit between the primary account and one of its subaccounts.
public Task<Result<Transfer>> TransferCreditAsync(Result<TransferAmountRequest> request)
Parameters
requestResult<TransferAmountRequest>The request containing transfer details. See TransferAmountRequest.
Returns
- Task<Result<Transfer>>
A Result<T> containing the Transfer record on success, or an error on failure.
Examples
var request = TransferAmountRequest.Build()
.WithFrom("7c9738e6")
.WithTo("ad6dc56f")
.WithAmount(100.00m)
.WithReference("Monthly credit allocation")
.Create();
var result = await client.SubAccountsClient.TransferCreditAsync(request);
- See Also
TransferNumberAsync(Result<TransferNumberRequest>)
Transfers a phone number from one account to another within the primary account's hierarchy.
public Task<Result<TransferNumberResponse>> TransferNumberAsync(Result<TransferNumberRequest> request)
Parameters
requestResult<TransferNumberRequest>The request containing transfer details. See TransferNumberRequest.
Returns
- Task<Result<TransferNumberResponse>>
A Result<T> containing the TransferNumberResponse on success, or an error on failure.
Examples
var request = TransferNumberRequest.Build()
.WithFrom("7c9738e6")
.WithTo("ad6dc56f")
.WithNumber("447700900000")
.WithCountry("GB")
.Create();
var result = await client.SubAccountsClient.TransferNumberAsync(request);
- See Also
UpdateSubAccountAsync(Result<UpdateSubAccountRequest>)
Updates the properties of an existing subaccount.
public Task<Result<Account>> UpdateSubAccountAsync(Result<UpdateSubAccountRequest> request)
Parameters
requestResult<UpdateSubAccountRequest>The request containing the properties to update. See UpdateSubAccountRequest.
Returns
- Task<Result<Account>>
A Result<T> containing the updated Account on success, or an error on failure.
Examples
var request = UpdateSubAccountRequest.Build()
.WithSubAccountKey("bbe6222f")
.WithName("Department B")
.SuspendAccount()
.Create();
var result = await client.SubAccountsClient.UpdateSubAccountAsync(request);
- See Also