Sage 200 - Sales

A powerful API providing easy, secure, scalable integration into the core Sage 200 product which enables third-party developers to rapidly create apps and rich extensions. Sales API exposes resources of Sage 200 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 item_sales_customer_prices

Get all the resources of type 'ItemSalesCustomerPrice', optionally paged, ordered and filtered.

Try it

Request URL

Request parameters

(optional)
integer

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.

(optional)
integer

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.

(optional)
string

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

(optional)
string

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

(optional)
string

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 (,).

(optional)
string

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”.

(optional)
boolean

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

string

Tenant unique identifier.

string

Company unique identifier.

string

Sage ID Access Token prefixed with the word 'Bearer'.

string

Subscription key which provides access to this API.

string
Subscription key which provides access to this API. Found in your Profile.

Request body

Response 200

OK.

{
  "$totalResults": 0,
  "$startIndex": 0,
  "$itemsPerPage": 0,
  "$resources": [
    {
      "id": "string",
      "company_id": "string",
      "application_id": "string",
      "item_type_prices_id": "string",
      "date": "string",
      "final_date": "string",
      "customer_id": "string",
      "item_id": "string",
      "price": 0.0,
      "price_includes_tax": true,
      "currency": "string",
      "properties": [
        {
          "item_property_id": "string",
          "value": "string",
          "group": "string"
        }
      ],
      "quantity_from": 0.0,
      "quantity_to": 0.0,
      "item_families_id": "string",
      "customer_group_id": "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 prices of the Items. <br /><br /><span style=\"font-style:italic\">This entity supports change control</span>",
        "x-sage-menusection": "Items",
        "x-sage-relatedopeations": [
          "companies",
          "item_type_prices",
          "customers",
          "contacts",
          "payment_methods",
          "zones",
          "sales_persons",
          "cost_centers",
          "customer_groups",
          "items",
          "vat_tax_rates",
          "item_families",
          "item_categories",
          "item_brands",
          "item_properties"
        ],
        "required": [
          "company_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 128,
            "description": "ID of the item prices",
            "readOnly": false,
            "x-sage-queryable": true,
            "x-sage-orderable": true
          },
          "company_id": {
            "type": "string",
            "description": "Company ID of the Item prices",
            "x-sage-entitylink": "companies",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false
          },
          "application_id": {
            "type": "string",
            "maxLength": 128,
            "description": "Application id",
            "readOnly": false,
            "x-sage-queryable": true,
            "x-sage-orderable": true
          },
          "item_type_prices_id": {
            "type": "string",
            "maxLength": 16,
            "description": "Type Sales Price of the Item prices",
            "x-sage-entitylink": "item_type_prices",
            "readOnly": false,
            "x-sage-queryable": true,
            "x-sage-orderable": true
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "description": "Initial date of the Item prices",
            "readOnly": false,
            "x-sage-queryable": true,
            "x-sage-orderable": true
          },
          "final_date": {
            "type": "string",
            "format": "date-time",
            "description": "Final valid date for this price",
            "readOnly": false,
            "x-sage-queryable": true,
            "x-sage-orderable": true
          },
          "customer_id": {
            "type": "string",
            "maxLength": 16,
            "description": "Id Customer of the Item prices",
            "x-sage-entitylink": "customers",
            "readOnly": false,
            "x-sage-queryable": true,
            "x-sage-orderable": true
          },
          "item_id": {
            "type": "string",
            "maxLength": 16,
            "description": "ID Item of the Item prices",
            "x-sage-entitylink": "items",
            "readOnly": false,
            "x-sage-queryable": true,
            "x-sage-orderable": true
          },
          "price": {
            "type": "number",
            "format": "integer 10 decimal 2 dp",
            "description": "Price of the Item prices",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false
          },
          "price_includes_tax": {
            "type": "boolean",
            "description": "tax included",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false
          },
          "currency": {
            "type": "string",
            "maxLength": 3,
            "description": "Currency of the Item prices",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false
          },
          "properties": {
            "type": "array",
            "description": "List of PropertyID + PropertyValue",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false,
            "items": {
              "type": "object",
              "properties": {
                "item_property_id": {
                  "type": "string",
                  "description": "Property id",
                  "x-sage-entitylink": "item_properties",
                  "readOnly": false,
                  "x-sage-queryable": false,
                  "x-sage-orderable": false
                },
                "value": {
                  "type": "string",
                  "description": "Value",
                  "readOnly": false,
                  "x-sage-queryable": false,
                  "x-sage-orderable": false
                },
                "group": {
                  "type": "string",
                  "description": "Group of the Property",
                  "readOnly": false,
                  "x-sage-queryable": true,
                  "x-sage-orderable": false
                }
              }
            }
          },
          "quantity_from": {
            "type": "number",
            "format": "integer 13 decimal 2 dp",
            "description": "Initial quantity of range of prices",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false
          },
          "quantity_to": {
            "type": "number",
            "format": "integer 13 decimal 2 dp",
            "description": "Final quantity of range of prices",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false
          },
          "item_families_id": {
            "type": "string",
            "description": "ID Item Family of the item prices",
            "x-sage-entitylink": "item_families",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false
          },
          "customer_group_id": {
            "type": "string",
            "description": "ID of the Customer Group",
            "x-sage-entitylink": "customer_groups",
            "readOnly": false,
            "x-sage-queryable": false,
            "x-sage-orderable": false
          }
        }
      }
    }
  }
}

Code samples

@ECHO OFF

curl -v -X GET "https://api.columbus.sage.com/es/s200/sales/v1/item_sales_customer_prices?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/s200/sales/v1/item_sales_customer_prices?" + 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/s200/sales/v1/item_sales_customer_prices");

            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/s200/sales/v1/item_sales_customer_prices?" + $.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/s200/sales/v1/item_sales_customer_prices";
    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/s200/sales/v1/item_sales_customer_prices');
$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/s200/sales/v1/item_sales_customer_prices?%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/s200/sales/v1/item_sales_customer_prices?%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/s200/sales/v1/item_sales_customer_prices')

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