Reckon One API v2

API change history

This is version 2 of the Reckon One API.

Gets the payroll leave balances and accrual value report.

Get the payroll leave balances and accrual value report.

This report is grouped by payroll leave item.

GET /5af6572c-9771-4b86-995d-3374d3bc683c/reports/payrollLeaveBalancesAndAccrualValue


Get the report as, for example, a PDF using a query string parameter.

GET /5af6572c-9771-4b86-995d-3374d3bc683c/reports/payrollLeaveBalancesAndAccrualValue?format=PDF

The following formats can be used:

  • JSON
  • PDF
  • XLSX
  • RTF
  • CSV
  • HTML

Get the report as, for example, a PDF using a header instead of the query string parameter: Accept: application/pdf

GET /5af6572c-9771-4b86-995d-3374d3bc683c/reports/payrollLeaveBalancesAndAccrualValue

The following Accept header values can be used:

  • application/json
  • application/pdf
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • application/rtf
  • text/csv
  • text/html

Try it

Request

Request URL

Request parameters

  • string

    Format - guid. The book's id.

  • (optional)
    string

    The format to use, e.g. pdf.

  • (optional)
    boolean

    Whether the result is for download. If true, a ContentDisposition header will be added.

Request headers

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

Request body

The report parameters.

Responses

200 OK

The report.

Representations

{
  "data": {
    "groups": [
      {
        "list": [
          {
            "leaveBalance": 123.45,
            "leaveLoadingValue": 3254.54,
            "oteValue": 2376.43,
            "totalValue": 5630.97,
            "employee": {
              "id": "f757807e-a294-494e-81c9-2b2bb9fa1d37",
              "name": "Joe Bloggs"
            }
          }
        ],
        "groupTotals": {
          "leaveBalance": 123.45,
          "leaveLoadingValue": 3254.54,
          "oteValue": 2376.43,
          "totalValue": 5630.97
        },
        "payItem": {
          "id": "9c9456f7-c74c-4bd6-907d-7ffd9ad4acd9",
          "name": "Annual leave"
        }
      }
    ],
    "reportTotals": {
      "leaveBalance": 123.45,
      "leaveLoadingValue": 3254.54,
      "oteValue": 2376.43,
      "totalValue": 5630.97
    }
  },
  "metaData": {
    "id": "b5dd1bd6-18f7-45ec-92a7-d32aa9d8724e",
    "reportName": "Report",
    "bookName": "My book.",
    "companyName": "My company.",
    "period": "AsAtDate",
    "asAtDate": "2021-01-31T12:00:00Z",
    "groupBy": {},
    "columns": [
      "OteValue",
      "LeaveLoadingValue"
    ]
  },
  "message": "Additional information."
}
{
  "type": "object",
  "properties": {
    "data": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "list": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "leaveBalance": {
                          "type": "number",
                          "description": "The leave balance.",
                          "format": "decimal",
                          "example": 123.45
                        },
                        "leaveLoadingValue": {
                          "type": "number",
                          "description": "The leave loading currency value.",
                          "format": "decimal",
                          "example": 3254.54
                        },
                        "oteValue": {
                          "type": "number",
                          "description": "The ordinary time earnings value.",
                          "format": "decimal",
                          "example": 2376.43
                        },
                        "totalValue": {
                          "type": "number",
                          "description": "The total value.",
                          "format": "decimal",
                          "example": 5630.97
                        },
                        "employee": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "The unique id.",
                                  "format": "guid",
                                  "nullable": true
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The unique name.",
                                  "nullable": true
                                },
                                "incompleteData": {
                                  "type": "boolean",
                                  "description": "The incomplete data flag.",
                                  "example": "false"
                                }
                              },
                              "additionalProperties": false,
                              "description": "Reference to an employee.",
                              "example": {
                                "id": "f757807e-a294-494e-81c9-2b2bb9fa1d37",
                                "name": "Joe Bloggs"
                              }
                            }
                          ],
                          "description": "Details of the employee."
                        }
                      },
                      "additionalProperties": false,
                      "description": "Payroll Leave Balances and Accrual report employee transaction."
                    },
                    "description": "Group details."
                  },
                  "groupTotals": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "leaveBalance": {
                            "type": "number",
                            "description": "The leave balance.",
                            "format": "decimal",
                            "example": 123.45
                          },
                          "leaveLoadingValue": {
                            "type": "number",
                            "description": "The leave loading currency value.",
                            "format": "decimal",
                            "example": 3254.54
                          },
                          "oteValue": {
                            "type": "number",
                            "description": "The ordinary time earnings value.",
                            "format": "decimal",
                            "example": 2376.43
                          },
                          "totalValue": {
                            "type": "number",
                            "description": "The total value.",
                            "format": "decimal",
                            "example": 5630.97
                          }
                        },
                        "additionalProperties": false,
                        "description": "Leave balance totals."
                      }
                    ],
                    "description": "Totals for the group."
                  },
                  "payItem": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The unique id.",
                            "format": "guid",
                            "nullable": true
                          },
                          "name": {
                            "type": "string",
                            "description": "The unique name.",
                            "nullable": true
                          }
                        },
                        "additionalProperties": false,
                        "description": "Reference to a payroll pay item.",
                        "example": {
                          "id": "9c9456f7-c74c-4bd6-907d-7ffd9ad4acd9",
                          "name": "Annual leave"
                        }
                      }
                    ],
                    "description": "The pay item."
                  }
                },
                "additionalProperties": false,
                "description": "Payroll Leave Balances and Accrual report pay item group."
              },
              "description": "Report groups.",
              "nullable": true
            },
            "reportTotals": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "leaveBalance": {
                      "type": "number",
                      "description": "The leave balance.",
                      "format": "decimal",
                      "example": 123.45
                    },
                    "leaveLoadingValue": {
                      "type": "number",
                      "description": "The leave loading currency value.",
                      "format": "decimal",
                      "example": 3254.54
                    },
                    "oteValue": {
                      "type": "number",
                      "description": "The ordinary time earnings value.",
                      "format": "decimal",
                      "example": 2376.43
                    },
                    "totalValue": {
                      "type": "number",
                      "description": "The total value.",
                      "format": "decimal",
                      "example": 5630.97
                    }
                  },
                  "additionalProperties": false,
                  "description": "Leave balance totals."
                }
              ],
              "description": "Totals for the report.",
              "nullable": true
            }
          },
          "additionalProperties": false,
          "description": "Payroll Leave Balances and Accrual report details. "
        }
      ],
      "description": "The report's data.",
      "nullable": true
    },
    "metaData": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The report's unique id.",
              "format": "guid",
              "example": "b5dd1bd6-18f7-45ec-92a7-d32aa9d8724e"
            },
            "reportName": {
              "type": "string",
              "description": "The report's name.",
              "example": "Report"
            },
            "bookName": {
              "type": "string",
              "description": "The book's name.",
              "example": "My book."
            },
            "companyName": {
              "type": "string",
              "description": "The company's name.",
              "nullable": true,
              "example": "My company."
            },
            "period": {
              "oneOf": [
                {
                  "enum": [
                    "AsAtDate"
                  ],
                  "type": "string",
                  "description": "Periods that can be used for the Payroll Leave Balances And Accrual Value report.",
                  "x-enumNames": [
                    "AsAtDate"
                  ]
                }
              ],
              "description": "The period.",
              "nullable": true,
              "example": "AsAtDate"
            },
            "asAtDate": {
              "type": "string",
              "description": "When using AsAtDate, the date that was used.",
              "format": "date-time",
              "nullable": true,
              "example": "2021-01-31T12:00:00Z"
            },
            "groupBy": {
              "oneOf": [
                {
                  "enum": [
                    "PayItem"
                  ],
                  "type": "string",
                  "description": "Groupings that can be used for the Payroll Leave Balances And Accrual Value report.",
                  "x-enumNames": [
                    "PayItem"
                  ]
                }
              ],
              "description": "How the report data is grouped."
            },
            "columns": {
              "type": "array",
              "items": {
                "enum": [
                  "OteValue",
                  "LeaveLoadingValue",
                  "TotalValue"
                ],
                "type": "string",
                "description": "Leave Balances and Accrual Value Report columns.",
                "x-enumNames": [
                  "OteValue",
                  "LeaveLoadingValue",
                  "TotalValue"
                ]
              },
              "description": "The list of requested report columns.",
              "nullable": true,
              "example": [
                "OteValue",
                "LeaveLoadingValue"
              ]
            }
          },
          "additionalProperties": false,
          "description": "Meta data for the Payroll Leave Balances and Accrual report."
        }
      ],
      "description": "Data about the report.",
      "nullable": true
    },
    "message": {
      "type": "string",
      "description": "A message that might contain warnings or additional information about the report contents.",
      "nullable": true,
      "example": "Additional information."
    }
  },
  "additionalProperties": false,
  "description": "The Payroll Leave Balances and Accrual report grouped by pay item."
}

401 Unauthorized

The authentication token is missing, expired or invalid.

Representations

{
  "message": "Authorization has been denied for this request.",
  "code": 401
}
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "The description of the error.",
      "nullable": true,
      "example": "Authorization has been denied for this request."
    },
    "code": {
      "type": "integer",
      "description": "The HTTP status code of the error.",
      "format": "int32",
      "example": 401
    }
  },
  "additionalProperties": false,
  "description": "Response sent when a 401 Unauthorized error occurs."
}

403 Forbidden

The user does not have permission to view the report.

Representations

{
  "message": "User does not have permission to access this resource.",
  "code": 403
}
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "The description of the error.",
      "nullable": true,
      "example": "User does not have permission to access this resource."
    },
    "code": {
      "type": "integer",
      "description": "The HTTP status code of the error.",
      "format": "int32",
      "example": 403
    }
  },
  "additionalProperties": false,
  "description": "Response sent when a 403 Forbidden error occurs."
}

404 Not Found

The specified book does not exist.

Representations

{
  "message": "Resource not found.",
  "code": 404
}
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "The description of the error.",
      "nullable": true,
      "example": "Resource not found."
    },
    "code": {
      "type": "integer",
      "description": "The HTTP status code of the error.",
      "format": "int32",
      "example": 404
    }
  },
  "additionalProperties": false,
  "description": "Response sent when a 404 Forbidden error occurs."
}

Code samples

@ECHO OFF

curl -v -X GET "https://api.reckon.com/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue?format={string}&download=true"
-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("Ocp-Apim-Subscription-Key", "{subscription key}");

            // Request parameters
            queryString["format"] = "{string}";
            queryString["download"] = "true";
            var uri = "https://api.reckon.com/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue?" + 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.reckon.com/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue");

            builder.setParameter("format", "{string}");
            builder.setParameter("download", "true");

            URI uri = builder.build();
            HttpGet request = new HttpGet(uri);
            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
            "format": "{string}",
            "download": "true",
        };
      
        $.ajax({
            url: "https://api.reckon.com/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue?" + $.param(params),
            beforeSend: function(xhrObj){
                // Request headers
                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.reckon.com/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue";
    NSArray* array = @[
                         // Request parameters
                         @"entities=true",
                         @"format={string}",
                         @"download=true",
                      ];
    
    NSString* string = [array componentsJoinedByString:@"&"];
    path = [path stringByAppendingFormat:@"?%@", string];

    NSLog(@"%@", path);

    NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
    [_request setHTTPMethod:@"GET"];
    // Request headers
    [_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.reckon.com/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue');
$url = $request->getUrl();

$headers = array(
    // Request headers
    'Ocp-Apim-Subscription-Key' => '{subscription key}',
);

$request->setHeader($headers);

$parameters = array(
    // Request parameters
    'format' => '{string}',
    'download' => 'true',
);

$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
    'Ocp-Apim-Subscription-Key': '{subscription key}',
}

params = urllib.urlencode({
    # Request parameters
    'format': '{string}',
    'download': 'true',
})

try:
    conn = httplib.HTTPSConnection('api.reckon.com')
    conn.request("GET", "/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue?%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
    'Ocp-Apim-Subscription-Key': '{subscription key}',
}

params = urllib.parse.urlencode({
    # Request parameters
    'format': '{string}',
    'download': 'true',
})

try:
    conn = http.client.HTTPSConnection('api.reckon.com')
    conn.request("GET", "/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue?%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.reckon.com/r1/v2/{bookId}/reports/payrollLeaveBalancesAndAccrualValue')

query = URI.encode_www_form({
    # Request parameters
    'format' => '{string}',
    'download' => 'true'
})

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['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