SCEDULY REST API Documentation

Introduction

SCEDULY REST API provides a standardized interface for interacting with the SCEDULY system. Communication is performed via the HTTPS version of the HTTP protocol using standard GET and POST methods for data transfer. Requests and responses are formatted using the JSON format.

Authentication

SCEDULY REST API uses the HMAC-SHA1 method to calculate the request signature. Each request must contain a minimum of 3 parameters required for authentication: user, signature, institutionID.

Signature calculation:

$data =	HTTP_REQUEST_METHOD + CRLF +
	institutionID + CRLF
	RequestURI + CRLF + 
	Date

$signature = HMAC-SHA1($data, $password)
* HTTP_REQUEST_METHOD: GET or POST
* institutionID: institution ID in the SCEDULY system
* RequestURI: requested resource (ex: "/users/tuitions")
* Date: CEST (UTC+2), in format dd.mm.yyyy hh:ii:ss
* CRLF: Carriage return (char(13)) + Line feed (char(10))

Example in PHP:

$data =	'GET' . "\r\n" .
	'999' . "\r\n" .
	'/users/tuitions' . "\r\n" .
	'01.01.2021 12:20:24';
$signature = hash_hmac('sha1', $data, '1234');
//signature: b84539c8ed2cc8fee86a7855781acf1711652e27

Limitations

Only one connection at a time is allowed. Retrieving data with simultaneous (parallel/concurrent) connections can lead to account suspension!

/users/tuitions

Retrieves a list of tuition fees for accounting purposes (invoices).

Parameters:
Parameter Type Required Description
user string Yes Your Sceduly REST API username
institutionID integer Yes Data request for specified institution
signature string Yes HMAC-SHA1 signature
personIDNumber string No Data request for individual person
year integer No Academic year (when not specified - default value: current year)


Example:

Request:
https://api.sceduly.com/users/tuitions?user=test&institutionID=999&signature=4a99f8c634d3528fdc2f596de1da53d7b81dcd39

Response:
[
	{
		"personIDNumber": "00123456789",
		"firstName": "Ivona",
		"lastName": "Ivić",
		"address": "Dioklecijanova 1, Split",
		"email": "iivic@uniname.hr",
		"tuition": "8000.0000"
	},
	{
		"personIDNumber": "11123456788",
		"firstName": "Mate",
		"lastName": "Matić",
		"address": null,
		"email": "mmatic@uniname.hr",
		"tuition": "7000.0000"
	}
]