Murano - Sales
A powerful API providing easy, secure, scalable integration into the core Sage Murano product which enables third-party developers to rapidly create apps and rich extensions. Sales API exposes resources of Sage Murano related to sales process such as customers, items, quotes, orders, delivery notes, invoices, receipts and payments. Typical integrations use cases are e-commerce, mobile sales, catalogues, invoice brokers, point of sales.
Get customer_groups
Get all the resources of type 'CustomerGroup', optionally paged, ordered and filtered.
Try itRequest URL
Request parameters
Format - int32. startIndex indicates an absolute “offset” in the complete list of the requested resources. The default value is 1. In case of missing this parameter, then the default value will be 1 which refers to the first object.
Format - int32. itemsPerPage enables you to limit the maximum number of objects returned in a request. The default value and the maximum value allowed is 50. In case of specify a value greater than 50, then only 50 objects will be returned.
Format - date-time (as date-time in RFC3339). updatedOrCreatedSince enables you to return a collection of objects which has been created or updated from the specified date
Format - date-time (as date-time in RFC3339). deletedSince enables you to return a collection of objects which has been deleted from the specified date
orderby enables you to return the result in ascending or descending order. The order is based on the field name you specify and the key words asc for ascending and desc for descending. If you want to sort by more than one data filed, then they will be separated by comma (,).
where enables you to filter the objects that are returned using expressions which includes the following operators: eq (equals), nq (distinct), lt (less than), le (less or equal than), gt (greater than), ge (greater or equal than), in (inside of), like (similarity pattern). Currently only is possible to apply filtering using one of the data fields that has been marked with the flag “where”.
compact enables you to include all the child objects that are linked to the parent object within your results. The default value is true.
Request headers
Tenant unique identifier.
Company unique identifier.
Sage ID Access Token prefixed with the word 'Bearer'.
Subscription key which provides access to this API.
Request body
Response 200
OK.
{
"$totalResults": 0,
"$startIndex": 0,
"$itemsPerPage": 0,
"$resources": [
{
"id": "string",
"company_id": "string",
"application_id": "string",
"name": "string"
}
]
}
{
"type": "object",
"properties": {
"$totalResults": {
"type": "integer",
"format": "int32",
"description": "Indicates the number of objects returned in a request",
"readOnly": false
},
"$startIndex": {
"type": "integer",
"format": "int32",
"description": "startIndex indicates an absolute “offset” in the complete list of the requested resources. The default value is 1.\r\nIn case of missing this parameter, then the default value will be 1 which refers to the first object.",
"readOnly": false
},
"$itemsPerPage": {
"type": "integer",
"format": "int32",
"description": "itemsPerPage enables you to limit the maximum number of objects returned in a request. The default value and the maximum value allowed is 50. In case of specify a value greater than 50, then only 50 objects will be returned.",
"readOnly": false
},
"$resources": {
"type": "array",
"items": {
"type": "object",
"description": "List of customer groups. <br /><br /><span style=\"font-style:italic\">This entity supports change control</span>",
"x-sage-menusection": "Contacts",
"x-sage-relatedopeations": [
"companies"
],
"required": [
"company_id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"description": "ID of customer group",
"readOnly": false,
"x-sage-queryable": true,
"x-sage-orderable": true
},
"company_id": {
"type": "string",
"description": "Company ID of customer group",
"x-sage-entitylink": "companies",
"readOnly": false,
"x-sage-queryable": false,
"x-sage-orderable": false
},
"application_id": {
"type": "string",
"maxLength": 128,
"description": "Application ID of customer group",
"readOnly": false,
"x-sage-queryable": true,
"x-sage-orderable": true
},
"name": {
"type": "string",
"description": "Name of the customer group",
"readOnly": false,
"x-sage-queryable": true,
"x-sage-orderable": true
}
}
}
}
}
}
Code samples
@ECHO OFF
curl -v -X GET "https://api.columbus.sage.com/es/murano/sales/v1/customer_groups?startIndex={integer}&itemsPerPage={integer}&updatedOrCreatedSince={string}&deletedSince={string}&orderBy={string}&where={string}&compact={boolean}"
-H "X-Site: "
-H "X-Company: "
-H "Authorization: "
-H "Ocp-Apim-Subscription-Key: "
-H "Ocp-Apim-Subscription-Key: {subscription key}"
--data-ascii "{body}"
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("X-Site", "");
client.DefaultRequestHeaders.Add("X-Company", "");
client.DefaultRequestHeaders.Add("Authorization", "");
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "");
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");
// Request parameters
queryString["startIndex"] = "{integer}";
queryString["itemsPerPage"] = "{integer}";
queryString["updatedOrCreatedSince"] = "{string}";
queryString["deletedSince"] = "{string}";
queryString["orderBy"] = "{string}";
queryString["where"] = "{string}";
queryString["compact"] = "{boolean}";
var uri = "https://api.columbus.sage.com/es/murano/sales/v1/customer_groups?" + queryString;
var response = await client.GetAsync(uri);
}
}
}
// // This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class JavaSample
{
public static void main(String[] args)
{
HttpClient httpclient = HttpClients.createDefault();
try
{
URIBuilder builder = new URIBuilder("https://api.columbus.sage.com/es/murano/sales/v1/customer_groups");
builder.setParameter("startIndex", "{integer}");
builder.setParameter("itemsPerPage", "{integer}");
builder.setParameter("updatedOrCreatedSince", "{string}");
builder.setParameter("deletedSince", "{string}");
builder.setParameter("orderBy", "{string}");
builder.setParameter("where", "{string}");
builder.setParameter("compact", "{boolean}");
URI uri = builder.build();
HttpGet request = new HttpGet(uri);
request.setHeader("X-Site", "");
request.setHeader("X-Company", "");
request.setHeader("Authorization", "");
request.setHeader("Ocp-Apim-Subscription-Key", "");
request.setHeader("Ocp-Apim-Subscription-Key", "{subscription key}");
// Request body
StringEntity reqEntity = new StringEntity("{body}");
request.setEntity(reqEntity);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null)
{
System.out.println(EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
var params = {
// Request parameters
"startIndex": "{integer}",
"itemsPerPage": "{integer}",
"updatedOrCreatedSince": "{string}",
"deletedSince": "{string}",
"orderBy": "{string}",
"where": "{string}",
"compact": "{boolean}",
};
$.ajax({
url: "https://api.columbus.sage.com/es/murano/sales/v1/customer_groups?" + $.param(params),
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("X-Site","");
xhrObj.setRequestHeader("X-Company","");
xhrObj.setRequestHeader("Authorization","");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{subscription key}");
},
type: "GET",
// Request body
data: "{body}",
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString* path = @"https://api.columbus.sage.com/es/murano/sales/v1/customer_groups";
NSArray* array = @[
// Request parameters
@"entities=true",
@"startIndex={integer}",
@"itemsPerPage={integer}",
@"updatedOrCreatedSince={string}",
@"deletedSince={string}",
@"orderBy={string}",
@"where={string}",
@"compact={boolean}",
];
NSString* string = [array componentsJoinedByString:@"&"];
path = [path stringByAppendingFormat:@"?%@", string];
NSLog(@"%@", path);
NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
[_request setHTTPMethod:@"GET"];
// Request headers
[_request setValue:@"" forHTTPHeaderField:@"X-Site"];
[_request setValue:@"" forHTTPHeaderField:@"X-Company"];
[_request setValue:@"" forHTTPHeaderField:@"Authorization"];
[_request setValue:@"" forHTTPHeaderField:@"Ocp-Apim-Subscription-Key"];
[_request setValue:@"{subscription key}" forHTTPHeaderField:@"Ocp-Apim-Subscription-Key"];
// Request body
[_request setHTTPBody:[@"{body}" dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response = nil;
NSError *error = nil;
NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
if (nil != error)
{
NSLog(@"Error: %@", error);
}
else
{
NSError* error = nil;
NSMutableDictionary* json = nil;
NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
NSLog(@"%@", dataString);
if (nil != _connectionData)
{
json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
}
if (error || !json)
{
NSLog(@"Could not parse loaded json with error:%@", error);
}
NSLog(@"%@", json);
_connectionData = nil;
}
[pool drain];
return 0;
}
<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';
$request = new Http_Request2('https://api.columbus.sage.com/es/murano/sales/v1/customer_groups');
$url = $request->getUrl();
$headers = array(
// Request headers
'X-Site' => '',
'X-Company' => '',
'Authorization' => '',
'Ocp-Apim-Subscription-Key' => '',
'Ocp-Apim-Subscription-Key' => '{subscription key}',
);
$request->setHeader($headers);
$parameters = array(
// Request parameters
'startIndex' => '{integer}',
'itemsPerPage' => '{integer}',
'updatedOrCreatedSince' => '{string}',
'deletedSince' => '{string}',
'orderBy' => '{string}',
'where' => '{string}',
'compact' => '{boolean}',
);
$url->setQueryVariables($parameters);
$request->setMethod(HTTP_Request2::METHOD_GET);
// Request body
$request->setBody("{body}");
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
########### Python 2.7 #############
import httplib, urllib, base64
headers = {
# Request headers
'X-Site': '',
'X-Company': '',
'Authorization': '',
'Ocp-Apim-Subscription-Key': '',
'Ocp-Apim-Subscription-Key': '{subscription key}',
}
params = urllib.urlencode({
# Request parameters
'startIndex': '{integer}',
'itemsPerPage': '{integer}',
'updatedOrCreatedSince': '{string}',
'deletedSince': '{string}',
'orderBy': '{string}',
'where': '{string}',
'compact': '{boolean}',
})
try:
conn = httplib.HTTPSConnection('api.columbus.sage.com')
conn.request("GET", "/es/murano/sales/v1/customer_groups?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64
headers = {
# Request headers
'X-Site': '',
'X-Company': '',
'Authorization': '',
'Ocp-Apim-Subscription-Key': '',
'Ocp-Apim-Subscription-Key': '{subscription key}',
}
params = urllib.parse.urlencode({
# Request parameters
'startIndex': '{integer}',
'itemsPerPage': '{integer}',
'updatedOrCreatedSince': '{string}',
'deletedSince': '{string}',
'orderBy': '{string}',
'where': '{string}',
'compact': '{boolean}',
})
try:
conn = http.client.HTTPSConnection('api.columbus.sage.com')
conn.request("GET", "/es/murano/sales/v1/customer_groups?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
require 'net/http'
uri = URI('https://api.columbus.sage.com/es/murano/sales/v1/customer_groups')
query = URI.encode_www_form({
# Request parameters
'startIndex' => '{integer}',
'itemsPerPage' => '{integer}',
'updatedOrCreatedSince' => '{string}',
'deletedSince' => '{string}',
'orderBy' => '{string}',
'where' => '{string}',
'compact' => '{boolean}'
})
if uri.query && uri.query.length > 0
uri.query += '&' + query
else
uri.query = query
end
request = Net::HTTP::Get.new(uri.request_uri)
# Request headers
request['X-Site'] = ''
# Request headers
request['X-Company'] = ''
# Request headers
request['Authorization'] = ''
# Request headers
request['Ocp-Apim-Subscription-Key'] = ''
# Request headers
request['Ocp-Apim-Subscription-Key'] = '{subscription key}'
# Request body
request.body = "{body}"
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body