Open API Documentation

Getting Started

Open API allow the eBillity User to access various data related to their Firm and Create Time Entry using those data.

  • Base URL - Base URL for all the API Calls https://api.ebillity.com/restservice/
  • Actual URL to access each endpoint will be Base URL + Endpoint Action URL. For example, for Employees Endpoint, the URL will be https://api.ebillity.com/restservice/thirdparty/employees
  • Authentication to the API will be based on the Bearer Token. eBillity Users can get Bearer Token by logging into the Firm Portal here.
  • Content Type - application/json
  • All the responses are in JSON format.

Employees

To get the List of employees associated with the given firm

Request

Method

URL            

GET

thirdparty/employees


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of employee object will be returned.

{

 "ServerTime": 1458022612903,

 "Employees": [

                {                        

                        "EmployeeId": 313598,

                        "FirstName": "James",

                        "LastName": "Mulvey",

                        "DefaultPayrollId": 10001,

                        "UseTimeEntry": 1,

                        "EmployeeTypeId": 3,

                        "IsAutoApproveTimeEntry": false

                        "IsAutoApproveExpenseEntry": false

                        "CreatedDate": "2017-08-11",

                        "ModifiedDate": "2017-08-11",

                        "IsActive": true

                },

                {

                        "EmployeeId": 315752,

                        "FirstName": "Douglas",

                        "LastName": "Dweck",

                        "DefaultPayrollId": 10002,

                        "UseTimeEntry": 2,

                        "EmployeeTypeId": 4,

                        "IsAutoApproveTimeEntry": true

                        "IsAutoApproveExpenseEntry": true

                        "CreatedDate": "2017-08-12",

                        "ModifiedDate": "2017-08-12",

                        "IsActive": true

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

Employee Object

Params

Description

EmployeeId

int

Employee Id

FirstName

string

Employee First Name

LastName

string

Employee Last Name

DefaultPayrollId

int

Flag to Identify Default Payroll Id

UseTimeEntry

int

Flag to Identify Use TimeEntry

EmployeeTypeId

int

Flag to Identify Employee Type Id

IsAutoApproveTimeEntry

boolean

Flag to Identify Auto Approve TimeEntry

IsAutoApproveExpenseEntry

boolean

Flag to Identify Auto Approve ExpenseEntry

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether Employee is Active or not

Clients

Method

Description

GET

Returns the List of Clients

POST

Creates a new Client

Request

Method

URL            

GET

thirdparty/clients?page={page}&limit={limit}


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

QUERYSTRING

page

int

Page number to be returned. Default Page Number is 1

QUERYSTRING

limit

int

Number of Clients to be returned for each page. Default Limit is 100 and Limit can range between 1 and 1000.

Response

Status

Response

200

List of Client object will be returned.

{

 "TotalRecordCount": 7685,

 "Clients": [

                {

                        "ClientId": 751,

                        "ProjectId": 0,

                        "ClientName": "Camp Emzee",

                        "IsActive": true

                },

                {

                        "ClientId": 751,

                        "ProjectId": 674,

                        "ClientName": "Camp Emzee : Pool 2011",

                        "IsActive": true

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

400

{"error":"Limit can not exceed more than 1000."}

500

{"error":"Something went wrong. Please try again later."}

Client Object

Params

Description

ClientId

int

Unique Id of the Client

ProjectId

int

Unique Id of the Project

ClientName

string

Client Name & Project Name combined. i.e, ClientName:ProjectName

IsActive

boolean

Flag to identify whether Client is Active or not

Request

Method

URL            

POST

thirdparty/clients


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

POST

ClientName

string

Name of the Client

Response

Status

Response

200

Unique Id of the Client created will be returned

{

 "ClientId": 676542,

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

400

{"error":"Client Name should not be empty."}

400

{"error":"Client Name should not be more than 40 characters.."}

400

{"error":"Client Name already exists."}

400

{"error":"Error while saving Client."}

500

{"error":"Something went wrong. Please try again later."}

Projects

To Save the Project for the given firm

Request

Method

URL            

POST

thirdparty/projects


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

POST

ClientId

int

Client Id for the Project

POST

ProjectName

string

Name of the Project

Response

Status

Response

200

Unique Id of the Project created will be returned

{

 "ProjectId": 14580,

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

400

{"error":"Project Name should not be empty."}

400

{"error":"Project Name should not be more than 40 characters."}

400

{"error":"Client Id should be valid."}

400

{"error":"Project Name already exists."}

400

{"error":"Error while saving Project."}

500

{"error":"Something went wrong. Please try again later."}

Activities

Method

Description

GET

Returns the List of Activities

POST

Creates a new Activity

Request

Method

URL            

GET

thirdparty/activities


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of Activity object will be returned.

{

 "ServerTime": 1458022612903,

 "Activities": [

                {

                        "ActivityId": 1413512,

                        "ActivityName": "Copying",

                        "CreatedDate": "2017-08-11",

                        "ModifiedDate": "2017-08-11",

                        "IsActive": true

                },

                {

                        "ActivityId": 465904,

                        "ActivityName": "Court Time",

                        "CreatedDate": "2017-08-12",

                        "ModifiedDate": "2017-08-12",

                        "IsActive": true

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

Activity Object

Params

Description

ActivityId

int

Unique Id of the Activity

ActivityName

string

Activity Name

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether Activity is Active or not

Request

Method

URL            

POST

thirdparty/activities


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

POST

ActivityName

string

Name of the Activity

POST

ActivityRate

string

Rate of the Activity

Response

Status

Response

200

Unique Id of the Activity created will be returned

{

 "ActivityId": 7654,

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

400

{"error":"Activity Name should not be empty."}

400

{"error":"Activity Name already exists."}

400

{"error":"Error while saving Client."}

500

{"error":"Something went wrong. Please try again later."}

LitigationCodes

To get the List of Litigation Codes associated with the given firm

Applicable only for +Billing Application

Request

Method

URL            

GET

thirdparty/litigationcodes


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of LigitationCode object will be returned.

{

 "ServerTime": 1458022612903,

 "LitigationCodes": [

                {

                        "LitigationCodeId": 1642229,

                        "LitigationName": "A103 Draft/revise",

                        "IsTimeEntry": true

                        "IsExpenseEntry": false

                        "IsLitigationCode": true

                        "IsUTBMSCode": false

                        "CreatedDate": "2017-08-11",

                        "ModifiedDate": "2017-08-11",

                        "IsActive": true

                },

                {

                        "LitigationCodeId": 1640641,

                        "LitigationName": "A109 Appear for/attend",

                        "IsTimeEntry": true

                        "IsExpenseEntry": false

                        "IsLitigationCode": true

                        "IsUTBMSCode": false

                        "CreatedDate": "2017-08-12",

                        "ModifiedDate": "2017-08-12",

                        "IsActive": true

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

LitigationCode Object

Params

Description

LitigationCodeId

int

Unique Id of the LitigationCode

LitigationName

string

Litigation Name

IsTimeEntry

boolean

Flag to identify whether this Litigation is applicable for Time Entry or not. If set to true show this Litigation in Activity for Time Entry

IsExpenseEntry

boolean

Flag to identify whether this Litigation is applicable for Expense Entry or not. If set to true show this Litigation in Activity for Expense Entry

IsLitigationCode

boolean

Flag to identify whether this code is Litigation code or not. If Client has ShowLitigation set to true, show codes with IsLitigationCode set to true.

IsUTBMSCode

boolean

Flag to identify whether this code is UTBMS code or not. If Client has ShowUTBMS set to true, show codes with IsUTBMSCode set to true. If client has both ShowLitigation & ShowUTBMS set to true, then show all the codes.

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether Litigation is Active or not

TaskCodes

To get the List of Task Codes associated with the given firm

Applicable only for +Billing Application

Request

Method

URL            

GET

thirdparty/taskcodes


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of TaskCode object will be returned.

{

 "ServerTime": 1458022612903,

 "TaskCodes": [

                {

                        "TaskCodeId": 111,

                        "TaskName": "C100 Fact Gathering",

                        "IsLitigationCode": true

                        "IsUTBMSCode": false

                        "CreatedDate": "2017-08-11",

                        "ModifiedDate": "2017-08-11",

                        "IsActive": true

                },

                {

                        "TaskCodeId": 112,

                        "TaskName": "C200 Researching Law",

                        "IsLitigationCode": true

                        "IsUTBMSCode": false

                        "CreatedDate": "2017-08-12",

                        "ModifiedDate": "2017-08-12",

                        "IsActive": true

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

TaskCode Object

Params

Description

TaskCodeId

int

Unique Id of the TaskCode

TaskName

string

Task Name

IsLitigationCode

boolean

Flag to identify whether this code is Litigation code or not. If Client has ShowLitigation set to true, show codes with IsLitigationCode set to true.

IsUTBMSCode

boolean

Flag to identify whether this code is UTBMS code or not. If Client has ShowUTBMS set to true, show codes with IsUTBMSCode set to true. If client has both ShowLitigation & ShowUTBMS set to true, then show all the codes.

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether Task is Active or not

Payrolls

To get the List of Payrolls associated with the given firm

Request

Method

URL            

GET

thirdparty/payrolls


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of Payroll object will be returned.

{

 "ServerTime": 1458022612903,

 "Payrolls": [

                {

                        "PayrollId": 1242,

                        "PayrollName": "Hourly",

                        "CreatedDate": "2017-08-11",

                        "ModifiedDate": "2017-08-11",

                        "IsActive": true

                },

                {

                        "PayrollId": 1243,

                        "PayrollName": "Weekly",

                        "CreatedDate": "2017-08-12",

                        "ModifiedDate": "2017-08-12",

                        "IsActive": true

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

Payroll Object

Params

Description

PayrollId

int

Unique Id of the Payroll

PayrollName

string

Payroll Name

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether Payroll is Active or not

Classes

To get the List of Classes associated with the given firm

Request

Method

URL            

GET

thirdparty/classes


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of Class object will be returned.

{

 "ServerTime": 1458022612903,

 "Classes": [

                {

                        "ClassId": 1678,

                        "ClassName": "Demo",

                        "CreatedDate": "2017-08-11",

                        "ModifiedDate": "2017-08-11",

                        "IsActive": true

                },

                {

                        "ClassId": 1679,

                        "ClassName": "Training",

                        "CreatedDate": "2017-08-12",

                        "ModifiedDate": "2017-08-12",

                        "IsActive": true

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

Class Object

Params

Description

ClassId

int

Unique Id of the Class

ClassName

string

Class Name

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether Class is Active or not

Locations

To get the List of Locations associated with the given firm

Request

Method

URL            

GET

thirdparty/locations


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of Location object will be returned.

{

 "ServerTime": 1458022612903,

 "Locations": [

                {

                        "LocationId": 1678,

                        "LocationName": "Demo",

                        "CreatedDate": "2017-08-11",

                        "ModifiedDate": "2017-08-11",

                        "IsActive": true

                },

                {

                        "LocationId": 1679,

                        "LocationName": "Training",

                        "CreatedDate": "2017-08-12",

                        "ModifiedDate": "2017-08-12",

                        "IsActive": true

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

Location Object

Params

Description

LocationId

int

Unique Id of the Location

LocationName

string

Location Name

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether Location is Active or not

TimeEntries

Method

Description

GET

Returns the List of Time Entries

POST

Creates a new Time Entry

Request

Method

URL            

GET

thirdparty/timeentries?page={page}&limit={limit}&syncstartdate={syncstartdate}&syncenddate={syncenddate}


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

page

int

Page number to be returned. Default Page Number is 1

QUERYSTRING

limit

int

Number of Time Entries to be returned for each page. Default Limit is 100 and Limit can range between 1 and 1000.

QUERYSTRING

syncstartdate

long

Time Entry Date in UNIX EPOCH format(Optional).

QUERYSTRING

syncenddate

long

Time Entry Date in UNIX EPOCH format(optional).

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of TimeEntry object will be returned.

{

 "ServerTime": 1458022612903,

 "TotalRecordCount": 3290,

 "TimeEntries": [

                {

                        "TimeEntryId": 87496570,

                        "ReferenceId": 0,

                        "TimeEntryDateEpoc": 1452988800000,

                        "EmployeeId": 8172,

                        "ClientId": 5971513,

                        "ProjectId": 0,

                        "ActivityId": 441400,

                        "LitigationCodeId": 34876,

                        "TaskCodeId": 8876,

                        "ClassId": 986,

                        "PayrollId": 1245,

                        "LocationId": 12,

                        "TimeEntryTypeId": 1,

                        "BillableTypeId": 1,

                        "IsBillable": true,

                        "IncludeInInvoice": true,

                        "FromHour": 18,

                        "FromMinute": 43,

                        "ToHour": 19,

                        "ToMinute": 13,

                        "TotalHour": 0,

                        "TotalMinute": 30,

                        "InvoiceDescription": "",

                        "InternalDescription": "",

                        "Rate": 100,

                        "IsoverrideRate": false,

                        "FlatFeeAmount": 0,

                        "AwardAmount": 0,

                        "Contingency": 0,

                        "ContingencyAmount": 0,

                        "RateSource": ""

                        "TimeEntryStatusId": 4,

                        "RejectionNote": ""

                        "IsActive": true,

                        "IntegrationStatus": [

                          {

                            "IntegrationId": 1

                            "IntegrationStatusId": 0

                          },

                          {

                            "IntegrationId": 2

                            "IntegrationStatusId": 1

                          }

                        ]

                },

                {

                        "TimeEntryId": 87496571,

                        "ReferenceId": 0,

                        "TimeEntryDateEpoc": 1452988800000,

                        "EmployeeId": 8172,

                        "ClientId": 5971513,

                        "ProjectId": 0,

                        "ActivityId": 441400,

                        "LitigationCodeId": 34876,

                        "TaskCodeId": 8876,

                        "ClassId": 986,

                        "PayrollId": 1245,

                        "LocationId": 13,

                        "TimeEntryTypeId": 1,

                        "BillableTypeId": 1,

                        "IsBillable": true,

                        "IncludeInInvoice": true,

                        "FromHour": 12,

                        "FromMinute": 21,

                        "ToHour": 14,

                        "ToMinute": 33,

                        "TotalHour": 2,

                        "TotalMinute": 12,

                        "InvoiceDescription": "",

                        "InternalDescription": "",

                        "Rate": 70,

                        "IsoverrideRate": false,

                        "FlatFeeAmount": 0,

                        "AwardAmount": 0,

                        "Contingency": 0,

                        "ContingencyAmount": 0,

                        "RateSource": ""

                        "TimeEntryStatusId": 4,

                        "RejectionNote": ""

                        "IsActive": true,

                        "IntegrationStatus": [

                          {

                            "IntegrationId": 1

                            "IntegrationStatusId": 0

                          },

                          {

                            "IntegrationId": 2

                            "IntegrationStatusId": 2

                          }

                        ]

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

400

{"error":"Limit can not exceed more than 1000."}

500

{"error":"Something went wrong. Please try again later."}

Request

Method

URL            

POST

thirdparty/timeentries


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

POST

timeentries

timeentry

List of Time Entry Objects for creating a new Time Entry or Updating Existing time entry

Response

Status

Response

200

List of TimeEntry object will be returned.

{

 "TimeEntries": [

                {

                        "ErrorId": 0,

                        "ErrorMessage": "",

                        "TimeEntryId": 87496570,

                        "ReferenceId": 100

                        "TimeEntryStatusId": 1

                        "IntegrationStatus": [

                          {

                            "IntegrationId": 1

                            "IntegrationStatusId": 0

                          },

                          {

                            "IntegrationId": 2

                            "IntegrationStatusId": 2

                          }

                        ]

                },

                {

                        "ErrorId": 1003,

                        "ErrorMessage": "TimeEntryDate is mandatory",

                        "TimeEntryId": 87496571,

                        "ReferenceId": 101

                        "TimeEntryStatusId": 1

                        "IntegrationStatus": [

                          {

                            "IntegrationId": 1

                            "IntegrationStatusId": 0

                          },

                          {

                            "IntegrationId": 2

                            "IntegrationStatusId": 2

                          }

                        ]

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

TimeEntry Object

Params

Description

TimeEntryId

int

Unique Id of the Time Entry. 0 will be passed when saving a new Time Entry and Actual Time Entry Id will be passed when updating the Time Entry

ReferenceId

int

Unique Id generated in Mobile DB for this Time Entry. (Used only in POST Method while saving a new Time Entry)

TimeEntryDateEpoc

long

Date of the Time Entry in EPOCH (UNIX TimeStamp) format. It is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds

EmployeeId

int

Mandatory. Unique Id of the Employee

ClientId

int

Unique Id of the Client

ProjectId

int

Unique Id of the Project

ActivityId

int

Unique Id of the Billable Activity Type

LitigationCodeId

int

Unique Id of the LitigationCode

Applicable only for +Billing Application

TaskCodeId

int

Unique Id of the TaskCode

Applicable only for +Billing Application

ClassId

int

Unique Id of the Class

PayrollId

int

Unique Id for the payroll

LocationId

int

Unique Id of the Location

TimeEntryTypeId

int

Type of Time Entry

0 - Standard

1 - OverTime

BillableTypeId

int

Billable Type

1 - Hourly

2 - FlatFee

3 - Contingency

IsBillable

boolean

Flag to identify whether the entry is billable or not.

IncludeInInvoice

boolean

Flag to identify whether the entry can be included in invoice or not. If IsBillable is true, this flag will be true by default. Otherwise user have the option to select whether to include in invoice or not.

FromHour

int

Hour Part from the From Time

FromMinute

int

Minute Part from the From Time

ToHour

int

Hour Part from the To Time

ToMinute

int

Minute Part from the To Time

TotalHour

int

Hour Part of the Total Hour

TotalMinute

int

Minute Part of the Total Hour

InvoiceDescription

string

Description for the Time Entry used while invoicing

InternalDescription

string

Description for the Time Entry for Internal Purpose

Rate

decimal

Rate for the Time Entry

IsoverrideRate

boolean

Flag to identify whether Rate is overrided or not

FlatFeeAmount

decimal

Flat Fee Amount

Applicable only for +Billing Application

AwardAmount

decimal

Award amount of the contingency

Applicable only for +Billing Application

ContingencyPercentage

decimal

Contingency percentage

Applicable only for +Billing Application

ContingencyAmount

decimal

Contingency amount

Applicable only for +Billing Application

RateSource

string

Rate Source for the Time Entry. Rate Source from Rate Endpoint should be sent while creating new time entry

Applicable only for +Billing Application

TimeEntryStatusId

int

Status of the Time Entry.

1 - Pending

2 - Submitted

3 - Rejected

4 - Approved

BillingStatusId

int

Billing Status of the Time Entry

0 - UnBilled

1 - PreBill

2 - Billed

Applicable only for +Billing Application

RejectionNote

string

Notes for Rejection

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether the time entry is active or deleted

IntegrationStatus

IntegrationStatus

List of Integration Status Object

TimeEntryResponse Object

Params

Description

ErrorId

int

Error Id to identify the Error

ErrorMessage

string

Error Message

1003 - Time Entry Date is mandatory
1004 - Employee is mandatory
1005 - Client is mandatory for Billable Entry
1006 - Activity is mandatory for Billable Entry
1007 - Hours can not be zero
1008 - Time Entry Status Changed in Server. Editing not Allowed 1009 - Task code is mandatory 1010 - Client is mandatory 1011 - Activity is mandatory

TimeEntryId

int

Unique Id for the Time Entry.

ReferenceId

int

Unique Id generated for reference

TimeEntryStatusId

int

Status of the Time Entry.

1 - Pending

2 - Submitted

3 - Rejected

4 - Approved

IntegrationStatus

IntegrationStatus

List of Integration Status Object

IntegrationStatus Object

Params

Description

IntegrationId

Int

Unique Id for the Integration

IntegrationStatusId

int

Id for Integration Status

0 - InQueue

1 - Synced

2 - NotInQueue

Expenses

Applicable only for +Billing Application

Method

Description

GET

Returns the List of Expense Entries

POST

Creates a new Expense Entry

Request

Method

URL            

GET

thirdparty/expenses


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

QUERYSTRING

lastsyncdate

long

DateTime in UNIX EPOCH format (optional param)

Response

Status

Response

200

List of Expense object will be returned.

{

        "ServerTime": 1458022612903,

        "ExpenseEntries": [

                {

                        "ExpenseId": 140583,

                        "ReferenceId": 0,

                        "ExpenseEntryDateEpoc": 1441324800000,

                        "EmployeeId": 680454,

                        "ClientId" : 7288864,

                        "ProjectId" : 87542,

                        "ExpenseTypeId": 404316,

                        "Cost": 10,

                        "Quantity": 2,

                        "MarkupRatio": 0,

                        "TotalCost": 20,

                        "Reimburse": false,

                        "Taxable": false,

                        "TaxPercentage": 0,

                        "Description": "Sent fax",

                        "FilePath": "",

                        "ExpenseEntryStatusId": 1,

                        "BillingStatusId": 1,

                        "QBSyncStatusId": 1,

                        "RejectionNote": "",

                        "CreatedDate": "2017-08-11",

                        "ModifiedDate": "2017-08-11",

                        "IsActive": true

                        "IntegrationStatus": [

                          {

                            "IntegrationId": 1

                            "IntegrationStatusId": 0

                          },

                          {

                            "IntegrationId": 2

                            "IntegrationStatusId": 1

                          }

                        ]

                },

                {

                        "ExpenseId": 140584,

                        "ReferenceId": 0,

                        "ExpenseEntryDateEpoc": 1441324800000,

                        "EmployeeId": 680454,

                        "ClientId": 7288864,

                        "ProjectId": 0,

                        "ExpenseTypeId": 404315,

                        "Cost": 6,

                        "Quantity": 5,

                        "MarkupRatio": 0,

                        "TotalCost": 30,

                        "Reimburse": false,

                        "Taxable": false,

                        "TaxPercentage": 0,

                        "Description": "Made copies",

                        "FilePath": "",

                        "ExpenseEntryStatusId": 1,

                        "BillingStatusId": 1,

                        "QBSyncStatusId": 1,

                        "RejectionNote": "",

                        "CreatedDate": "2017-08-12",

                        "ModifiedDate": "2017-08-12",

                        "IsActive": true

                        "IntegrationStatus": [

                          {

                            "IntegrationId": 1

                            "IntegrationStatusId": 0

                          },

                          {

                            "IntegrationId": 2

                            "IntegrationStatusId": 1

                          }

                        ]

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

Request

To Create a new Expense or update an existing expense associated with the Firm

Applicable only for +Billing Application

Method

URL            

POST

thirdparty/expenses


Type

Params

Description

Authorization

Bearer {authtoken}

Bearer Authentication to Authenticate the calling user. User can get the authtoken from eBillity portal after logging in.

POST

expenseentries

expense

List of Expense Entries to be created or updated

Response

Status

Response

200

List of ExpenseResponse object will be returned.

{

        "ExpenseResponses": [

                {

                        "ErrorId": 0,

                        "ErrorMessage": "",

                        "ExpenseId": 140583,

                        "ReferenceId": 1297

                        "ExpenseEntryStatusId": 1

                        "IntegrationStatus": [

                          {

                            "IntegrationId": 1

                            "IntegrationStatusId": 0

                          },

                          {

                            "IntegrationId": 2

                            "IntegrationStatusId": 1

                          }

                        ]

                },

                {

                        "ErrorId": 0,

                        "ErrorMessage": "",

                        "ExpenseId": 140584,

                        "ReferenceId": 1298

                        "ExpenseEntryStatusId": 1

                        "IntegrationStatus": [

                          {

                            "IntegrationId": 1

                            "IntegrationStatusId": 0

                          },

                          {

                            "IntegrationId": 2

                            "IntegrationStatusId": 1

                          }

                        ]

                }

        ]

}

403

{"error":"Authorization Code is missing."}

401

{"error":"Invalid Authorization Code."}

500

{"error":"Something went wrong. Please try again later."}

Expense Object

Params

Description

ExpenseId

int

Unique Id for the Expense Entry. 0 will be passed while saving new entry and actual Id will be passed while updating

ReferenceId

int

Unique Id generated for reference

ExpenseEntryDateEpoc

long

Date of the Expense in EPOC Format

EmployeeId

int

Unique Id of the Employee

ClientId

int

Unique Id of the Client

ProjectId

int

Unique Id of the Project

ExpenseTypeId

int

Unique Id of the Expense Type

LocationId

int

Unique Id of the Location

Cost

decimal

Expense Cost

Quantity

decimal

Quantity of the Expense

MarkupRatio

decimal

MarkupRatio if any

TotalCost

decimal

Total Cost of expense

Reimburse

boolean

Flag to identify whether the expense is reimbursed or not

Taxable

boolean

Flag to identify whether the expense is taxable or not

TaxPercentage

decimal

Tax Percentage

Description

string

Description of the Expense

FilePath

string

File Path for the attachment

ExpenseEntryStatusId

int

Status of the Expense Entry

1 - Pending

3 - Rejected

4 - Approved

BillingStatusId

int

Billing Status of the Expense Entry

0 - UnBilled

1 - PreBill

2 - Billed

RejectionNote

string

Notes for Rejection

CreatedDate

DateTime

Flag to Identify Created Date

ModifiedDate

DateTime

Flag to Identify Modified Date

IsActive

boolean

Flag to identify whether the expense is active or deleted

IntegrationStatus

IntegrationStatus

List of Integration Status Object

ExpenseResponse Object

Params

Description

ErrorId

int

Error Id to identify the Error

ErrorMessage

string

Error Message

1003 - Expense Entry Date is mandatory
1004 - Employee is mandatory
1005 - Client is mandatory
1006 - Expense Type is mandatory
1007 - Quantity can not be zero
1008 - Total Cost can not be zero


ExpenseId

int

Unique Id for the Expense Entry.

ReferenceId

int

Unique Id generated for reference

ExpenseEntryStatusId

int

Status of the Expense Entry

1 - Pending

3 - Rejected

4 - Approved

IntegrationStatus

IntegrationStatus

List of Integration Status Object

IntegrationStatus Object

Params

Description

IntegrationId

Int

Unique Id for the Integration

IntegrationStatusId

int

Id for Integration Status

0 - InQueue

1 - Synced

2 - NotInQueue

Glossary

Conventions

  • Base URL - Base URL for all the API Calls https://api.ebillity.com/restservice/
  • Client - Client application.
  • Status - HTTP status code of response.
  • All the possible responses are listed under ‘Responses’ for each method. Only one of them is issued per request server.
  • All response are in JSON format.

Status Codes

All status codes are standard HTTP status codes. The below ones are used in this API.

2XX - Success of some kind

4XX - Error occurred in client’s part

5XX - Error occurred in server’s part

Status Code

Description

200

OK

201

Created

202

Accepted (Request accepted, and queued for execution)

400

Bad request

401

Authentication failure

403

Forbidden

404

Resource not found

405

Method Not Allowed

409

Conflict

412

Precondition Failed

413

Request Entity Too Large

500

Internal Server Error

501

Not Implemented

503

Service Unavailable