TSheets Quickbooks Time (Independent Publisher) (#2045)

* Create readme.md

* TSheets QuickBooks Time Connector Initial Commit

* Added Success response instead of default response

Co-authored-by: Ajinder <ajinder.singh@artesian.io>
This commit is contained in:
Artesian Software Technologies LLP 2022-12-16 09:42:24 +05:30 коммит произвёл GitHub
Родитель 68bd28fd4e
Коммит 55ab8ae771
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 858 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,790 @@
{
"swagger": "2.0",
"info": {
"title": "QuickBooks Time",
"description": "Connector to read data from QuickBooks Time. QuickBooks Time formerly known as TSheets is a web-based and mobile time tracking and employee scheduling app. The service was accessed via a web browser or a mobile app. TSheets was an alternative to a paper timesheet or punch cards.",
"version": "1.0",
"contact": {
"name": "Artesian Software Technologies LLP",
"url": "https://artesian.io",
"email": "amit.sharma@artesian.io"
}
},
"host": "rest.tsheets.com",
"basePath": "/api/v1",
"schemes": [
"https"
],
"consumes": [],
"produces": [],
"paths": {
"/jobcodes": {
"get": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"results": {
"type": "object",
"properties": {
"jobcodes": {
"type": "object",
"description": "jobcodes"
}
},
"description": "results"
},
"more": {
"type": "boolean",
"description": "more"
}
}
}
}
},
"summary": "Retrieve Jobcodes",
"description": "Retrieves a list of all jobcodes associated with your company, with optional filters to narrow down the results.",
"operationId": "GetJobcodes",
"parameters": [
{
"name": "ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Jobcode Ids",
"description": "Comma separated list of one or more jobcode ids",
"x-ms-visibility": "advanced"
},
{
"name": "parent_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Parent Ids",
"description": "Comma separated list of one or more jobcode parent_ids",
"x-ms-visibility": "advanced"
},
{
"name": "name",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Name",
"description": "Starts matching from the beginning of the string.",
"x-ms-visibility": "advanced"
},
{
"name": "type",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Type",
"description": "One of 'regular', 'pto', 'paid_break', 'unpaid_break', or 'all'. Default is 'regular'.",
"enum": [
"regular",
"pto",
"paid_break",
"unpaid_break",
"all"
],
"default": "regular"
},
{
"name": "customfields",
"in": "query",
"required": false,
"type": "boolean",
"x-ms-summary": "Custom Fields",
"description": "true or false",
"x-ms-visibility": "advanced"
},
{
"name": "modified_before",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Modified Before",
"description": "in ISO 8601 format (YYYY-MM-DDThh:mm:ss\u00b1hh:mm)",
"x-ms-visibility": "advanced"
},
{
"name": "modified_since",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Modified Since",
"description": "in ISO 8601 format (YYYY-MM-DDThh:mm:ss\u00b1hh:mm).",
"x-ms-visibility": "advanced"
},
{
"name": "supplemental_data",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Supplemental Data",
"enum": [
"yes",
"no"
],
"description": "Indicates whether supplemental data should be returned.",
"x-ms-visibility": "advanced",
"default": "yes"
},
{
"name": "per_page",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Per Page",
"description": "Represents how many results you'd like to retrieve per request.",
"x-ms-visibility": "advanced"
},
{
"name": "page",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Page",
"description": "Represents the page of results you'd like to retrieve.",
"x-ms-visibility": "advanced"
},
{
"name": "active",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Active",
"description": "'yes', 'no', or 'both'.",
"enum": [
"yes",
"no",
"both"
],
"x-ms-visibility": "advanced",
"default": "yes"
}
]
}
},
"/projects": {
"get": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"results": {
"type": "object",
"properties": {
"projects": {
"type": "object",
"description": "projects"
}
},
"description": "results"
},
"supplemental_data": {
"type": "object",
"properties": {
"jobcodes": {
"type": "object",
"description": "jobcodes"
}
},
"description": "supplemental_data"
},
"more": {
"type": "boolean",
"description": "more"
}
}
}
}
},
"summary": "Retrieve Projects",
"description": "Retrieves a list of projects, with optional filters to narrow down the results.",
"operationId": "GetProjects",
"parameters": [
{
"name": "ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Ids",
"description": "Comma-separated list of project ids.",
"x-ms-visibility": "advanced"
},
{
"name": "jobcode_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Jobcode Ids",
"description": "Comma-separated list of jobcode ids associated with a project.",
"x-ms-visibility": "advanced"
},
{
"name": "parent_jobcode_id",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Parent Jobcode ID",
"description": "Id of a project jobcode's parent to use for filtering",
"x-ms-visibility": "advanced"
},
{
"name": "name",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Name",
"description": "Starts matching from the beginning of the string",
"x-ms-visibility": "advanced"
},
{
"name": "active",
"in": "query",
"required": false,
"type": "string",
"default": "yes",
"x-ms-summary": "Active",
"enum": [
"yes",
"no",
"both"
],
"description": "'yes', 'no', or 'both'. Default is 'yes'."
},
{
"name": "by_jobcode_assignment",
"in": "query",
"required": false,
"type": "boolean",
"x-ms-summary": "By Jobcode assignment",
"description": "If specified, only projects with a jobcode_id the user is assigned to will be returned",
"x-ms-visibility": "advanced"
}
]
}
},
"/users": {
"get": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"results": {
"type": "object",
"properties": {
"users": {
"type": "object",
"description": "users"
}
},
"description": "results"
},
"more": {
"type": "boolean",
"description": "more"
},
"supplemental_data": {
"type": "object",
"properties": {
"jobcodes": {
"type": "object",
"description": "jobcodes"
},
"groups": {
"type": "object",
"description": "groups"
}
},
"description": "supplemental_data"
}
}
}
}
},
"summary": "Retrieve Users",
"description": "Retrieves a list of all users associated with your company, with optional filters to narrow down the results.",
"operationId": "GetUsers",
"parameters": [
{
"name": "ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Ids",
"x-ms-visibility": "advanced",
"description": "Comma separated list of one or more user ids you'd like to filter on"
},
{
"name": "not_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Not Ids",
"x-ms-visibility": "advanced",
"description": "Comma separated list of the user ids you'd like to exclude."
},
{
"name": "employee_numbers",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Employee Numbers",
"x-ms-visibility": "advanced",
"description": "Comma separated list of one or more employee numbers you'd like to filter on."
},
{
"name": "usernames",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Usernames",
"x-ms-visibility": "advanced",
"description": "Comma separated list of one or more usernames you'd like to filter on."
},
{
"name": "group_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Group Ids",
"x-ms-visibility": "advanced",
"description": "Comma separated list of one or more group ids you'd like to filter on."
},
{
"name": "not_group_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Not Group Ids",
"x-ms-visibility": "advanced",
"description": "Comma separated list of the group ids you'd like to exclude."
},
{
"name": "payroll_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Payroll Ids",
"x-ms-visibility": "advanced",
"description": "A comma-separated string of payroll ids. Only users with these payroll ids will be returned."
},
{
"name": "active",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Active",
"default": "yes",
"enum": [
"yes",
"no",
"both"
],
"description": "'yes', 'no', or 'both'. Default is 'yes'."
},
{
"name": "first_name",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "First Name",
"x-ms-visibility": "advanced",
"description": "Starts matching from the beginning of the string."
},
{
"name": "last_name",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Last Name",
"x-ms-visibility": "advanced",
"description": "Starts matching from the beginning of the string."
},
{
"name": "modified_before",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Modified Before",
"x-ms-visibility": "advanced",
"description": "in ISO 8601 format (YYYY-MM-DDThh:mm:ss\u00b1hh:mm)."
},
{
"name": "modified_since",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Modified Since",
"x-ms-visibility": "advanced",
"description": "in ISO 8601 format (YYYY-MM-DDThh:mm:ss\u00b1hh:mm)."
},
{
"name": "supplemental_data",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Supplemental Data",
"x-ms-visibility": "advanced",
"default": "yes",
"enum": [
"yes",
"no"
],
"description": "yes' or 'no'. Default is 'yes'. Indicates whether supplemental data should be returned."
},
{
"name": "per_page",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Per Page",
"x-ms-visibility": "advanced",
"description": "Represents how many results you'd like to retrieve per request"
},
{
"name": "page",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Page",
"x-ms-visibility": "advanced",
"description": "Represents the page of results you'd like to retrieve"
}
]
}
},
"/timesheets": {
"get": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"results": {
"type": "object",
"properties": {
"timesheets": {
"type": "object",
"description": "timesheets"
}
},
"description": "results"
},
"more": {
"type": "boolean",
"description": "more"
},
"supplemental_data": {
"type": "object",
"properties": {
"jobcodes": {
"type": "object",
"description": "jobcodes"
},
"users": {
"type": "object",
"description": "users"
},
"customfields": {
"type": "object",
"description": "customfields"
},
"files": {
"type": "object",
"description": "files"
}
},
"description": "supplemental_data"
}
}
}
}
},
"summary": "Retrieve Timesheets",
"description": "Retrieves a list of all timesheets associated with your company, with filters to narrow down the results.",
"operationId": "GetTimesheets",
"parameters": [
{
"name": "ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Ids",
"description": "Comma separated list of one or more timesheet ids you'd like to filter on."
},
{
"name": "start_date",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Start Date",
"description": "YYYY-MM-DD formatted date. Any timesheets with a date falling on or after this date will be returned."
},
{
"name": "end_date",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "End Date",
"x-ms-visibility": "advanced",
"description": "YYYY-MM-DD formatted date. Any timesheets with a date falling on or before this date will be returned."
},
{
"name": "jobcode_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-visibility": "advanced",
"x-ms-summary": "Jobcode Ids",
"description": "A comma-separated string of jobcode ids."
},
{
"name": "payroll_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Payroll Ids",
"x-ms-visibility": "advanced",
"description": "A comma-separated string of payroll ids."
},
{
"name": "user_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "User Ids",
"x-ms-visibility": "advanced",
"description": "A comma-separated list of user ids."
},
{
"name": "group_ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Group Ids",
"x-ms-visibility": "advanced",
"description": "A comma-separated list of group ids."
},
{
"name": "on_the_clock",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "On the clock",
"x-ms-visibility": "advanced",
"default": "no",
"description": "'yes', 'no', or 'both'. Default is 'no",
"enum": [
"yes",
"no",
"both"
]
},
{
"name": "jobcode_type",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Jobcode type",
"default": "all",
"enum": [
"regular",
"pto",
"paid_break",
"unpaid_break",
"all"
],
"x-ms-visibility": "advanced",
"description": "Only timesheets linked to a jobcode of the given type are returned."
},
{
"name": "modified_before",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Modified Before",
"description": "in ISO 8601 format (YYYY-MM-DDThh:mm:ss\u00b1hh:mm)"
},
{
"name": "modified_since",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Modified Since",
"description": "Only timesheets modified since this date/time will be returned, in ISO 8601 format (YYYY-MM-DDThh:mm:ss\u00b1hh:mm)."
},
{
"name": "supplemental_data",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Supplemental Data",
"default": "yes",
"enum": [
"yes",
"no"
],
"x-ms-visibility": "advanced",
"description": "yes' or 'no'. Default is 'yes'. Indicates whether supplemental data should be returned."
},
{
"name": "per_page",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Per Page",
"description": "Represents how many results you'd like to retrieve per request.",
"x-ms-visibility": "advanced"
},
{
"name": "page",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Page",
"description": "Represents the page of results you'd like to retrieve.",
"x-ms-visibility": "advanced"
}
]
}
},
"/notifications": {
"get": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"results": {
"type": "object",
"properties": {
"notifications": {
"type": "object",
"description": "notifications"
},
"more": {
"type": "boolean",
"description": "more"
}
},
"description": "results"
}
}
}
}
},
"summary": "Retrieve Notifications",
"description": "Retrieves a list of notifications associated with your company, with filters to narrow down the results.",
"operationId": "GetNotifications",
"parameters": [
{
"name": "ids",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Ids",
"x-ms-visibility": "advanced",
"description": "Comma separated list of one or more notification ids you'd like to filter on"
},
{
"name": "delivery_before",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Delivery Before",
"x-ms-visibility": "advanced",
"description": "in ISO 8601 format (YYYY-MM-DDThh:mm:ss\u00b1hh:mm)"
},
{
"name": "delivery_after",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Delivery After",
"x-ms-visibility": "advanced",
"description": "in ISO 8601 format (YYYY-MM-DDThh:mm:ss\u00b1hh:mm)"
},
{
"name": "user_id",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "User ID",
"x-ms-visibility": "advanced",
"description": "Only notifications linked to this user ID will be returned"
},
{
"name": "msg_tracking_id",
"in": "query",
"required": false,
"type": "string",
"x-ms-summary": "Msg Tracking ID",
"x-ms-visibility": "advanced",
"description": "Tracking ID string of a notification. Only the notification with this msg_tracking_id will be returned."
},
{
"name": "per_page",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Per Page",
"x-ms-visibility": "advanced",
"description": "Represents how many results you'd like to retrieve per request"
},
{
"name": "page",
"in": "query",
"required": false,
"type": "integer",
"x-ms-summary": "Page",
"x-ms-visibility": "advanced",
"description": "Represents the page of results you'd like to retrieve"
}
]
}
}
},
"definitions": {},
"parameters": {},
"responses": {},
"securityDefinitions": {
"oauth2_auth": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "https://rest.tsheets.com/api/v1/authorize",
"tokenUrl": "https://rest.tsheets.com/api/v1/grant",
"scopes": {}
}
},
"security": [
{
"oauth2_auth": []
}
],
"tags": [],
"x-ms-connector-metadata": [
{
"propertyName": "Website",
"propertyValue": "https://quickbooks.intuit.com/time-tracking/"
},
{
"propertyName": "Privacy Policy",
"propertyValue": "https://www.intuit.com/privacy/"
},
{
"propertyName": "Categories",
"propertyValue": "Human Resources; Productivity"
}
]
}

Просмотреть файл

@ -0,0 +1,35 @@
{
"properties": {
"connectionParameters": {
"token": {
"type": "oauthSetting",
"oAuthSettings": {
"identityProvider": "oauth2",
"clientId": "9da109344cdac6a322fcb020a4bb6536",
"scopes": [],
"redirectMode": "Global",
"redirectUrl": "https://global.consent.azure-apim.net/redirect",
"properties": {
"IsFirstParty": "False",
"IsOnbehalfofLoginSupported": false
},
"customParameters": {
"authorizationUrl": {
"value": "https://rest.tsheets.com/api/v1/authorize"
},
"tokenUrl": {
"value": "https://rest.tsheets.com/api/v1/grant"
},
"refreshUrl": {
"value": "https://rest.tsheets.com/api/v1/grant"
}
}
}
}
},
"iconBrandColor": "#da3b01",
"capabilities": [],
"publisher": "Artesian Software Technologies LLP",
"stackOwner": "TSheets QuickBooks Time"
}
}

Просмотреть файл

@ -0,0 +1,33 @@
# QuickBooks Time (formerly TSheets)
QuickBooks Time (formerly TSheets) is a cloud-based time tracking and scheduling app that allows employees to clock in and out from the job site with the devices theyve already got in their pockets.
## Publisher: Artesian Software Technologies LLP
## Prerequisites
You need to have an QuickBooks Time account. You can [get started](https://tsheetsteam.github.io/api_docs/#getting-started) for free with Trial account.
## Supported Operations
### Retrieve Jobcodes
Retrieves a list of all jobcodes associated with your company, with optional filters to narrow down the results.
### Retrieve Projects
Retrieves a list of projects, with optional filters to narrow down the results.
### Retrieve Users
Retrieves a list of all users associated with your company, with optional filters to narrow down the results.
### Retrieve Notifications
Retrieves a list of notifications associated with your company, with filters to narrow down the results.
### Retrieve Timesheets
Retrieves a list of all timesheets associated with your company, with filters to narrow down the results.
## Obtaining Credentials
The QuickBooks Time API exposes functionalities to help developers build client applications and integrations with QuickBooks Time.
Follow the [Guided Walkthrough](https://tsheetsteam.github.io/api_docs/#obtaining-an-api-access-token) to create New Application. Once Application is created you can grab your client ID and client secret.
## Getting Started
[Getting Started Reference](https://tsheetsteam.github.io/api_docs/#getting-started)
## Known Issues and Limitations
No issues and limitations are known at this time.