Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

RSM InTime provides a SOAP Web Service Interface that allows two-way flow of information to external systems. This enables automated and efficient transfer of data to and from your other systems reducing effort and duplication.  

...

updateTimesheet() method will create a new Timesheet or update an existing one if it exists in Draft status. The Timesheet will be saved with Draft status. The Timesheet object you supply to this method must contain all the necessary data which includes a valid Placement reference, the Period End date and one or more Shifts. Each Shift must reference a valid Rate from the Placement, the Time worker or a Decimal value and the Date on which it was worked. It will normally be necessary to retrieve the details of the Placement the Timesheet relates to in order to correctly complete all the required fields.

submitTimesheet() would then be called to submit the Timesheet for approval once it has all the necessary time (Shifts) added to it. 

rejectTimesheet() or approveTimesheet() are then used to process the approval.

revertTimesheet() can also be used to revert a Submitted or Approved status Timesheet if required. This has exactly the same result as reverting a Timesheet though the RSM InTime UI.As of 3.12 there is a "hidden" parameter. This creates the timesheet but keeps it hidden from the UI so it can not be affected by UI processes. This can be used to create a timesheet that should only be invoiced via the web services for example. Hidden timesheets can be updated via this method while they are still in draft status but you must set the hidden parameter of the method call to true. You can unhide the timesheet by changing the "hidden" property of the timesheet to false. Hidden timesheets still have to be approved before they can be invoiced/exported - the forceApproveTimesheet can be used for this which bypasses the approval route. Hidden timesheets are automatically unhidden when first invoiced on either the Sales or Purchase side. 

submitTimesheet() would then be called to submit the Timesheet for approval once it has all the necessary time (Shifts) added to it. 

rejectTimesheet() or approveTimesheet() are then used to process the approval.

revertTimesheet() can also be used to revert a Submitted or Approved status Timesheet if required. This has exactly the same result as reverting a Timesheet though the RSM InTime UI.

Invoicing 

As of 3.12 you can generate invoices using the generateInvoices( ) method. This method requires a SearchCriteria parameter which is used to filter the items to be invoiced. This needs to be populated with appropriate criteria to select only the items you wish to invoice.

Warning: if no criteria are specified all invoiceable items in the system will be invoiced!
It is possible to specify a list of specific timesheet IDs or ExpenseItem IDs that you wish to invoice using SearchCriteria.timesheetIDs or SearchCriteria.expenseItemIDs.
You must specify the type of invoices you wish to generate from: ClientInvoice, SelfBillInvoice or AdviceNote.
You can not credit invoices using this method. However, invoicing net negative items will result in a Credit Note rather than an Invoice.

To invoice "Hidden" timesheets, set the SearchCriteria.includeHidden property to true.

Examples:


request.setInvoiceType("ClientInvoice");

searchCriteria.setIncludeTimesheets(true);
searchCriteria.setIncludeHidden(true);
long[] tsIds = new long[2];
tsIds[0] = 123L;
tsIds[1] = 456L;
searchCriteria.setTimesheetIDs(tsIds);

searchCriteria.setIncludeExpenses(false);
searchCriteria.setExpenseItemIDFrom(3001L);
searchCriteria.setExpenseItemIDTo(3009L);

request.setSearchCriteria(searchCriteria);

Calendar invDate = Calendar.getInstance();
invDate.set(2024,10,1,0,0,0);
request.setInvoiceDate(invDate);


As of 3.12 you can uploadSupplierInvoice() to an AdviceNote and accept it via acceptSupplierInvoice()

Single Sign On

getSingleSignOnToken() can be used to log in to RSM InTime using an existing RSM InTime User account. This method returns a token that you can then append to any valid RSM InTime URL and it will allow you to retrieve the page as if you were logged into the system directly. This means you can embed RSM InTime pages within another web site or retrieve other data.

...

FieldConstant

Comment

Notes
Client


invoicePeriod0Weekly

1Two-Weekly

2Four-Weekly

3Calendar Monthly

44-4-5

5Other




InvoiceDeliveryMethod (howSendInvoices)0PostInvoice delivery method

1Email

2Fax

3Not sent




timesheetsOnInvoices0Timesheets On Invoices

1Timesheets Not On Invoices




paperOnInvoices-1Agency Default

0No Attachments

1Attach Paper Timesheets

2Attach Expense Group Paper

4Attach Expense Receipts Paper

<sum of the above>Attach the appropriate paperFor example, 5 to attach timesheets and receipts




consolidation

Code Required

String[] cConsolidation = new String[] { "charge-payment-term","destination","source","charge-currency","sales-tax-code","client" };
client.setConsolidation(cConsolidation);

Everything Goes On One Invoice



Code Required

String[] cConsolidation = new String[] { "charge-payment-term","destination","source","charge-currency","sales-tax-code","client","sheet-type" };
client.setConsolidation(cConsolidation);

Expenses Go On On Invoice And Expenses Go On Another



Code Required

String[] cConsolidation = new String[] { "charge-payment-term","destination","source","charge-currency","sales-tax-code","client","placement" };
client.setConsolidation(cConsolidation);

Each Placement is Invoiced Separately



Code Required

String[] cConsolidation = new String[] { "charge-payment-term","destination","source","charge-currency","sales-tax-code","client","sheet" };
client.setConsolidation(cConsolidation);

Each Timesheet Or Expense Item Is Invoiced Separately



Code Required

String[] cConsolidation = new String[] { "charge-payment-term","destination","source","charge-currency","sales-tax-code","client",”worker” };
client.setConsolidation(cConsolidation);

Each Candidate Is Invoiced Separately






grouping

Code Required

String[] cGrouping = new String[] { "sheet-rate" };

client.setGrouping(cGrouping);

Sheet Rate




Worker


workerTypepayeFor PAYE Workers

ltdFor Ltd Company Workers

external-contractorFor Non Ltd Company Workers

cisFor CIS Workers

umbFor Workers operating through an UmbrellaYou must also reference the umbrella against the worker, otherwise the worker will appear as LTD.

ir35For workers inside scope of IR35 (deemed)




cisBusinessTypeSoleTrader


Company


Trust


Partnership





cisPercentage0


20


30





paymentFrequencyweekly


monthly


<InPay Payroll Name>If InPay connected, for PAYE workers, use the InPay Payroll Name




limitedCompany.timesheetsOnInvoices

0Timesheets On Invoices

1Timesheets Not On Invoices




limitedCompany.paperOnInvoices-1Agency Default

0No Attachments

1Attach Paper Timesheets

2Attach Expense Group Paper

4Attach Expense Receipts Paper

<sum of the above>Attach the appropriate paperFor example, 5 to attach timesheets and receipts




genderM


F





limitedCompany.invoicePeriod0Weekly

1Two-Weekly

2Four-Weekly

3Calendar Monthly

44-4-5

5Other




Payment Methodbacs
NOT CASE SENSITIVE

cheque
NOT CASE SENSITIVE

cash
NOT CASE SENSITIVE

chaps
NOT CASE SENSITIVE

ach
NOT CASE SENSITIVE

international
NOT CASE SENSITIVE

building society
NOT CASE SENSITIVE




sendLtdCompanyTimesheets0

Do not send a copy of the timesheets to the worker or provider 



1Only send a copy of timesheets to the worker's ltd company email address

2Send a copy of timesheets to the worker's provider if they have one, otherwise send it to the worker

3Send copies to both the worker and provider




consolidation

Code Required

String[] wConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","worker" };
worker.setConsolidation(wConsolidation);

Everything Goes On One Invoice



Code Required

String[] wConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","worker","sheet-type" };
worker.setConsolidation(wConsolidation);

Expenses Go On On Invoice And Expenses Go On Another



Code Required

String[] wConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","worker","placement" };
worker.setConsolidation(wConsolidation);

Each Placement is Invoiced Separately



Code Required

String[] wConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","worker","sheet" };
worker.setConsolidation(wConsolidation);

Each Timesheet Or Expense Item Is Invoiced Separately






grouping

Code Required

String[] wGrouping = new String[] { "sheet","sheet-rate" };

worker.setGrouping(wGrouping);

Sheet Rate




Placement


layoutstandard
See Maintaining Placements

calendar





timesheetDateCalculatorweekly
See Maintaining Placements. You can see all possible values for this in the ui.

monthly


<many more>See UI for all options.




Rates


period60 / HFor hourly rates entered in hours format (hours only or start, break, finish).

1440 / FFor fixed rates of a specified duration entered in decimal format (decimal or tickbox)




periodDuration<any integer>The duration in minutes for the fixed rate (e.g. 60 for hourly rates, 480 for a daily rates (if daily rate it worth 8 hours)).




timePatterndefaultWill use the selected default time pattern

<any string>The string should match the name of a time pattern in the system




timesheetFieldsSTART_FINISH_BREAKEnter start, break, finishOnly when period above is 60

HOURSEnter hours onlyOnly when period above is 60

DECIMALEnter time as a decimalOnly when period above is 1440

DAYTickbox only (equivalent to entering decimals as 1.00)Only when period above is 1440

InvoiceAdjustmentSettings

(Company / Worker)




AdjustBy0Fixed Amount

1Percentage
AdjustPer0Per Worker

1Per Timesheet

2Per Invoice
AdjustType0Addition

1Deduction
ExpenseType


EntryMethod

0Gross valuePopulate the GrossValue and optionally the VatAmount field on an ExpenseItem with this entry method

1Net ValuePopulate the NetValue field on an ExpenseItem with this entry method

2Units and Unit netPopulate the Unit and UnitNet fields on an ExpenseItem with this entry method. E.g. Set Unit = 30 and UnitNet = 0.45 to claim 30 miles at 45p per mile.

3Units and NetPopulate the Unit and Net Value fields on an ExpenseItem with this entry method.




Timesheet


StatusgetTimesheetStatus()getStatus()

-1

DELETED



1

INCOMPLETE



2

SUBMITTED



3

APPROVED



5

COMPLETED



-2

MISSING



-3

REVERTED






InvoiceInfo (Invoice)


Invoice TypegetInvoiceDescription()


Advice Note


Client Invoice


Client Credit Note


Self Bill Invoice


Self Bill Credit Note


Supplier Invoice


Supplier Credit Note





Provider


consolidation

Code Required

String[] pConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","ltd-co-provider" };
provider.setConsolidation(pConsolidation);

Everything Goes On One Invoice



Code Required

String[] pConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","ltd-co-provider","sheet-type" };
provider.setConsolidation(pConsolidation);

Expenses Go On On Invoice And Expenses Go On Another



Code Required

String[] pConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","ltd-co-provider","placement" };
provider.setConsolidation(pConsolidation);

Each Placement is Invoiced Separately



Code Required

String[] pConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","ltd-co-provider","sheet" };
provider.setConsolidation(pConsolidation);

Each Timesheet Or Expense Item Is Invoiced Separately



Code Required

String[] pConsolidation = new String[] { "destination","source","pay-currency","purchase-tax-code","ltd-co-provider",”worker” };
provider.setConsolidation(pConsolidation);

Each Candidate Is Invoiced Separately






grouping

Code Required

String[] pGrouping = new String[] { "sheet-rate" };

provider.setGrouping(pGrouping);

Sheet Rate




invoicePeriod

0

Weekly

1

Two-Weekly

2

Four-Weekly

3

Calendar Monthly

4

4-4-5

5Other




timesheetsOnInvoices0Timesheets On Invoices

1Timesheets Not On Invoices




paperOnInvoices-1Agency Default

0No Attachments

1Attach Paper Timesheets

2Attach Expense Group Paper

4Attach Expense Receipts Paper

<sum of the above>Attach the appropriate paperFor example, 5 to attach timesheets and receipts

...