Link Search Menu Expand Document

C#

In this article we discuss some examples for API interaction. It should be noted that these are indeed examples and not production-grade code.

Add a service reference

Visual Studio can generate classes to interact with WCF services. Follow the following steps in Visual Studio to generate the code.

  1. Go to: Project -> Add Service Reference…
  2. Enter the following information:
    Address: https://api.cloudbilling.nl/V1_3_2.svc
    Namespace: CB
  3. Click OK

Example: upload a customer, get all customers and upload a purchase

The code sample below shows a complete C# console application that retrieves all customers. It expects the service reference as shown above.

using System.ServiceModel;
using System.ServiceModel.Channels;
using DemoClient.CB;

var client = new APIServiceEndpointClient();
var token = "...";

using var scope = new OperationContextScope(client.InnerChannel);
OperationContext.Current.OutgoingMessageHeaders.Add(MessageHeader.CreateHeader("ApiToken",
    "http://api.cloudbilling.nl/2018/11/auth/token", token));

// Upload a customer to CloudBilling.
var uploadCustomerResult = await client.UploadCustomersAsync([
    new()
    {
        CustomerCode = "100000",
        CustomerName = "Foo Bar ltd",
        ImportTagName = "Your Customer Name Here",
        TimezoneId = "W. Europe Standard Time",
        InvoicePeriodSize = 1,
        InvoicePeriodUOM = BillingEnumsUOM.Month,
        InvoicePeriodAlignToUOM = true,
    }
]);
if (uploadCustomerResult.ResultCode != ResultCodeEnum.Success)
    throw new Exception(uploadCustomerResult.ResultMessage);

Console.WriteLine($"Uploaded customer to CloudBilling");

// Get all customers.
var getCustomerResult = await client.CustomersGetAllAsync();
if (getCustomerResult.ResultCode != ResultCodeEnum.Success)
    throw new Exception(getCustomerResult.ResultMessage);

Console.WriteLine($"There are {getCustomerResult.Result.Length} customers in CloudBilling");

// Upload a purchase to CloudBilling.
var uploadPurchaseResult = await client.UploadPurchasesAsync([
    new()
    {
        PurchaseReference = "100000-0001",
        CustomerCode = "100000",
        ProductLabel = "Your Product Name Here",
        Quantity = 1,
        PurchaseDate = DateTime.Now.ToString("O"),
    }
]);
if (uploadPurchaseResult.ResultCode != ResultCodeEnum.Success)
    throw new Exception(uploadPurchaseResult.ResultMessage);

Console.WriteLine($"Uploaded purchase to CloudBilling");

Back to top

Copyright Ⓒ 2011-2024 CloudBilling B.V.