Master data

All the basic data necessary for creating entries, in addition to the accounts, such as currencies, tax keys, payment terms, banks, etc., 
are recorded and managed in the "Master data" area.
 
Example Code
 
GET available languages
Topal is available in different languages. Available languages can be retrieved via the language endpoint.
 
    

    [TestMethod]
    public void REST_Languages_GET()
    {
        state = new ErrorState { passed = false };
        var languages = GET.languages(manager);

        if (languages.Count == 4) {
            state.passed = true;
        }
        Assert.AreEqual(true, state.passed, state.message);

        Language language_de = languages.SingleOrDefault(l => (l.code.Equals("DE")));
        Language language_fr = languages.SingleOrDefault(l => (l.code.Equals("FR")));
        Language language_en = languages.SingleOrDefault(l => (l.code.Equals("EN")));
        Language language_it = languages.SingleOrDefault(l => (l.code.Equals("IT")));
            
        state.passed = false;
        if ((language_de != null) & (language_fr != null) & (language_en != null) & (language_it != null)) {
            state.passed = true;
        }
        Assert.AreEqual(true, state.passed, state.message);
    }

    class GET
    {
        public static List<Language> languages(Manager manager)
        {
            var currentClient = manager.getCurrentClient();
            List languages = null;

            string request = "clients/{0}/languages";
            var response = manager.httpClient.GetAsync(string.Format(request, currentClient.id)).Result;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                languages = JsonConvert.DeserializeObject<List<Language>>(response.Content.ReadAsStringAsync().Result);
            }

            return languages;
        }

    
  
Load Language
    
    UNDER CONSTRUCTION
        
    
  
JSON representation of a language
    
{
	"id": 3,
	"code": "EN",
	"name": "English"
}
    
  
 
GET language by code
Chack the availability of a language by language code.
 
    

    [TestMethod]
    public void REST_Languages_GET()
    {
        state = new ErrorState { passed = false };
        var languages = GET.languages(manager);

        if (languages.Count == 4) {
            state.passed = true;
        }
        Assert.AreEqual(true, state.passed, state.message);

        Language language_de = languages.SingleOrDefault(l => (l.code.Equals("DE")));
        Language language_fr = languages.SingleOrDefault(l => (l.code.Equals("FR")));
        Language language_en = languages.SingleOrDefault(l => (l.code.Equals("EN")));
        Language language_it = languages.SingleOrDefault(l => (l.code.Equals("IT")));
            
        state.passed = false;
        if ((language_de != null) & (language_fr != null) & (language_en != null) & (language_it != null)) {
            state.passed = true;
        }
        Assert.AreEqual(true, state.passed, state.message);
    }

    class GET
    {
        public static Language language_by_code(string code, Manager manager)
        {
            var currentClient = manager.getCurrentClient();
            Language language = null;

            string request = "clients/{0}/languages/bycode/{1}";
            var response = manager.httpClient.GetAsync(string.Format(request, currentClient.id, code)).Result;

            if (response.StatusCode == HttpStatusCode.OK) {
                language = JsonConvert.DeserializeObject<Language>(response.Content.ReadAsStringAsync().Result);
            }
            return language;
        }
    }
    
  
Load Language
    
    UNDER CONSTRUCTION
        
    
  
JSON representation of a language
    
{
	"id": 3,
	"code": "EN",
	"name": "English"
}
    
  
 
GET list of available countries
Load a list of available countries.
 
    
    
     [TestMethod]
     public void REST_Countries_GET()
     {
         state = new ErrorState { passed = false };
         var countries = GET.countries(manager);
            
         if (countries.Count > 20)
         {
             state.passed = true;
         }
         Assert.AreEqual(true, state.passed, state.message);
    }

    class GET
    {
        public static List<Country> countries(Manager manager)
        {
            var currentClient = manager.getCurrentClient();
            List countries = null;

            string request = "clients/{0}/countries";
            var response = manager.httpClient.GetAsync(string.Format(request, currentClient.id)).Result;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                countries = JsonConvert.DeserializeObject<List<Country>>(response.Content.ReadAsStringAsync().Result);
            }
            return countries;
        }
    }
    
  
Load Country
    
    UNDER CONSTRUCTION
        
    
  
JSON representation of a country
    
{
	"id": 110,
	"code": "CH",
	"name": "Schweiz"
}
    
  
 
GET a country by code
Load a country by country code.
 
    

    [TestMethod]
    public void REST_Countries_country_by_code_GET()
       {
        state = new ErrorState { passed = false };
        string code = REST_Helper.getRandomCountryCode(manager);
        Country country = GET.country_by_code(code, manager);

        if (country.code.Equals(code))
        {
            state.passed = true;
        }
        Assert.AreEqual(true, state.passed, state.message);
    }

    class GET
    {
        public static Country country_by_code(string code, Manager manager)
        {
            var currentClient = manager.getCurrentClient();
            Country country = null;
            string request = "clients/{0}/countries/bycode/{1}";
            var response = manager.httpClient.GetAsync(string.Format(request, currentClient.id, code)).Result;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                country = JsonConvert.DeserializeObject<Country>(response.Content.ReadAsStringAsync().Result);
            }
            return country;
        }
    }
    
  
Load Country
    
    UNDER CONSTRUCTION
        
    
  
Load Country
    
      UNDER CONSTRUCTION
    
  
JSON representation of a country
    
{
	"id": 110,
	"code": "CH",
	"name": "Schweiz"
}
    
  
 
GET all available bank accounts
Load all available bank accounts.
 
    
    [TestMethod]
    public void REST_BankAccount_GETd()
    {
        state = new ErrorState { passed = false };

        string account_name = "PostFinance - CHF";
        account_name = account_name.Trim(); //  Replace(" ", "");
        var bank_accounts = GET.bankaccounts(manager);

        if (bank_accounts.Count > 0)
        {
            state.passed = true;
        }
        Assert.AreEqual(true, state.passed, state.message);
    }

    class GET
    {
        public static List<BankAccount> bankaccounts(Manager manager)
        {
            var currentClient = manager.getCurrentClient();
            List bank_accounts = null;

            //select bankaccounts
            string request = "clients/{0}/bankaccounts";
            var response = manager.httpClient.GetAsync(string.Format(request, currentClient.id)).Result;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                bank_accounts = JsonConvert.DeserializeObject<List<BankAccount>>(response.Content.ReadAsStringAsync().Result);
            }
            return bank_accounts;
        }
    }
    
  
Load bankaccount
    
    UNDER CONSTRUCTION
        
    
  
JSON representation of a bankaccount
    
{
	"id": 3,
	"name": "UBS Euro",
	"iban": "CH550023223257288560Q",
	"accountNum": "80-2-2",
	"creditLine": 0.0,
	"accountFID": 13,
	"bankFID": 1134,
	"bankAccountTypeFID": 1,
	"accountCode": "1023",
	"bankCode": "232",
	"currencyCode": "EUR"
}
    
  
 
GET a bank account by name
Load a bank account by name.
 
    
    [TestMethod]
    public void REST_BankAccount_bank_account_by_name_GET()
    {
        state = new ErrorState { passed = false };
        string bank_account_name = REST_Helper.getRandomBankAccountName(manager);

        BankAccount bank_account = GET.bankaccount_by_name(bank_account_name, manager);

        if (bank_account.Equals(bank_account_name))
        {
            state.passed = true;
        }
        Assert.AreEqual(true, state.passed, state.message);
    }

    class GET
    {
        public static BankAccount bankaccount_by_name(String name, Manager manager)
        {
            var currentClient = manager.getCurrentClient();
            BankAccount bank_account = null;

            string request = "clients/{0}/bankaccounts/byname/{1}";
            var response = manager.httpClient.GetAsync(string.Format(request, currentClient.id, name)).Result;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                bank_account = JsonConvert.DeserializeObject<BankAccount>(response.Content.ReadAsStringAsync().Result);
            }
            return bank_account;
        }
    }
    
  
Load bankaccount
    
    UNDER CONSTRUCTION
        
    
  
JSON representation of a bankaccount
    
{
	"id": 3,
	"name": "UBS Euro",
	"iban": "CH550023223257288560Q",
	"accountNum": "80-2-2",
	"creditLine": 0.0,
	"accountFID": 13,
	"bankFID": 1134,
	"bankAccountTypeFID": 1,
	"accountCode": "1023",
	"bankCode": "232",
	"currencyCode": "EUR"
}