Debtor API Operations - Examples Of Use
- Scott Pearce
- Mike Sheen
Customers
Get a filtered list of customers
Using v_Jiwa_Debtor_ListQuery
A view, v_Jiwa_Debtor_List is provided with a corresponding query class v_Jiwa_Debtor_ListQuery to facilitate retrieving a filtered, paginated list of customers. The data returned includes the AccountNo, Name, Address, and Categories.
Which fields are returned can be limited with the Fields property - so only the required fields are returned.
With the Include property set to "Total" the response will include the total count of records matching the query - this is useful for pagination. The Skip and Take properties can be added specify the starting record number to return and the number of records to return.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var itemListRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.Tables.v_Jiwa_Debtor_ListQuery() { WebAccess = true, LastSavedDateTimeGreaterThan = DateTime.Now.AddDays(-1), Fields = "AccountNo, Name", Include = "Total" }; ServiceStack.QueryResponse<JiwaFinancials.Jiwa.JiwaServiceModel.Tables.v_Jiwa_Debtor_List> itemListResponse = client.Get(itemListRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Queries/DebtorList?WebAccess=true&LastSavedDateTimeGreaterThan=2017-09-18T00:00:00.000&Fields=AccountNo,Name&Include=Total"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Queries/DebtorList?WebEnabled=true&LastSavedDateTimeGreaterThan=2017-09-18T00:00:00.000&Fields=AccountNo,Name&Include=Total
Instead of using URL parameters as above, you can also use a DTO to set the parameters:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Queries/DebtorList -d '{"WebAccess":"true","LastSavedDateTimeGreaterThan="2017-09-18T00:00:00.000", "Fields":"AccountNo, Name", "Include":"Total"}'
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Queries/DebtorList?WebAccess=true&LastSavedDateTimeGreaterThan=2017-09-18T00:00:00.000&Fields=AccountNo,Name&Include=Total&format=json
Note the &format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
Using DB_MainQuery
An alternative to using the v_Jiwa_Debtor_ListQuery is to simply use the DB_MainQuery.
All tables have a corresponding Query class. For example, the table DB_Main has a class DB_MainQuery. The DB_MainQuery class is the DTO used for query operations against the DB_Main table. By setting various properties of an instance of this class, a filtered, ordered set of results can be obtained.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var DB_MainQueryRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_MainQuery() { AccountNoStartsWith = "1", OrderBy = "AccountNo", Take = 5 }; ServiceStack.QueryResponse<JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_Main> DB_MainQueryResponse = client.Get(DB_MainQueryRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Queries/DB_Main?AccountNoStartsWith=1&OrderBy=AccountNo&Take=5"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Queries/DB_Main -d '{"AccountNoStartsWith":"1","OrderBy":"AccountNo","Take":"5"}'
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Queries/DB_Main?AccountNoStartsWith=1&OrderBy=AccountNo&Take=5&format=json
Note the &format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var DB_MainQueryRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_MainQuery() { AccountNoStartsWith = "1", OrderBy = "AccountNo", Take = 5, Fields = "DebtorID,AccountNo,Name,EmailAddress" }; ServiceStack.QueryResponse<JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_Main> DB_MainQueryResponse = client.Get(DB_MainQueryRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Queries/DB_Main?AccountNoStartsWith=1&OrderBy=AccountNo&Take=5&Fields=DebtorID,AccountNo,Name,EmailAddress"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Queries/DB_Main -d '{"AccountNoStartsWith":"1","OrderBy":"AccountNo","Take":"5","Fields":"DebtorID,AccountNo,Name,EmailAddress"}'
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Queries/DB_Main?AccountNoStartsWith=1&OrderBy=AccountNo&Take=5&Fields=DebtorID,AccountNo,Name,EmailAddress&format=json
Note the &format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var DB_MainQueryRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_MainQuery() { AccountNoStartsWith = "1", OrderBy = "AccountNo", Take = 5, Skip = 5, Fields = "DebtorID,AccountNo,Name,EmailAddress" }; ServiceStack.QueryResponse<JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_Main> DB_MainQueryResponse = client.Get(DB_MainQueryRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Queries/DB_Main?AccountNoStartsWith=1&OrderBy=AccountNo&Take=5&Skip=5&Fields=DebtorID,AccountNo,Name,EmailAddress"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Queries/DB_Main -d '{"AccountNoStartsWith":"1","OrderBy":"AccountNo","Take":"5","Skip":"5","Fields":"DebtorID,AccountNo,Name,EmailAddress"}'
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Queries/DB_Main?AccountNoStartsWith=1&OrderBy=AccountNo&Take=5&Skip=5&Fields=DebtorID,AccountNo,Name,EmailAddress&format=json
Note the &format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
Read a customer
In order to read a customer, the DebtorID must be provided. Note this is a full read of the debtor business logic - so it will include associated elements such as notes, documents, prices and so on.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorGETRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorGETRequest() { DebtorID= "0000000061000000001V" }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.Debtor Debtor = client.Get(debtorGETRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing the full debtor DTO model from the business logic - see the meta data page for the DebtorGETRequest for more detail.
Create a new customer
You don't need to provide anything to create a customer- an AccountNo and DebtorID will be generated for you - however it's usual practice to provide a AccountNo. All other fields can be provided, but are not mandatory. The response DTO will contain the generated DebtorID , and all other fields of the customer.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorPOSTRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorPOSTRequest { AccountNo = "NewAccountNo", Name = "A new customer", EmailAddress = "name@example.com", WebAccess = true }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.Debtor Debtor = client.Post(debtorPOSTRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { AccountNo = "NewAccountNo", Name = "A new customer", EmailAddress = "name@example.com", WebAccess = true }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors", "POST", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X POST https://api.jiwa.com.au/Debtors -d '{"AccountNo":"NewAccountNo","Name":"A new customer","EmailAddress":"name@example.com", "WebAccess"""true"}'
The response returned from the above request will be a json document representing the full debtor DTO model from the business logic - see the meta data page for the DebtorPOSTRequest for more detail.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorPOSTRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorPOSTRequest { AccountNo = "NewAccountNo", Name = "A new customer", EmailAddress = "name@example.com", WebAccess = true }; debtorPOSTRequest.Notes.Add(new JiwaFinancials.Jiwa.JiwaServiceModel.Notes.Note() { NoteText = "Note text 1" }); debtorPOSTRequest.Notes.Add(new JiwaFinancials.Jiwa.JiwaServiceModel.Notes.Note() { NoteText = "Note text 2" }); JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.Debtor Debtor = client.Post(debtorPOSTRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { PartNo = "NewAccountNo", Description = "A new customer", EmailAddress = "name@example.com", WebAccess = true, Notes = new List<object>() { new { NoteText = "Note text 1" }, new { NoteText = "Note text 2" } } }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors", "POST", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X POST https://api.jiwa.com.au/Debtors -d '{"AccountNo":"NewAccountNo","Name":"A new Customer","EmailAddress ":"name@example.com", "WebAccess":"true", "Notes":[{"NoteText":"Note text 1"}, {"NoteText":"NoteText 2"}]}'
The response returned from the above request will be a json document representing the full debtor DTO model from the business logic - see the meta data page for the DebtorPOSTRequest for more detail.
Update an existing customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorPatchRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorPATCHRequest { DebtorID = "0000000061000000001V", EmailAddress = "name2@example.com", WebAccess = false }; debtorPatchRequest.Notes.Add(new JiwaFinancials.Jiwa.JiwaServiceModel.Notes.Note() { NoteText = "A new note added" }); debtorPatchRequest.Notes.Add(new JiwaFinancials.Jiwa.JiwaServiceModel.Notes.Note() { NoteID = "DE91CC53-724A-47C6-8920-57AC82BFAD1F", NoteText = "A modified note text" }); JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.Debtor Debtor = client.Patch(debtorPatchRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { EmailAddress = "name2@example.com", WebAccess = "false", Notes = new List<object>() { new { NoteText = "A new note added" }, new { NoteID = "DE91CC53-724A-47C6-8920-57AC82BFAD1F", NoteText = "A modified note text" } } }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V", "PATCH", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X PATCH http://localhost/Debtors/0000000061000000001V -d '{EmailAddress = "name2@example.com", WebAccess = "false","Notes":[{"NoteText":"A new note added"},{"NoteID":"DE91CC53-724A-47C6-8920-57AC82BFAD1F","NoteText":"A modified note text"}]}'
The response returned from the above request will be a json document representing the full debtor DTO model from the business logic - see the meta data page for the DebtorPOSTRequest for more detail.
Delete a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDELETERequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDELETERequest { DebtorID = "31a090bfec174d20adff" }; client.Delete(debtorDELETERequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.UploadString("http://localhost/Debtors/87315f0dc5b1443e9b20", "DELETE", ""); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=78ec7a8d39f042139a23' -X DELETE https://api.jiwa.com.au/Debtors/6c5b4a30c1b645ad9ebb
Custom Fields
Whilst custom fields can be retrieved, or modified as part of the normal debtor GET, POST and PATCH operations, you can also use the following requests.
Get a list of customer custom fields
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorCustomFieldsGETManyRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorCustomFieldsGETManyRequest(); var debtorCustomFieldsGETManyResponse = client.Get(debtorCustomFieldsGETManyRequest );
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/CustomFields"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/CustomFields
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/CustomFields?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing the a list of the DTO model for a custom field - see the meta data page for the DebtorCustomFieldsGETManyRequest for more detail.
Get a list of custom field values for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorCustomFieldsGETManyRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorCustomFieldValuesGETManyRequest() { DebtorID = "0000000061000000001V" }; var debtorCustomFieldsGETManyResponse = client.Get(debtorCustomFieldsGETManyRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/CustomFieldValues"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/CustomFieldValues
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/CustomFieldValues?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a list of the Custom Field Value DTO model - see the meta data page for the DebtorCustomFieldValuesGETManyRequest for more detail.
Get a custom field value for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorCustomFieldValueGETRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorCustomFieldValueGETRequest() { DebtorID= "0000000061000000001V", SettingID = "53a277cd848541a694d9 " }; var debtorCustomFieldValueGETResponse= client.Get(debtorCustomFieldValueGETRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/CustomFieldValues/53a277cd848541a694d9 "); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called (Note that there are trailing spaces as part of the SettingID!):
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/CustomFieldValues/53a277cd848541a694d9
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/CustomFieldValues/53a277cd848541a694d9 ?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing the Custom Field Value DTO model - see the meta data page for the DebtorCustomFieldValueGETRequest for more detail.
Update a custom field value for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorCustomFieldValuePATCHRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorCustomFieldValuePATCHRequest() { DebtorID = "0000000061000000001V", SettingID = "53a277cd848541a694d9 ", Contents = "True" }; var debtorCustomFieldValuePATCHResponse = client.Patch(debtorCustomFieldValuePATCHRequest );
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { Contents = "True" }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/CustomFieldValues/53a277cd848541a694d9 /", "PATCH", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called (note the trailing spaces of the SettingID have been replaces with '%20'!):
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X PATCH https://api.jiwa.com.au/Debtors/0000000061000000001V/CustomFieldValues/53a277cd848541a694d9%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20 -d '{"Contents":"True"}'
The response returned from the above request will be a json document representing the full inventory item DTO model from the business logic - see the meta data page for the DebtorPOSTRequest for more detail.
Contact Names
Whilst contact names can be retrieved, or modified as part of the normal debtor GET, POST and PATCH operations, you can also use the following requests.
Get a list of customer contact names
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorContactNamesGETManyRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorContactNamesGETManyRequest { DebtorID = "0000000061000000001V" }; List<JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorContactName> debtorContactNames = client.Get(debtorContactNamesGETManyRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a list of the debtor contact names DTO model from the business logic - see the meta data page for the DebtorContactNamesGETManyRequest for more detail.
Get a single contact name for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorContactNameGETRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorContactNameGETRequest { DebtorID = "0000000061000000001V", ContactNameID = "000000002D000000001C" }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorContactName debtorContactName = client.Get(debtorContactNameGETRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames/000000002D000000001C"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames/000000002D000000001C
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames/000000002D000000001C?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a debtor contact name DTO model from the business logic - see the meta data page for the DebtorContactNameGETRequest for more detail.
Add a new contact name for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorContactNamePOSTRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorContactNamePOSTRequest { DebtorID= "0000000061000000001V", Title = "Mr.", FirstName = "Fred", Surname = "Bloggs", PrimaryPositionName = "External Accountant", EmailAddress = "Fred@example.com"}; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorContactName debtorContactName = client.Post(debtorContactNamePOSTRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { DebtorID = "0000000061000000001V", Title = "Mr.", FirstName = "Fred", Surname = "Bloggs", PrimaryPositionName = "External Accountant", EmailAddress = "Fred@example.com" }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames", "POST", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X POST https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames -d '{"DebtorID":"0000000061000000001V", "Title":"Mr.", "FirstName":"Fred", "Surname":"Bloggs", "PrimaryPositionName":"External Accountant", "EmailAddress":"Fred@example.com"}'
The response returned from the above request will be a json document representing a debtor contact name DTO model from the business logic - see the meta data page for the DebtorContactNamePOSTRequest for more detail.
Update an existing customer contact name
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorContactNamePATCHRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorContactNamePATCHRequest { DebtorID = "0000000061000000001V", ContactNameID = "00000000NX00000000AW", DefaultContact = true }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorContactName debtorContactName = client.Patch(debtorContactNamePATCHRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { DefaultContact = true }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames/00000000NX00000000AW", "PATCH", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X PATCH https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames/00000000NX00000000AW -d '{"DefaultContact":true}'
The response returned from the above request will be a json document representing a debtor contact name DTO model from the business logic - see the meta data page for the DebtorContactNamePATCHRequest for more detail.
Delete a customer contact name
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorContactNameDELETERequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorContactNameDELETERequest { DebtorID = "0000000061000000001V", ContactNameID = "00000000NX00000000AX" }; client.Delete(debtorContactNameDELETERequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames/00000000NX00000000AX", "DELETE", ""); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X DELETE https://api.jiwa.com.au/Debtors/0000000061000000001V/ContactNames/00000000NX00000000AX
Group Memberships
Whilst group memberships can be retrieved, or modified as part of the normal debtor GET, POST and PATCH operations, you can also use the following requests.
Get a list of customer group memberships
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorGroupMembershipsGETManyRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorGroupMembershipsGETManyRequest { DebtorID = "0000000061000000001V" }; List<JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorGroupMembership> debtorGroupMemberships = client.Get(debtorGroupMembershipsGETManyRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a list of the debtor membership DTO model from the business logic - see the meta data page for the DebtorGroupMembershipsGETManyRequest for more detail.
Get a single group membership for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorGroupMembershipGETRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorGroupMembershipGETRequest { DebtorID = "0000000061000000001V", GroupMembershipID = "000000002D000000000U" }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorGroupMembership debtorGroupMembership = client.Get(debtorGroupMembershipGETRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships/000000002D000000000U"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships/000000002D000000000U
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships/000000002D000000000U?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a debtor group membership DTO model from the business logic - see the meta data page for the DebtorGroupMembershipGETRequest for more detail.
Add a new group membership for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorGroupMembershipPOSTRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorGroupMembershipPOSTRequest { DebtorID= "0000000061000000001V", GroupDescription = "Cash Only", StaffUsername = "Admin"}; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorGroupMembership debtorGroupMembership = client.Post(debtorGroupMembershipPOSTRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { DebtorID = "0000000061000000001V", GroupDescription = "Default - No Group", StaffUsername = "Admin" }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships", "POST", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X POST https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships -d '{"DebtorID":"0000000061000000001V", "GroupDescription":"Statement - Fax", "StaffUsername":"Admin"}'
The response returned from the above request will be a json document representing a debtor group membership DTO model from the business logic - see the meta data page for the DebtorGroupMembershipPOSTRequest for more detail.
Update an existing customer group membership
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorGroupMembershipPATCHRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorGroupMembershipPATCHRequest { DebtorID = "0000000061000000001V", GroupMembershipID = "000000002D000000000U", IsDefault = true }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorGroupMembership debtorGroupMembership = client.Patch(debtorGroupMembershipPATCHRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { IsDefault = true }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships/000000002D000000000V", "PATCH", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X PATCH https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships/000000002D000000000T -d '{"IsDefault":true}'
The response returned from the above request will be a json document representing a debtor group membership DTO model from the business logic - see the meta data page for the DebtorGroupMembershipPATCHRequest for more detail.
Delete a customer group membership
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorGroupMembershipDELETERequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorGroupMembershipDELETERequest { DebtorID = "0000000061000000001V", GroupMembershipID = "000000002D000000000U" }; client.Delete(debtorGroupMembershipDELETERequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships/000000002D000000000V", "DELETE", ""); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X DELETE https://api.jiwa.com.au/Debtors/0000000061000000001V/GroupMemberships/000000002D000000000T
Notes
Get all notes for a customer
While you could always use the DB_NotesQuery class to return all notes with a given DebtorID - There is also a GET method for retrieving all notes for a given DebtorID.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorNotesGETManyRequest= new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorNotesGETManyRequest() { DebtorID = "0000000061000000001V" }; var debtorNotesGETManyResponse = client.Get(debtorNotesGETManyRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a list of the debtor note DTO model from the business logic - see the meta data page for the DebtorNotesGETManyRequest for more detail.
Get a specific note for a customer
With a provided DebtorID, and a NoteID a single note can be retrieved.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorNoteGETRequest= new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorNoteGETRequest() { DebtorID = "0000000061000000001V", NoteID = "80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3" }; var debtorNoteGETResponse= client.Get(debtorNoteGETRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes/80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes/80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes/80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a debtor note DTO model from the business logic - see the meta data page for the DebtorNoteGETRequest for more detail.
Add a new note
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorNotePOSTRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorNotePOSTRequest() { DebtorID = "0000000061000000001V", NoteText = "This is a new note" }; var debtorNotePOSTResponse = client.Post(debtorNotePOSTRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { NoteText = "This is a new note" }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes", "POST", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X POST https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes -d '{"NoteText":"This is a new note"}'
The response returned from the above request will be a json document representing a debtor note DTO model from the business logic - see the meta data page for the DebtorNotePOSTRequest for more detail.
Update an existing note
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorNotePATCHRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorNotePATCHRequest() { DebtorID = "0000000061000000001V", NoteID = "80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3", NoteText = "This is an updated note" }; var debtorNotePOSTResponse = client.Patch(debtorNotePATCHRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { NoteText = "This is an updated note" }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes/80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3", "PATCH", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X PATCH https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes/80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3 -d '{"NoteText":"This is an updated note"}'
The response returned from the above request will be a json document representing a debtor note DTO model from the business logic - see the meta data page for the DebtorNotePATCHRequest for more detail.
Delete a note for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorNoteDELETERequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorNoteDELETERequest() { DebtorID= "0000000061000000001V", NoteID = "80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3" }; var client.Delete(debtorNoteDELETERequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes/80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3", "DELETE", ""); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X DELETE https://api.jiwa.com.au/Debtors/0000000061000000001V/Notes/80C3C46B-9D64-4451-BE6B-9CF68C9BCBE3
Documents
Get all documents for a customer
While you could always use the DB_DocumentsQuery class to return all documents with a given DebtorID - There is also a GET method for retrieving all documents for a given DebtorID.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDocumentsGETManyRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDocumentsGETManyRequest() { DebtorID= "0000000061000000001V" }; var debtorDocumentsGETManyResponse = client.Get(debtorDocumentsGETManyRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a list of the debtor document DTO model from the business logic - see the meta data page for the DocumentDocumentsGETManyRequest for more detail.
Get a specific document for a customer
With a provided DebtorID, and a DocumentID a single document can be retrieved.
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDocumentGETRequest= new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDocumentGETRequest() { DebtorID = "0000000061000000001V", DocumentID = "2b8532cb-2ef7-4239-8058-ffeca34baa9a" }; var debtorDocumentGETResponse= client.Get(debtorDocumentGETRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents/2b8532cb-2ef7-4239-8058-ffeca34baa9a"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents/2b8532cb-2ef7-4239-8058-ffeca34baa9a
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents/2b8532cb-2ef7-4239-8058-ffeca34baa9a?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a debtor document DTO model from the business logic - see the meta data page for the DebtorDocumentGETRequest for more detail.
Add a new document
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDocumentPOSTRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDocumentPOSTRequest() { DebtorID = "0000000061000000001V", Description = "A new document", PhysicalFileName = "Test.png", FileBinary = Convert.FromBase64String("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") }; var debtorDocumentPOSTResponse = client.Post(debtorDocumentPOSTRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { DebtorID = "0000000061000000001V", Description = "A new document", PhysicalFileName = "Test.png", FileBinary = Convert.FromBase64String("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") } ); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents", "POST", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X POST https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents -d '{"Description":"A new document", "PhysicalFileName":"Test.png", "FileBinary": "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"}'
The response returned from the above request will be a json document representing a debtor document DTO model from the business logic - see the meta data page for the DebtorDocumentPOSTRequest for more detail.
Update an existing document
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDocumentPATCHRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDocumentPATCHRequest() { DebtorID= "0000000061000000001V", DocumentID = "2b8532cb-2ef7-4239-8058-ffeca34baa9a", FileBinary = Convert.FromBase64String("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") }; var debtorDocumentPATCHResponse = client.Patch(debtorDocumentPATCHRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { FileBinary = Convert.FromBase64String("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") } ); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents/2b8532cb-2ef7-4239-8058-ffeca34baa9a", "PATCH", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X PATCH https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents/2b8532cb-2ef7-4239-8058-ffeca34baa9a -d '{"FileBinary":"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"}'
The response returned from the above request will be a json document representing a debtor document DTO model from the business logic - see the meta data page for the DebtorDocumentPATCHRequest for more detail.
Delete a document for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDocumentDELETERequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDocumentDELETERequest() { DebtorID= "0000000061000000001V", DocumentID = "2b8532cb-2ef7-4239-8058-ffeca34baa9a" }; client.Delete(debtorDocumentDELETERequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents/9fce8180-4509-43ef-8e09-b63122d58dd8", "DELETE", ""); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X DELETE https://api.jiwa.com.au/Debtors/0000000061000000001V/Documents/eab07f7a-c406-47fc-bdff-c5ae70cc91a5
Delivery Addresses
Whilst delivery addresses can be retrieved, or modified as part of the normal debtor GET, POST and PATCH operations, you can also use the following requests.
Get a list of customer delivery addresses
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDeliveryAddressesGETManyRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDeliveryAddressesGETManyRequest { DebtorID = "0000000061000000001V" }; List<JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorDeliveryAddress> debtorDeliveryAddresses = client.Get(debtorDeliveryAddressesGETManyRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a list of the debtor delivery address DTO model from the business logic - see the meta data page for the DebtorDeliveryAddressesGETManyRequest for more detail.
Get a single delivery address for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDeliveryAddressGETRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDeliveryAddressGETRequest { DebtorID= "0000000061000000001V", DeliveryAddressID = "00000000LR000000003O" }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorDeliveryAddress debtorDeliveryAddress = client.Get(debtorDeliveryAddressGETRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses/00000000LR000000003O"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses/00000000LR000000003O
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses/00000000LR000000003O?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing a debtor delivery address DTO model from the business logic - see the meta data page for the DebtorDeliveryAddressGETRequest for more detail.
Add a new delivery address for a customer
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDeliveryAddressPOSTRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDeliveryAddressPOSTRequest { DebtorID= "0000000061000000001V", Address1= "Unit 1A", Address2 = "57 Smith Street", Address3 = "Blakeville", Address4 = "NSW", Postcode= "2126", IsDefault = true, Country = "Australia"}; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorDeliveryAddress debtorDeliveryAddress = client.Post(debtorDeliveryAddressPOSTRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { DebtorID= "0000000061000000001V", Address1= "Unit 1A", Address2 = "57 Smith Street", Address3 = "Blakeville", Address4 = "NSW", Postcode= "2126", IsDefault = true, Country = "Australia" }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses", "POST", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X POST https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses -d '{"DebtorID":"0000000061000000001V", "Address1":"Unit 1A", "Address2":"57 Smith Street", "Address3":"Blakeville", "Address4":"NSW", "Postcode":"2126", "IsDefault":"true", "Country":"Australia" }'
The response returned from the above request will be a json document representing a debtor delivery address DTO model from the business logic - see the meta data page for the DebtorDeliveryAddressPOSTRequest for more detail.
Update an existing customer delivery address
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDeliveryAddressPATCHRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDeliveryAddressPATCHRequest { DebtorID = "0000000061000000001V", DeliveryAddressID = "00000000LR000000003N", Country = "Australia" }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.DebtorDeliveryAddress debtorDeliveryAddress = client.Patch(debtorDeliveryAddressPATCHRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { Country = "Australia" }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses/00000000LR000000003N", "PATCH", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X PATCH https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses/00000000LR000000003N -d '{"Country":"Australia"}'
The response returned from the above request will be a json document representing a debtor delivery address DTO model from the business logic - see the meta data page for the DebtorDeliveryAddressPATCHRequest for more detail.
Delete a customer delivery address
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorDeliveryAddressDELETERequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorDeliveryAddressDELETERequest { DebtorID = "0000000061000000001V", DeliveryAddressID = "00000000LR000000003O" }; client.Delete(debtorDeliveryAddressDELETERequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses/00000000LR000000003O", "DELETE", ""); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X DELETE https://api.jiwa.com.au/Debtors/0000000061000000001V/DeliveryAddresses/00000000LR000000003O
GroupMemberships
Categories
Get a list of all categories
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var DB_CategoriesRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_CategoriesQuery(); ServiceStack.QueryResponse<JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_Categories> DB_CategoriesResponse = client.Get(DB_CategoriesRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Queries/DB_Categories"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Queries/DB_Categories
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Queries/DB_Categories?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
Get a list of a specific category number
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var DB_CategoriesRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_CategoriesQuery() { CategoryNo = 1}; ServiceStack.QueryResponse<JiwaFinancials.Jiwa.JiwaServiceModel.Tables.DB_Categories> DB_CategoriesResponse = client.Get(DB_CategoriesRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Queries/DB_Categories?CategoryNo=1"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Queries/DB_Categories?CategoryNo=1
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Queries/DB_Categories?CategoryNo=1&format=json
Note the &format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
Get a specific category
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorCategoryGETRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorCategoryGETRequest() { CategoryID = "F6DDF94F-D41B-4DE4-8A8C-62BF03C32573" }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.Category.DebtorCategory Category = client.Get(debtorCategoryGETRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); responsebody = webClient.DownloadString("https://api.jiwa.com.au/Debtors/Categories/F6DDF94F-D41B-4DE4-8A8C-62BF03C32573"); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X GET https://api.jiwa.com.au/Debtors/Categories/F6DDF94F-D41B-4DE4-8A8C-62BF03C32573
Navigate to the auth URL and provide the username and password as parameters:
https://api.jiwa.com.au/auth?username=admin&password=password
This authenticates the user and creates a cookie, so a subsequent request can be made:
https://api.jiwa.com.au/Debtors/Categories/F6DDF94F-D41B-4DE4-8A8C-62BF03C32573?format=json
Note the ?format=json
in the above URL this overrides the content type returned. For browsers the default content type is HTML - if a content type override is omitted, then a HTML razor view of the data will be returned instead of json. xml and csv are also valid overrides for the content type to be returned.
The response returned from the above request will be a json document representing the category DTO model from the business logic - see the meta data page for the DebtorCategoryGETRequest for more detail.
Create a category
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorCategoryPOSTRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorCategoryPOSTRequest() { Description = "A new category", CategoryNo = 1 }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.Category.DebtorCategory Category = client.Post(debtorCategoryPOSTRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { Description = "Another new category", CategoryNo = 1 }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/Categories", "POST", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X POST https://api.jiwa.com.au/Debtors/Categories -d '{"Description":"Yet another new category", "CategoryNo":1}'
The response returned from the above request will be a json document representing the category DTO model from the business logic - see the meta data page for the DebtorCategoryPOSTRequest for more detail.
Update a category
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorCategoryPATCHRequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorCategoryPATCHRequest() { CategoryID = "F6DDF94F-D41B-4DE4-8A8C-62BF03C32573", Description = "A modified category" }; JiwaFinancials.Jiwa.JiwaServiceModel.Debtors.Category.DebtorCategory Category = client.Patch(debtorCategoryPATCHRequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { Description = "Another modified category" }); responsebody = webClient.UploadString("https://api.jiwa.com.au/Debtors/Categories/F6DDF94F-D41B-4DE4-8A8C-62BF03C32573", "PATCH", json); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X PATCH https://api.jiwa.com.au/Debtors/Categories/F6DDF94F-D41B-4DE4-8A8C-62BF03C32573 -d '{"Description":"Yet another modified category"}'
The response returned from the above request will be a json document representing the category DTO model from the business logic - see the meta data page for the DebtorCategoryPATCHRequest for more detail.
Delete a category
var client = new ServiceStack.JsonServiceClient("https://api.jiwa.com.au"); var authResponse = client.Get(new ServiceStack.Authenticate() { UserName = "admin", Password = "password" }); var debtorCategoryDELETERequest = new JiwaFinancials.Jiwa.JiwaServiceModel.DebtorCategoryDELETERequest() { CategoryID = "f4f5433cac3645779398 " }; client.Delete(debtorCategoryDELETERequest);
using (var webClient = new System.Net.WebClient()) { // Authenticate webClient.QueryString.Add("username", "Admin"); webClient.QueryString.Add("password", "password"); string responsebody = webClient.DownloadString("https://api.jiwa.com.au/auth"); // Above returns something like this: {"SessionId":"0hKBFAnutUk8Mw6YY6DN","UserName":"api","DisplayName":"","ResponseStatus":{}} // Deserialise response into a dynamic - below requires the Newtonsoft.Json nuget package var authResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responsebody); var sessionId = authResponse.SessionId; webClient.Headers.Add(System.Net.HttpRequestHeader.Cookie, string.Format("ss-id={0}", sessionId)); webClient.Headers[System.Net.HttpRequestHeader.ContentType] = "application/json"; responsebody = webClient.UploadString("http://localhost/Debtors/Categories/de671c1d5d6241319ffa /", "DELETE", ""); }
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X GET https://api.jiwa.com.au/auth -d '{"username":"Admin","password":"password"}'
Returns the following authentication response, containing the SessionId which subsequent requests will need to include in the cookie "ss-id"
{"SessionId":"6w1nLX8r0sIrJHClX9Vj","UserName":"Admin","DisplayName":"","ResponseStatus":{}}
Then, with the SessionId now known, the route can be called:
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --cookie 'ss-id=6w1nLX8r0sIrJHClX9Vj' -X DELETE https://api.jiwa.com.au/Debtors/Categories/fde56099-454b-4a25-b298-9870291ecbc8