# API and Integration

**URL:** <https://forum.manager.io/t/api-and-integration/13970>\
**Category:** Uncategorized\
**Created:** [January 24, 2018, 4:33pm UTC](https://forum.manager.io/t/api-and-integration/13970 "2018-01-24T16:33:53Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![MicroChips\_Est](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@MicroChips\_Est](https://forum.manager.io/u/MicroChips_Est)\
**Post date:** [January 24, 2018, 4:33pm UTC](https://forum.manager.io/t/api-and-integration/13970/1 "2018-01-24T16:33:54Z")

</div>

Hello…  
For the Server version, can I use Microsoft SQL Server or MySQL as database?  
and are there any API I can us for integration with other systems?  
thanks.

---

<div class="post-metadata">

**Author:** ![Davide](https://avatars.discourse-cdn.com/v4/letter/d/258eb7/32.png) [@Davide](https://forum.manager.io/u/Davide)\
**Post date:** [January 25, 2018, 7:37pm UTC](https://forum.manager.io/t/api-and-integration/13970/2 "2018-01-25T19:37:43Z")

</div>

No, you cannot use any database. Yes, there’s a Json API.

---

<div class="post-metadata">

**Author:** ![MicroChips\_Est](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@MicroChips\_Est](https://forum.manager.io/u/MicroChips_Est)\
**Post date:** [January 25, 2018, 7:49pm UTC](https://forum.manager.io/t/api-and-integration/13970/3 "2018-01-25T19:49:38Z")

</div>

where can i find the API list?

---

<div class="post-metadata">

**Author:** ![isklerius](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.manager.io/isklerius/32/6976_2.png) [@isklerius](https://forum.manager.io/u/isklerius)\
**Post date:** [January 26, 2018, 4:28am UTC](https://forum.manager.io/t/api-and-integration/13970/4 "2018-01-26T04:28:11Z")

</div>

Just add api to manager url

> http(s)://{your.manager.io.url} **/api**

It will ask for username/password

It is quit nice, because you can interrogate all variables.  
What is desperately missing in API implementation is search functionality.

---

<div class="post-metadata">

**Author:** ![MicroChips\_Est](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@MicroChips\_Est](https://forum.manager.io/u/MicroChips_Est)\
**Post date:** [January 26, 2018, 10:32am UTC](https://forum.manager.io/t/api-and-integration/13970/5 "2018-01-26T10:32:03Z")

</div>

Thank you very much.  
I just need to create GL entries.

---

<div class="post-metadata">

**Author:** ![MicroChips\_Est](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@MicroChips\_Est](https://forum.manager.io/u/MicroChips_Est)\
**Post date:** [January 28, 2018, 3:39am UTC](https://forum.manager.io/t/api-and-integration/13970/6 "2018-01-28T03:39:28Z")

</div>

Hello…  
Can I write to the system using the API? Or just read data?

---

<div class="post-metadata">

**Author:** ![ShaneAU](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.manager.io/shaneau/32/10122_2.png) [@ShaneAU](https://forum.manager.io/u/ShaneAU)\
**Post date:** [January 28, 2018, 7:23am UTC](https://forum.manager.io/t/api-and-integration/13970/7 "2018-01-28T07:23:15Z")

</div>

Using the web interface, you can only read from the API.

However, if you use the same endpoints and send a POST request using your own code, you can push updates to the Manager Server.

You would need to know how to write a basic application that can send GET / PUT / POST requests in order to accomplish this, or hire a professional that does know how to do that.

---

<div class="post-metadata">

**Author:** ![MicroChips\_Est](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@MicroChips\_Est](https://forum.manager.io/u/MicroChips_Est)\
**Post date:** [January 28, 2018, 9:14am UTC](https://forum.manager.io/t/api-and-integration/13970/8 "2018-01-28T09:14:35Z")

</div>

I’m a web developer 🙂  
I was just looking for the API documentation on how to use it…  
does it require a security token? what parameters it accepts? etc…

---

<div class="post-metadata">

**Author:** ![isklerius](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.manager.io/isklerius/32/6976_2.png) [@isklerius](https://forum.manager.io/u/isklerius)\
**Post date:** [January 29, 2018, 11:40pm UTC](https://forum.manager.io/t/api-and-integration/13970/9 "2018-01-29T23:40:26Z")

</div>

It is basic authentication.

However @lubos mentioned that he is planning to do token authentication at some point, but it is probably low on priority so don’t count on it.

What language do you use? I could share some sample code in c# if you want.

---

<div class="post-metadata">

**Author:** ![MicroChips\_Est](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@MicroChips\_Est](https://forum.manager.io/u/MicroChips_Est)\
**Post date:** [January 30, 2018, 12:11am UTC](https://forum.manager.io/t/api-and-integration/13970/10 "2018-01-30T00:11:47Z")

</div>

I’m using C#  
would really appreciate sharing some of the code you have.  
thank you.

---

<div class="post-metadata">

**Author:** ![MicroChips\_Est](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@MicroChips\_Est](https://forum.manager.io/u/MicroChips_Est)\
**Post date:** [February 1, 2018, 12:08pm UTC](https://forum.manager.io/t/api-and-integration/13970/11 "2018-02-01T12:08:34Z")

</div>

Hello… Would you please share some code samples for the API.

---

<div class="post-metadata">

**Author:** ![isklerius](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.manager.io/isklerius/32/6976_2.png) [@isklerius](https://forum.manager.io/u/isklerius)\
**Post date:** [February 1, 2018, 8:37pm UTC](https://forum.manager.io/t/api-and-integration/13970/12 "2018-02-01T20:37:27Z")

</div>

I did not test if it builds, but should get you started

```
        private static HttpClient _client = new HttpClient();
        private static UriBuilder _apiBaseUri;

        private static Guid businessGuid = Guid.Parse("56e8gbf3-b30r-4957-aex5-e35e32b2a1e5");
        private static Guid interAccountTransferGuid = Guid.Parse("dea4f923-c498-4504-b3ef-30be3c33175e");

        private static List<InterAccountTransfer> _interAccountTransfers = new List<InterAccountTransfer>();
        private static JsonSerializerSettings jsonSettings = new JsonSerializerSettings
        {
            NullValueHandling = NullValueHandling.Ignore,
            DateFormatString = "yyyy-MM-dd",
        };
		
		static void Main(string[] args)
        {
            String username = "TestApiUser";
            String password = "verysecretpassword";
            String encodedToken = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));

            _client.DefaultRequestHeaders.Add("Authorization", "Basic aWduYXM6bWJGU1FkU2JmM25TQlNCRDRRZUI=");

            _apiBaseUri = new UriBuilder("https", "your.manager.url", 443);

            _interAccountTransfers = Load<InterAccountTransfer>(interAccountTransferGuid, "InterAccountTransfers");

            Console.ReadLine();
        }
		
		private static void CreateNewRecord<T>(Guid listGuid, T record) where T : class, IRecord
        {
            var uri = _apiBaseUri;
            uri.Path = "api/" + businessGuid + "/" + listGuid;

            var newRecord = JsonConvert.SerializeObject(record, jsonSettings);

            //Post to create
            HttpContent content = new StringContent(newRecord);

            var response = _client.PostAsync(uri.ToString(), content).Result;
            if (!response.IsSuccessStatusCode)
            {
                var responseString = response.Content.ReadAsStringAsync().Result;
                Console.Write("Failed: {0} - {1}; ", record.Guid, responseString);
            }
        }

        private static void DeleteRecord<T>(Guid listGuid, T record) where T : class, IRecord
        {
            var uri = _apiBaseUri;
            uri.Path = "api/" + businessGuid + "/" + record.Guid + ".json";

            //Post to create
            HttpContent content = new StringContent("");

            var response = _client.DeleteAsync(uri.ToString()).Result;
            if (!response.IsSuccessStatusCode)
            {
                var responseString = response.Content.ReadAsStringAsync().Result;
                Console.Write("Failed: {0} - {1}; ", record.Guid, responseString);
            }
        }
		
		public static List<T> Load<T>(Guid listGuid, string name) where T : class, IRecord
        {
            var uri = _apiBaseUri;
            uri.Path = "api/" + businessGuid + "/" + listGuid + "/index.json";

            var data = _client.GetAsync(_apiBaseUri.Uri).Result;
            var jsonResponse = data.Content.ReadAsStringAsync().Result;
            if (jsonResponse != null)
            {
                var recordsIndex = JsonConvert.DeserializeObject<string[]>(jsonResponse);   
				recordsIndex.ForEach((recordGuid, i) =>
				{
					_apiBaseUri.Path = "api/" + businessGuid + "/" + recordGuid + ".json";
					var recordData = _client.GetAsync(_apiBaseUri.Uri).Result;
					var recordResponse = recordData.Content.ReadAsStringAsync().Result;
					if (recordResponse != null)
					{
						var record = JsonConvert.DeserializeObject<T>(recordResponse);
						record.Guid = Guid.Parse(recordGuid);
						records.Add(record);
					}
				});                
            }

            Console.WriteLine("Done. Count:{0}", _bankPayments.Count);

            return records;
        }    

        public interface IRecord
        {
            Guid Guid { get; set; }
        }

        public class BankAccount : IRecord
        {
            [JsonIgnore]
            public Guid Guid { get; set; }
            public string Name { get; set; }
            public string Code { get; set; }
            public Guid Currency { get; set; }
        }

        public class BankTransaction : IRecord
        {
            [JsonIgnore]
            public Guid Guid { get; set; }
            public DateTime Date { get; set; }
            public Guid BankAccount { get; set; }
            public string Description { get; set; }
            public List<BankTransactionLine> Lines { get; set; }
            public string Reference { get; set; }
            public string Payer { get; set; }
            public string Notes { get; set; }
            public DateTime BankClearDate { get; set; }
            public BankTransactionClearStatus BankClearStatus { get; set; }
            public bool AmountsIncludeTax { get; set; }
        }
        public class BankTransactionLine
        {
            public string Description { get; set; }
            public Guid Account { get; set; }
            public double Qty { get; set; }
            public double Amount { get; set; }
        }
        public enum BankTransactionClearStatus
        {
            Cleared,
            Pending
        }

        public class InterAccountTransfer : IRecord
        {
            [JsonIgnore]
            public Guid Guid { get; set; }
            public DateTime Date { get; set; }
            public Guid CreditAccount { get; set; }
            public Guid DebitAccount { get; set; }
            public string Description { get; set; }
            public string Reference { get; set; }
            public double CreditAmount { get; set; }
            public double DebitAmount { get; set; }
            public DateTime CreditClearDate { get; set; }
            public DateTime DebitClearDate { get; set; }
            [JsonConverter(typeof(StringEnumConverter))]
            public BankTransactionClearStatus DebitClearStatus { get; set; }
            [JsonConverter(typeof(StringEnumConverter))]
            public BankTransactionClearStatus CreditClearStatus { get; set; }
        }

```

---

<div class="post-metadata">

**Author:** ![MicroChips\_Est](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@MicroChips\_Est](https://forum.manager.io/u/MicroChips_Est)\
**Post date:** [February 5, 2018, 5:50am UTC](https://forum.manager.io/t/api-and-integration/13970/13 "2018-02-05T05:50:21Z")

</div>

Thank you.

---

<div class="post-metadata">

**Author:** ![Ealfardan](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.manager.io/ealfardan/32/63166_2.png) [@Ealfardan](https://forum.manager.io/u/Ealfardan)\
**Post date:** [January 18, 2023, 3:21pm UTC](https://forum.manager.io/t/api-and-integration/13970/14 "2023-01-18T15:21:50Z")

</div>


