System Integration API

Reference Manual

1 Response Formats

Response Status Code 

Comments 

200 

When doing any type of request a response of 200 indicates success 

400 

This is generally a validation warning or a business rule failure.   

Code may be provided to deal with special situations but can generally be ignored. 

{ 

    “Error”: { 

        “Code”: “”, 

        “Message”: { 

            “Value”: “For Rest Api Vendor, the property ‘Name’ is required.” 

        } 

    } 

} 

404 

Returned in conjunction with a GET Detail request or an update request where the requested entity is no longer available 

500 

An unexpected situation occurred.  A notification will be sent to 4castplus support for resolution. 

{ 

    “Error”: { 

         “Code”: null, 

        “Message”: { 

            “Value”: “There was an internal server error.  Administrator has been notified.” 

        } 

    } 

} 

503 

Server down for maintenance 

2 Session

Information

Detail

Login

POST https://base/api/login 

Logoff

POST https://base/api/logoff 

Sample Login Request 

{ 

    “Account”: “yourcompaniesname”, 

    “UserName”: “youremail”, 

    “Password”: “yourpassword” 

} 

 

Sample Login Response 

{ 

    “SessionId”: “SESSIONID”, 

    “Account”: “ACCOUNT NAME”, 

    “UserName”: “USERNAME”, 

    “ExpiresOn”: “WHENSESSIONEXPIRES” 

} 

 

Each subsequent request must contain the above sessionId either as a url parameter, or a cookie. 

 

Base/api/action?_s=sessionId 

 

Cookie _ACCOUNT_SESSION_ID_

3 Division

Information 

Detail 

List 

GET https://base/api/divisions 

 

 

 

Field 

Type 

Comments 

Id 

Integer 

 

Name 

Text(256) 

Required 

Code 

Text(50) 

Required 

BusinessIdentifier 

Text(50) 

 

Active 

Bool 

 

4 Payment Terms

Information 

Detail 

List 

GET https://base/api/paymentTerms 

 

 

 

Field 

Type 

Comments 

Id 

Integer 

 

Name 

Text(50) 

Required 

Code 

Text(50) 

 

Active 

Bool 

 

5 Labor

Information 

Detail 

Detail 

GET https://base/api/labor(laborId) 

List 

GET https://base/api/labor 

 

For the List Operation a filter can be supplied for ModifiedOn and CreatedOn 

labor?$filter=ModifiedOn gt 2010-01-01T00:00:00 

 

Field 

Type 

Comments 

Id 

Integer 

 

EmployeeId 

Text(40) 

Required 

Email 

Text(255) 

 

FirstName 

Text(300) 

Required 

LastName 

Text(50) 

Required 

PreferredName 

Text(100) 

 

CostCode 

Text(50) 

 

ResourceCode 

Text(50) 

 

AddressLine1 

Text(255) 

 

AddressLine2 

Text(255) 

 

City 

Text(120) 

 

Province 

Text(120) 

 

PostalCode 

Text(50) 

 

Country 

Text(120) 

 

PhoneNumber 

Text(50) 

 

HiredOn 

Date 

Required 

IsContractor 

Bool 

 

DepartmentName 

Text(100) 

 

IncludeInPayroll 

Bool 

 

LicenseProfile 

Text(50) 

Required 

TerminatedOn 

Date 

 

IsActive 

Bool 

 

InactiveOn 

DateTime 

 

SupervisorName 

Labor.Supervisor 

Required 

  Supervisor.EmployeeId 

Text(40) 

Required 

  Supervisor.FirstName 

Text(50) 

Required 

  Supervisor.LastName 

Text(300) 

Required 

  Supervisor.CostCode 

Text(50) 

 

OvertimeCalculation 

Text(50) 

 

MinimumRequiredHoursPerWeek 

Decimal 

 

MinimumRequiredHoursPerMonday 

Decimal 

 

MinimumRequiredHoursPerTuesday 

Decimal 

 

MinimumRequiredHoursPerWednesday 

Decimal 

 

MinimumRequiredHoursPerThursday 

Decimal 

 

MinimumRequiredHoursPerFriday 

Decimal 

 

MinimumRequiredHoursPerSaturday 

Decimal 

 

MinimumRequiredHoursPerSunday 

Decimal 

 

VacationAccrualFrequency 

Text(50) 

 

ModifiedOn 

DateTime 

 

CreatedOn 

DateTime 

 

VacationAccrual 

Labor.VacationAccrual 

 

  VacationAccrual.EffectiveFrom 

Date 

 

  VacationAccrual.DaysPerFrequency 

Decimal 

 

CostClasses 

Labor.CostClass 

 

  CostClass.Name 

Text(350) 

 

  CostClass.CostCode 

Text(100) 

 

Properties 

Labor.Property 

 

  Property.PropertyName 

Text(50) 

 

  Property.PropertyValue 

Text(800) 

 

6 Resource Summary

Information 

Detail 

List 

GET https://base/api/resourceSummaries 

 

For the List Operation a filter can be supplied for ResourceType 

labor?$filter=ResourceType eq Labor 

Values for ResourceType are Labor, Equipment, Material, LaborExpense, Other, Service 

 

Field 

Type 

Comments 

Id 

Integer 

 

ParentId 

Integer 

 

ResourceType 

Text(50) 

 

Name 

Text(350) 

 

ResourceCode 

Text(120) 

 

Active 

Bool 

 

ResourceClasses 

ResourceSummary.ResourceClassSummary 

 

  ResourceClassSummary.Id 

Integer 

 

  ResourceClassSummary.Name 

Text(350) 

 

  ResourceClassSummary.ResourceClassCategoryId 

Integer 

 

  ResourceClassSummary.ResourceClassCategoryName 

Text(50) 

 

  ResourceClassSummary.AccountingCode 

Text(150) 

 

7 Vendor

Information 

Detail 

Detail 

GET https://base/api/vendors(vendorId) 

List 

GET https://base/api/vendors 

 

For the List Operation a filter can be supplied for VendorCode 

vendors?$filter=VendorCode eq ‘ABCDE’ 

Create 

POST https://base/api/vendors 

Update 

PATCH https://base/api/vendors(vendorId) 

Delete 

DELETE https://base/api/vendors(vendorId) 

 

Field 

Type 

Comments 

Id 

Integer 

 

Name 

Text(100) 

Required 

VendorCode 

Text(50) 

Required  

PaymentTerms 

Text(50) 

DEPRECATED => PaymentTermsName 

PaymentTermsName 

Text(50) 

 

PaymentTermsCode 

Text(50) 

 

Class 

Text(50) 

 

DefaultResourceType 

Text(50) 

 

Location 

Text(40) 

 

PhoneNumber 

Text(50) 

 

FaxNumber 

Text(50) 

 

Email 

Text(60) 

 

Website 

Text(60) 

 

Rating 

Integer 

 

Approved 

Bool 

Y or N 

Contractor 

Bool 

One of Contractor or Supplier is required 

Supplier 

Bool 

 

Active 

Bool 

 

Description 

Text(255) 

 

Divisions 

Division 

 

  Division.Id 

Integer 

 

  Division.Name 

Text(256) 

Required 

  Division.Code 

Text(50) 

Required 

Addresses 

Address 

 

  Address.Id 

Integer 

Required on update 

  Address.AddressLine1 

Text(255) 

 

  Address.City 

Text(50) 

 

  Address.Province 

Text(50) 

 

  Address.Country 

Text(50) 

 

  Address.PostalCode 

Text(50) 

 

  Address.Primary 

Bool 

Y or N 

Labors 

Labor 

 

  Labor.Id 

Integer 

Required 

  Labor.FirstName 

Text(100) 

Required 

  Labor.LastName 

Text(50) 

Required 

  Labor.IsSubcontractor 

Boolean 

 

  Labor.Role 

Text(50) 

 

  Labor.Email 

Text(60) 

 

  Labor.PhoneNumber 

Text(50) 

 

  Labor.FaxNumber 

Text(50) 

 

  Labor.PrimaryContact 

Bool 

 

  Labor.Procurement 

Bool 

Required 

  Labor.Active 

Bool 

 

  Labor.Addresses 

Address 

 

    Labor.Address.Id 

Integer 

Required on update 

    Labor.Address.AddressLine1 

Text(255) 

 

    Labor.Address.City 

Text(50) 

 

    Labor.Address.Province 

Text(50) 

 

    Labor.Address.Country 

Text(50) 

 

    Labor.Address.PostalCode 

Text(50) 

 

    Labor.Address.Primary 

Bool 

 

 

Create / Update can be done with same format as detail response 

 

Sample Detail Response 

{ 

  “Id”: 6, 

  “Name”: “Vendor 123”, 

  “VendorCode”: “CODE123”, 

  “Class”: “Material Classes”, 

  “DefaultResourceType”: “”, 

  “Location”: “Location”, 

  “PhoneNumber”: “123456789”, 

  “FaxNumber”: “123456789”, 

  “Email”: “john.doe@smith.com”, 

  “Website”: null, 

  “Rating”: 0, 

  “Approved”: true, 

  “Contractor”: false, 

  “Supplier”: true, 

  “Active”: true, 

  “Description”: null, 

  “Divisions”: [], 

  “Addresses”: [ 

    { 

      “Id”: -1, 

      “AddressLine1”: “Address”, 

      “City”: “City”, 

      “Province”: “Province”, 

      “Country”: “Country”, 

      “PostalCode”: “123456”, 

      “Primary”: true 

    } 

  ], 

  “Labors”: [ 

    { 

      “Id”: 429, 

      “FirstName”: “FirstName “, 

      “LastName”: “LastName”, 

      “IsSubcontractor”: false, 

      “Role”: null, 

      “Email”: “jane.doe@smith.com”, 

      “PhoneNumber”: “123456789”, 

      “FaxNumber”: “123456789”, 

      “PrimaryContact”: true, 

      “Procurement”: true, 

      “Active”: true, 

      “Addresses”: [ 

        { 

          “Id”: 227, 

          “AddressLine1”: “AddressLine1”, 

          “City”: “City “, 

          “Province”: “Province “, 

          “Country”: “Country”, 

          “PostalCode”: “123456”, 

          “Primary”: true 

        } 

      ] 

    } 

  ] 

} 

8 Customer

Information 

Detail 

Detail 

GET https://base/api/customers(customerId) 

List 

GET https://base/api/customers  

 

For the List Operation a filter can be supplied for CustomerCode 

customers?$filter=CustomerCode eq ‘ABCDE’ 

Create 

POST https://base/api/customers 

Update 

PATCH https://base/api/customers(customerId) 

Delete 

DELETE https://base/api/customers(customerId) 

 

Field 

Type 

Comments 

Id 

Integer 

 

Name 

Text(60) 

Required 

CustomerCode 

Text(50) 

Required 

PaymentTermsId 

Integer 

 

PaymentTermsName 

Text(50) 

 

PhoneNumber 

Text(50) 

 

Active 

Bool 

Y or N 

Description 

Text(255) 

 

Divisions 

Division 

 

  Division.Id 

Integer 

 

  Division.Name 

Text(256) 

Required 

  Division.Code 

Text(50) 

Required 

Addresses 

Address 

 

  Address.Id 

Integer 

Required on update 

  Address.ContactName 

Text(120) 

 

  Address.AddressCode 

Text(50) 

 

  Address.PhoneNumber 

Text(50) 

 

  Address.Email 

Text(60) 

 

  Address.AddressLine1 

Text(255) 

 

  Address.AddressLine2 

Text(255) 

 

  Address.City 

Text(50) 

 

  Address.Province 

Text(50) 

 

  Address.Country 

Text(50) 

 

  Address.PostalCode 

Text(50) 

 

  Address.RemiteTo 

Bool 

 

  Address.ShipTo 

Bool 

 

  Address.Active 

Bool 

 

  Address.Primary 

Bool 

 

 

Create / Update can be done with same format as detail response 

 

Sample Detail Response 

{ 

  “Id”: 1011, 

  “Name”: “Customer123”, 

  “CustomerCode”: “CODE123”, 

  “PaymentTermsId”: 6, 

  “PaymentTermsName”: “Payment 30 Days”, 

  “PhoneNumber”: “123456789”, 

  “Active”: true, 

  “Description”: “”, 

  “Divisions”: [ 

    { 

      “Id”: 1, 

      “Name”: “Division”, 

      “DivisionCode”: “DC” 

    } 

  ], 

  “Addresses”: [ 

    { 

      “Id”: 1, 

      “ContactName”: “Contact 1”, 

      “AddressCode”: null, 

      “PhoneNumber”: “123456789”, 

      “Email”: “”, 

      “AddressLine1”: “Address”, 

      “City”: “City”, 

      “Province”: “Province”, 

      “Country”: “Country”, 

      “PostalCode”: “123456”, 

      “RemitTo”: false, 

      “ShipTo”: false, 

      “Active”: true, 

      “Primary”: false 

    }, 

    { 

      “Id”: 64,  

      “ContactName”: “Contact 2”, 

      “AddressCode”: null, 

      “PhoneNumber”: “123456789”, 

      “Email”: “”, 

      “AddressLine1”: “Address”, 

      “City”: “City”, 

      “Province”: “Province”, 

      “Country”: “Country”, 

      “PostalCode”: “123456”, 

      “RemitTo”: false, 

      “ShipTo”: false, 

      “Active”: false, 

      “Primary”: true 

    } 

  ] 

} 

9 Customer Invoice

Information 

Detail 

Detail 

GET https://base/api/customerInvoices(customerInvoiceId) 

List 

GET https://base/api/customerInvoices  

 

For the List Operation a filter can be supplied for ModifiedOn,CreatedOn,Approved,InvoiceNumber 

customerInvoices?$filter=CreatedOn gt yyyy-MM-ddTHH:mm:ss and Approved eq true 

customerInvoices?$filter=CreatedOn gt 2019-10-27T12:44:45 and Approved eq true 

DateTimes are always in UTC 

 

Field 

Type 

Comments 

Id 

Integer 

 

DivisionName 

Text(50) 

 

DivisionCode 

Text(255) 

 

CustomerCode 

Text(50) 

 

ProjectCode 

Text(50) 

 

ProjectAfePO 

Text(100) 

 

FixedPriceBillingMethod 

Text(50) 

 

InvoiceNumber 

Text(50) 

Required 

ReferenceCode 

Text(50) 

 

InvoiceDescription 

Text(2048) 

 

ExportDocumentDate 

Date 

 

ExportReferenceNumber 

Text(50) 

 

CurrencyCode 

Text(50) 

 

InvoiceDate 

Date 

“YYYY-MM-DD” 

InvoiceDueDate 

Date 

“YYYY-MM-DD” 

PaymentTerms 

Integer 

 

PreTaxAdjustmentAmount  

Decimal 

 

InvoiceAmount 

Decimal 

 

QuantityDiscountAmount 

Decimal 

 

TotalDiscountAmount 

Decimal 

 

PreTaxInvoiceAmount 

Decimal 

 

TaxAmount 

Decimal 

 

PostTaxAdjustmentAmount 

Decimal 

 

TotalInvoiceAmount 

Decimal 

 

Exported 

Bool 

 

Approved 

Bool 

 

ApprovedBy 

Text(350) 

 

ApprovedOn 

DateTime 

 

ModifiedOn 

DateTime 

 

CreatedOn 

DateTime 

 

Project 

InvoiceProject 

 

  InvoiceProject.Id 

Integer 

 

  InvoiceProject.ProjectCode 

Text(50) 

 

  InvoiceProject.Properties 

InvoiceProjectProperty 

 

    InvoiceProjectProperty.PropertyCode 

Text(50) 

 

    InvoiceProjectProperty.PropertyName 

Text(50) 

 

    InvoiceProjectProperty.PropertyValue 

Text(800) 

 

QuantityDiscounts 

InvoiceDiscount 

 

    InvoiceDiscount.Name 

Text(50) 

 

    InvoiceDiscount.Code 

Text(50) 

 

    InvoiceDiscount.Amount 

Decimal 

 

Lines 

InvoiceLine 

 

  InvoiceLine.Id 

Integer 

 

  InvoiceLine.ProjectCode 

Text(50) 

 

  InvoiceLine.BillingType 

Text(50) 

 

  InvoiceLine.Quantity 

Decimal 

 

  InvoiceLine.GrossAmount 

Decimal 

 

  InvoiceLine.DiscountAmount 

Decimal 

 

  InvoiceLine.TaxAmount 

Decimal 

 

  InvoiceLine.Total 

Decimal 

 

  InvoiceLine.AccountingCode 

Text(50) 

 

  InvoiceLine.BillingCodes 

InvoiceBillingCode 

 

    InvoiceBillingCode.Name 

Text(50) 

 

    InvoiceBillingCode.Value 

Text(120) 

 

  InvoiceLine.Discounts 

InvoiceDiscount 

 

    InvoiceDiscount.Name 

Text(50) 

 

    InvoiceDiscount.Code 

Text(50) 

 

    InvoiceDiscount.Amount 

Decimal 

 

  InvoiceLine.Taxes 

InvoiceLineTax 

 

    InvoiceLineTax.TaxCode 

Text(50) 

 

    InvoiceLineTax.TaxAccountingCode 

Text(50) 

 

    InvoiceLineTax.TaxPercentage 

Decimal 

 

    InvoiceLineTax.TaxAmount 

Decimal 

 

ProgressLines 

ProgressInvoiceLine 

 

  ProgressInvoiceLine.Id 

Integer 

 

  ProgressInvoiceLine.ProjectCode 

Text(50) 

 

  ProgressInvoiceLine.Wbs 

Text(50) 

 

  ProgressInvoiceLine.BillingType 

Text(50) 

 

  ProgressInvoiceLine.GrossAmount 

Decimal 

 

  ProgressInvoiceLine.DiscountAmount 

Decimal 

 

  ProgressInvoiceLine.TaxAmount 

Decimal 

 

  ProgressInvoiceLine.Total 

Decimal 

 

  ProgressInvoiceLine.BillingCodes 

InvoiceBillingCode 

 

    ProgressInvoiceLine.Name 

Text(50) 

 

    ProgressInvoiceLine.Value 

Text(120) 

 

  ProgressInvoiceLine.Discounts 

InvoiceDiscount 

 

    InvoiceDiscount.Name 

Text(50) 

 

    InvoiceDiscount.Code 

Text(50) 

 

    InvoiceDiscount.Amount 

Decimal 

 

  ProgressInvoiceLine.Taxes 

ProgressInvoiceLineTax 

 

    ProgressInvoiceLineTax.TaxCode 

Text(50) 

 

    ProgressInvoiceLineTax.TaxAccountingCode 

Text(50) 

 

    ProgressInvoiceLineTax.TaxPercentage 

Decimal 

 

    ProgressInvoiceLineTax.TaxAmount 

Decimal 

 

 

Sample Detail Response 

{ 

  “Id”: 5, 

  “CustomerCode”: “Customer123”, 

  “ProjectCode”: “ProjectCode”, 

  “InvoiceNumber”: “20190918-001”, 

  “CurrencyCode”: “CAD”, 

  “InvoiceDate”: “2019-09-18”, 

  “InvoiceDescription”: “NOTES”, 

  “ReferenceCode”: “ReferenceCode”, 

  “ExportReferenceNumber”: “ASDF”, 

  “PreTaxInvoiceAmount”: 9185.0000, 

  “TotalInvoiceAmount”: 10379.0500, 

  “Exported”: true, 

  “Approved”: false, 

  “ProgressLines”: [], 

  “Lines”: [ 

    { 

      “Id”: 146, 

      “Quantity”: 4.0000, 

      “TaxAmount”: 36.4000, 

      “Total”: 280.0000, 

      “Taxes”: [ 

        { 

          “TaxCode”: “TCC”, 

          “TaxAmount”: 36.4000 

        } 

      ] 

    }, 

    … 

    { 

      “Id”: 3082, 

      “Quantity”: 3.5000, 

      “TaxAmount”: 31.8500, 

      “Total”: 245.0000, 

      “Taxes”: [ 

        { 

          “TaxCode”: “TCC”, 

          “TaxAmount”: 31.8500 

        } 

      ] 

    } 

  ] 

} 

 

Sample Progress Detail Response 

{ 

  “Id”: 5, 

  “CustomerCode”: “Customer123”, 

  “ProjectCode”: “ProjectCode”, 

  “InvoiceNumber”: “20190918-001”, 

  “CurrencyCode”: “CAD”, 

  “InvoiceDate”: “2019-09-18”, 

  “InvoiceDescription”: “NOTES”, 

  “ReferenceCode”: “ReferenceCode”, 

  “ExportReferenceNumber”: “ASDF”, 

  “PreTaxInvoiceAmount”: 9185.0000, 

  “TotalInvoiceAmount”: 10379.0500, 

  “Exported”: true, 

  “Approved”: false, 

  “ProgressLines”: [ 

    { 

      “Id”: 146, 

      “Wbs”: “1.1.1”, 

      “TaxAmount”: 36.4000, 

      “Total”: 280.0000, 

      “Taxes”: [ 

        { 

          “TaxCode”: “TCC”, 

          “TaxAmount”: 36.4000 

        } 

      ] 

    }, 

    … 

    { 

      “Id”: 3082, 

      “Wbs”: “1.1.2”, 

      “TaxAmount”: 31.8500, 

      “Total”: 245.0000, 

      “Taxes”: [ 

        { 

          “TaxCode”: “TCC”, 

          “TaxAmount”: 31.8500 

        } 

      ] 

    } 

 

  ], 

  “Lines”: [] 

} 

10 Customer Invoice Export Document

Information 

Detail 

Detail 

GET https://base/api/customerInvoiceExportDocuments(documentId) 

List 

GET https://base/api/customerInvoiceExportDocuments  

Create 

POST https://base/api/customerInvoiceExportDocuments 

 

Field 

Type 

Comments 

Id 

Integer 

 

DocumentDate 

Date 

 

DocumentNumber 

Text(100) 

 

ExportReferenceNumber 

Text(50) 

 

Invoices 

DocumentInvoice 

 

  DocumentInvoice.Id 

Integer 

Required 

  DocumentInvoice.CustomerCode 

Text(50) 

 

  DocumentInvoice.ProjectCode 

Text(50) 

 

  DocumentInvoice.InvoiceNumber 

Text(50) 

 

  DocumentInvoice.ExportReferenceNumber 

Text(50) 

 

  DocumentInvoice.IntegrationInvoiceTotal 

Decimal 

 

  DocumentInvoice.IntegrationTaxAmount 

Decimal 

 

  DocumentInvoice.IntegrationInvoiceBillingAmount 

Decimal 

 

  DocumentInvoice.IntegrationDiscountAmount 

Decimal 

 

  DocumentInvoice.IntegrationSurchargeAmount 

Decimal 

 

 

Sample Create Request 

{ 

  “ExportReferenceNumber”: “ABC”, 

  “Invoices”: [ 

    { 

      “Id”: 1, 

      “ExportReferenceNumber”: “DEF” 

    }, 

    { 

      “Id”: 2, 

      “ExportReferenceNumber”: “DEF2” 

    }, 

    { 

      “Id”: 3, 

      “ExportReferenceNumber”: “DEF3” 

    }, 

    { 

      “Id”: 4 

    }, 

    { 

      “Id”: 5, 

      “ExportReferenceNumber”: “DEF5” 

} 

  ] 

} 

.

11 Customer Receipt

Information 

Detail 

Detail 

GET https://base/api/customerReceipts(receiptId) 

List 

GET https://base/api/customerReceipts  

Create 

POST https://base/api/customerReceipts  

Update 

PATCH https://base/api/customerReceipts(receiptId) 

Delete 

DELETE https://base/api/customerReceipts(receiptId) 

 

Detail / List Fields 

Type 

Comments 

Id 

Integer 

 

ProjectCode  

Text(50) 

 

CustomerCode 

Text(50) 

 

ReceiptNumber 

Text(50) 

 

ReceiptAmount 

Decimal 

 

ReceiptDate 

Date 

 

ReceiptNotes 

Text(1000) 

 

ImportReferenceId 

Text(50) 

 

ExportReferenceNumber 

Text(50) 

 

Submitted 

Bool 

 

Exported 

Bool 

 

ModifiedOn 

DateTime 

 

CreatedOn 

DateTime 

 

Items 

CustomerReceiptItem 

 

  CustomerReceiptItem.InvoiceId 

Integer 

 

  CustomerReceiptItem.Amount 

Decimal 

 

 

Create / Update Fields 

Type 

Comments 

ProjectCode  

Text(50) 

Required 

CustomerCode 

Text(50) 

Required 

ReceiptNumber 

Text(50) 

Required 

ReceiptDate 

Date 

Required 

ReceiptNotes 

Text(1000) 

 

ImportReferenceId 

Text(50) 

 

Submitted 

Bool 

 

Items 

CustomerReceiptItem 

 

  CustomerReceiptItem.InvoiceId 

Integer 

Required 

  CustomerReceiptItem.Amount 

Decimal 

(Provide one of Amount or IntegrationAmount) 

  CustomerReceiptItem.IntegrationAmount 

Decimal 

Only provide if different from Amount 

 

Sample Create Request 

{ 

  “ProjectCode”: “PROJECT_CODE”, 

  “CustomerCode”: “CUSTOMER_CODE”, 

  “ReceiptNumber”: “RECEIPT_NUMBER”, 

  “ReceiptDate”: “2020-06-24”, 

  “ReceiptNotes”: null, 

  “ImportReferenceId”: null, 

  “Submitted”: false, 

  “Items”:  

  [ 

    { 

      “InvoiceId”: 123, 

      “Amount”: 500 

    } 

  ] 

}  

12 Customer Receipt Export Document 

Information 

Detail 

Detail 

GET https://base/api/customerReceiptExportDocuments(documentId) 

List 

GET https://base/api/customerReceiptExportDocuments  

Create 

POST https://base/api/customerReceiptExportDocuments 

 

Detail / List Fields 

Type 

Comments 

Id 

Integer 

 

DocumentNumber 

Text(100) 

 

ExportReferenceNumber 

Text(50) 

 

Receipts 

DocumentReceipt 

 

  DocumentReceipt.Id 

Integer 

Required 

  DocumentReceipt.CustomerCode 

Text(50) 

 

  DocumentReceipt.ProjectCode 

Text(50) 

 

  DocumentReceipt.ReceiptNumber 

Text(50) 

 

  DocumentReceipt.ExportReferenceNumber 

Text(50) 

 

 

Create Fields 

Type 

Comments 

ExportReferenceNumber 

Text(50) 

 

Receipts 

DocumentReceipt 

 

  DocumentReceipt.Id 

Integer 

Required 

  DocumentReceipt.ExportReferenceNumber 

Text(50) 

 

 

Sample Create Request 

{ 

  “ExportReferenceNumber”: “ABC”, 

  “Receipts”: [ 

    { 

      “Id”: 1, 

      “ExportReferenceNumber”: “DEF” 

    }, 

    { 

      “Id”: 2, 

      “ExportReferenceNumber”: “DEF2” 

    }, 

    { 

      “Id”: 3, 

      “ExportReferenceNumber”: “DEF3” 

    }, 

    { 

      “Id”: 4 

    }, 

    { 

      “Id”: 5, 

      “ExportReferenceNumber”: “DEF5” 

} 

  ] 

} 

13 Project

Information 

Detail 

Detail 

GET https://base/api/projects(entryId) 

List 

GET https://base/api/projects  

 

For the List Operation a filter can be supplied for ModifiedOn,CreatedOn 

projects?$filter=CreatedOn gt yyyy-MM-ddTHH:mm:ss 

projects?$filter=CreatedOn gt 2019-10-27T12:44:45 

DateTimes are always in UTC 

 

 

Query Fields 

Type 

Comments 

Id 

Integer 

 

CompanyCode 

Text(50) 

 

DivisionCode 

Text(50) 

 

ProjectCode  

Text(50) 

 

ProjectName 

Text(255) 

 

ProjectManagerName 

Text(350) 

 

SupervisorName 

Text(350) 

 

Location 

Text(40) 

 

CustomerCode 

Text(50) 

 

CustomerName 

Text(60) 

 

ProjectBillingType 

Text(50) 

 

BusinessDimensionCode 

Text(50) 

 

BusinessDimensionName 

Text(50) 

 

ProjectType 

Text(50) 

 

ProjectSpendingType 

Text(50) 

 

ProjectGeography 

Text(50) 

 

ProjectStatus 

Text(50) 

 

CurrencyCode 

Text(50) 

 

ProjectStartDate 

Date 

 

ProjectEndDate 

Date 

 

AfePurchaseOrderNumber 

Text(100) 

 

Active 

Bool 

 

ModifiedOn 

DateTime 

 

CreatedOn 

DateTime 

 

 

Sample Detail Response 

{ 

  “Id”: 123, 

  “CompanyCode”: “COMPANY_CODE”, 

  “DivisionCode”: “DIVISION_CODE”, 

  “ProjectCode”: “PROJECT_CODE”, 

  “ProjectName”: “PROJECT_NAME”, 

  “ProjectManagerName”: “PROJECT_MANAGER_NAME”, 

  “SupervisorName”: “SUPERVISOR_NAME”, 

  “Location”: “LOCATION”, 

  “CustomerCode”: “CUSTOMER_CODE”, 

  “CustomerName”: “CUSTOMER_NAME”, 

  “ProjectBillingType”: “Cost”, 

  “BusinessDimensionCode”: null, 

  “BusinessDimensionName”: null, 

  “ProjectType”: null, 

  “ProjectSpendingType”: null, 

  “ProjectGeography”: null, 

  “ProjectStatus”: “InProgress”, 

  “CurrencyCode”: “CAD”, 

  “ProjectStartDate”: “2017-08-24”, 

  “ProjectEndDate”: “2025-09-22”, 

  “AfePurchaseOrderNumber”: null, 

  “Active”: true, 

  “ModifiedOn”: “2020-02-25T17:52:31”, 

  “CreatedOn”: “2017-08-24T16:32:53” 

} 

14 Project Summary 

Information 

Detail 

List 

GET https://base/api/projectSummaries 

 

 

 

 

Query Fields 

Type 

Comments 

Id 

Integer 

 

DivisionId 

Integer 

 

DivisionCode 

Text(50) 

 

BusinessDimensionId 

Integer 

 

BusinessDimensionCode 

Text(50) 

 

ProjectCode  

Text(50) 

 

ProjectName 

Text(255) 

 

ProjectStatus 

Text(50) 

 

Active 

Bool 

 

 

 

 

 

Sample Detail Response 

{ 

  “Id”: 123, 

  “DivisionId”: “2”, 

  “DivisionCode”: “DIVISION_CODE”, 

  “BusinessDimensionId”: “2”, 

  “BusinessDimensionCode”: “BUSINESS_DIMENSION_CODE”, 

  “ProjectCode”: “PROJECT_CODE”, 

  “ProjectName”: “PROJECT_NAME”, 

  “ProjectStatus”: “InProgress”, 

  “Active”: true 

} 

15 WBS Summary

Information 

Detail 

List 

GET https://base/api/wbsSummaries 

 

For the List Operation a filter can be supplied for ProjectId 

projects?$filter=ProjectId eq 1234 

 

 

 

Query Fields 

Type 

Comments 

Id 

Integer 

 

ParentId 

Integer 

 

ProjectId 

Integer 

 

Wbs 

Text(50) 

 

Name 

Text(120) 

 

WbsCode 

Text(120) 

 

WbsType 

Text(50) 

 

Active 

Bool 

 

Fields 

WbsSummaryField 

 

WbsSummaryField.Name 

Text(50) 

 

WbsSummaryField.Value 

Text(120) 

 

 

Sample Detail Response 

{ 

  “Id”: 123, 

  “ParentId”: 456, 

  “ProjectId”: 22, 

  “Wbs”: “1.2.3”, 

  “Name”: “WBS_NAME “, 

  “WbsCode”: “WBS_CODE”, 

  “WbsType”: “Deliverable”, 

  “Active”: true, 

  “Fields”:  

[ 

{ 

   “Name”: “Field 1”, 

“Value”: “Value 1” 

} 

] 

} 

16 Timesheets Entry

Information 

Detail 

Detail 

GET https://base/api/timesheetEntries(entryId) 

List 

GET https://base/api/timesheetEntries  

Create 

POST https://base/api/timesheetEntries  

 

Query Fields 

Type 

Comments 

Id 

Integer 

 

EntryType 

Text(50) 

 

OriginOfEntry 

Text(50) 

 

ProjectName 

Text(255) 

 

ProjectCode 

Text(50) 

 

ProjectManagerName 

Text(350) 

 

ProjectGeography 

Text(50) 

 

CustomerName 

Text(60) 

 

CustomerCode 

Text(50) 

 

WorkpackageWbs 

Text(50) 

 

WorkpackageName 

Text(120) 

 

WorkpackageCostCode 

Text(120) 

 

WorkpackagePhaseName 

Text(120) 

 

WorkpackagePhaseCostCode 

Text(120) 

 

ResourceName 

Text(350) 

 

ResourceCostCode 

Text(50) 

 

ResourceTagNumber 

Text(40) 

 

ResourceType 

Text(50) 

 

LaborName 

Text(350) 

 

LaborIsContractor 

Bool 

 

LaborEmployeeId 

Text(40) 

 

LaborUnionId 

Text(50) 

 

LaborUnionLocal 

Text(50) 

 

LaborUnionClass 

Text(50) 

 

LaborDepartmentName 

Text(100) 

 

ResourceClassName 

Text(350) 

 

ResourceClassCostCode 

Text(50) 

 

ResourceClassCategoryName 

Text(50) 

 

ResourceClassCategoryCostCode 

Text(50) 

 

JobsiteNumber 

Text(100) 

 

SiteForemanName 

Text(350) 

 

ExpenseDescription 

Text(400) 

 

WorkDate 

Date 

 

RateTypeName 

Text(40) 

 

RateTypeCode 

Text(10) 

 

Quantity 

Decimal 

 

Approved 

Bool 

 

Submitted 

Bool 

 

AccountingCode 

Text(MAX) 

 

ModifiedOn 

DateTime 

 

CreatedOn 

DateTime 

 

CostCodes 

CostCode 

 

  CostCode.Name 

Text(50) 

 

  CostCode.Value 

Text(120) 

 

AccountingCodes 

AccountingCode 

 

  AccountingCode.Name 

Text(50) 

 

  AccountingCode.Value 

Text(100) 

 

Transactions 

TimesheetTransaction 

 

  Transaction.Id 

Integer 

 

  Transaction.TransactionType 

Text(50) 

 

  Transaction.RateTypeName 

Text(40) 

 

  Transaction.RateTypeCode 

Text(10) 

 

  Transaction.Quantity 

Decimal 

 

  Transaction.Rate 

Decimal 

 

  Transaction.Total 

Decimal 

 

  Transaction.ExportReferenceNumber 

Text(50) 

 

  Transaction.Exported 

Bool 

 

  Transaction.ModifiedOn 

DateTime 

 

  Transaction.CreatedOn 

DateTime 

 

 

Create Fields 

Type 

Comments 

ProjectCode 

Text(50) 

Required 

WorkpackageWbs 

Text(50) 

Required 

ResourceType 

Text(50) 

Required (Labor, Equipment, Material, LaborExpense) 

ResourceName 

Text(350) 

Required 

ResourceCostCode 

Text(50) 

 

ResourceTagNumber 

Text(40) 

 

ResourceClassName 

Text(350) 

Required 

ResourceClassCostCode 

Text(50) 

 

ExpenseLaborName 

Text(350) 

Required For ResourceType = LaborExpense 

ExpenseLaborCostCode 

Text(50) 

 

ExpenseLaborEmployeeId 

Text(40) 

 

ExpenseDescription 

Text(400) 

 

ExpenseCost 

Decimal 

When ResourceType = LaborExpense 

WorkDate 

Date 

Required 

RateTypeName 

Text(40) 

Required 

Quantity 

Decimal 

 

InternalComments 

Text(1000) 

 

ExternalComments 

Text(1000) 

 

 

Sample Create Request 

[ 

    { 

        “ResourceType”: “Labor”, 

        “ProjectCode”: “PROJECT_ABC”, 

        “WorkpackageWbs”: “1.3.5”, 

        “ResourceName”: “John Doe”, 

        “ResourceCostCode”: “GLB01”, 

        “ResourceTagNumber”: “1234”, 

        “ResourceClassName”: “Electrical Tradesman”, 

        “WorkDate”: “2020-01-15”, 

        “RateTypeName”: “Regular Hour”, 

        “Quantity”: 8 

    }, 

    { 

        “ResourceType”: “Equipment”, 

        “ProjectCode”: “PROJECT_ABC”, 

        “WorkpackageWbs”: “1.3.6”, 

        “ResourceName”: “Generic Fire Alarm Equipment”, 

        “ResourceCostCode”: “”, 

        “ResourceTagNumber”: “”, 

        “ResourceClassName”: “CABLE INSTALLATION EQUIPMENT”, 

        “WorkDate”: “2020-01-15”, 

        “RateTypeName”: “Lot”, 

        “Quantity”: 15.2 

    }, 

    { 

        “ResourceType”: “Material”, 

        “ProjectCode”: “PROJECT_ABC”, 

        “WorkpackageWbs”: “1.3.1”, 

        “ResourceName”: “CABLE – INSTRUMENT, CONTROL, DATA & F/O”, 

        “ResourceCostCode”: “”, 

        “ResourceTagNumber”: “”, 

        “ResourceClassName”: “CABLE – INSTRUMENT, CONTROL, DATA & F/O”, 

        “WorkDate”: “2020-01-15”, 

        “RateTypeName”: “Unit”, 

        “Quantity”: 12345 

    }, 

    { 

        “ResourceType”: “LaborExpense”, 

        “ProjectCode”: “1.302060080”, 

        “WorkpackageWbs”: “1.1.4”, 

        “ResourceName”: “Driving”, 

        “ResourceCostCode”: “”, 

        “ResourceTagNumber”: “”, 

        “ResourceClassName”: “Driving”, 

        “ExpenseLaborName”: “John Doe”, 

        “ExpenseLaborEmployeeId”: “1234”, 

        “ExpenseDescription”: “ABCDEF”, 

        “WorkDate”: “2020-01-15”, 

        “RateTypeName”: “Kilometer”, 

        “ExpenseCost”: 123, 

        “Quantity”: 5 

    } 

] 

17 Timesheet Transaction Export Document

Information 

Detail 

Detail 

GET https://base/api/timesheetTransactionExportDocuments(documentId) 

List 

GET https://base/api/timesheetTransactionExportDocuments 

Create 

POST https://base/api/timesheetTransactionExportDocuments 

 

Field 

Type 

Comments 

Id 

Integer 

 

DocumentNumber 

Text(100) 

 

ExportReferenceNumber 

Text(50) 

 

TimesheetTransactions 

TimesheetTransaction 

 

  TimesheetTransaction.Id 

Integer 

Required for Create 

  TimesheetTransaction.TransactionType 

Text(50) 

 

  TimesheetTransaction.EntryType 

Text(50) 

 

  TimesheetTransaction.OriginOfEntry 

Text(50) 

 

  TimesheetTransaction.ProjectName 

Text(255) 

 

  TimesheetTransaction.ProjectCode 

Text(50) 

 

  TimesheetTransaction.ProjectManagerName 

Text(350) 

 

  TimesheetTransaction.ProjectGeography 

Text(50) 

 

  TimesheetTransaction.CustomerName 

Text(60) 

 

  TimesheetTransaction.CustomerCode 

Text(50) 

 

  TimesheetTransaction.WorkpackageName 

Text(120) 

 

  TimesheetTransaction.WorkpackageCostCode 

Text(120) 

 

  TimesheetTransaction.WorkpackagePhaseName 

Text(120) 

 

  TimesheetTransaction.WorkpackagePhaseCostCode 

Text(120) 

 

  TimesheetTransaction.WorkpackageAreaName 

Text(120) 

 

  TimesheetTransaction.WorkpackageAreaCostCode 

Text(120) 

 

  TimesheetTransaction.ResourceName 

Text(350) 

 

  TimesheetTransaction.ResourceType 

Text(50) 

 

  TimesheetTransaction.LaborFirstName 

Text(300) 

 

  TimesheetTransaction.LaborLastName 

Text(50) 

 

  TimesheetTransaction.LaborIsContractor 

Bool 

 

  TimesheetTransaction.LaborEmployeeId 

Text(40) 

 

  TimesheetTransaction.LaborUnionId 

Text(50) 

 

  TimesheetTransaction.LaborUnionLocal 

Text(50) 

 

  TimesheetTransaction.LaborUnionClass 

Text(50) 

 

  TimesheetTransaction.LaborDepartmentName 

Text(100) 

 

  TimesheetTransaction.ResourceClassName 

Text(350) 

 

  TimesheetTransaction.ResourceClassCostCode 

Text(50) 

 

  TimesheetTransaction.ResourceClassCategoryName 

Text(50) 

 

  TimesheetTransaction.ResourceClassCategoryCostCode 

Text(50) 

 

  TimesheetTransaction.JobsiteNumber 

Text(100) 

 

  TimesheetTransaction.SiteForemanName 

Text(350) 

 

  TimesheetTransaction.WorkDate 

Date 

yyyy-MM-dd 

  TimesheetTransaction.RateTypeName 

Text(40) 

 

  TimesheetTransaction.RateTypeCode 

Text(10) 

 

  TimesheetTransaction.Quantity 

Decimal 

 

  TimesheetTransaction.Rate 

Decimal 

 

  TimesheetTransaction.Total 

Decimal 

 

  TimesheetTransaction.ExportReferenceNumber 

Text(50) 

Optional for Create 

  TimesheetTransaction.AccountingCode 

Text(MAX) 

 

  AccountingCodes 

AccountingCode 

 

    AccountingCode.Name 

Text(50) 

 

    AccountingCode.Value 

Text(100) 

 

 

Sample Create Request 

{ 

  “ExportReferenceNumber”: “ABC”, 

  “TimesheetTransactions”: [ 

    { 

      “Id”: 1, 

      “ExportReferenceNumber”: “DEF” 

    }, 

    { 

      “Id”: 2, 

      “ExportReferenceNumber”: “DEF2” 

    }, 

    { 

      “Id”: 3, 

      “ExportReferenceNumber”: “DEF3” 

    }, 

    { 

      “Id”: 4 

    }, 

    { 

      “Id”: 5, 

      “ExportReferenceNumber”: “DEF5” 

    } 

  ] 

} 

18 Vendor Invoice

Information 

Detail 

Detail 

GET https://base/api/vendorInvoices(vendorInvoiceId) 

List 

GET https://base/api/vendorInvoices  

 

For the List Operation a filter can be supplied for ModifiedOn,CreatedOn,Approved,VendorCode,Properties(“PropertyCode”) 

vendorInvoices?$filter=CreatedOn gt yyyy-MM-ddTHH:mm:ss 

vendorInvoices?$filter=CreatedOn gt 2019-10-27T12:44:45 

DateTimes are always in UTC 

 

Field 

Type 

Comments 

Id 

Integer 

 

VendorInvoiceType 

Text(50) 

 

VendorCode 

Text(50) 

 

ProjectCode 

Text(50) 

 

ProjectTypeName 

Text(50) 

 

InvoiceNumber 

Text(255) 

 

ExportDocumentDate 

Date 

 

ExportReferenceNumber 

Text(50) 

 

InvoiceDescription 

Text(512) 

 

CurrencyCode 

Text(50) 

 

InvoiceDate 

Date 

“YYYY-MM-DD” 

PaymentDueDate 

Date 

“YYYY-MM-DD” 

PaymentTermsCode 

Text(50) 

 

TotalInvoiceAmount 

Decimal 

 

Exported 

Bool 

 

Approved 

Bool 

 

ApprovedOn 

DateTime 

 

ModifiedOn 

DateTime 

 

CreatedOn 

DateTime 

 

Properties 

VendorInvoice.Property 

 

  Property.PropertyName 

Text(50) 

 

  Property.PropertyValue 

Text(800) 

 

Lines 

VendorInvoiceLine 

 

  VendorInvoiceLine.Id 

Text(50) 

 

  VendorInvoiceLine.ProjectCode 

Text(50) 

 

  VendorInvoiceLine.WorkpackageBillingType 

Text(50) 

 

  VendorInvoiceLine.ResourceType 

Text(50) 

 

  VendorInvoiceLine.EmployeeId 

Text(40) 

 

  VendorInvoiceLine.CustomerCode 

Text(50) 

 

  VendorInvoiceLine.AttestedQuantity 

Decimal 

 

  VendorInvoiceLine.AttestedCost 

Decimal 

DEPRECATED => VendorInvoiceLine.VendorInvoiceAmount 

  VendorInvoiceLine.VendorInvoiceAmount 

Decimal 

 

  VendorInvoiceLine.ResourceClassCostCode 

Text(50) 

 

  VendorInvoiceLine.ExpenseDescription 

Text 

 

  VendorInvoiceLine.PurchaseOrderItemDescription 

Text(350) 

 

  VendorInvoiceLine.PurchaseOrderVendorItemDescription 

Text(350) 

 

  VendorInvoiceLine.AdvancePaymentCost 

Decimal 

DEPRECATED  

  VendorInvoiceLine.RetainageCost 

Decimal 

 

  VendorInvoiceLine.AccountingCode 

Text(MAX) 

DEPRECATED => ResourceAccountingCode 

  VendorInvoiceLine.AccountingCodes 

AccountingCode 

DEPRECATED => ResourceAccountingCodes 

    AccountingCode.Name 

Text(50) 

DEPRECATED => ResourceAccountingCodes 

    AccountingCode.Value 

Text(100) 

DEPRECATED => ResourceAccountingCodes 

  VendorInvoiceLine.DivisionName 

Text(256) 

 

  VendorInvoiceLine.DivisionCode 

Text(50) 

 

  VendorInvoiceLine.ResourceAccountingCode 

Text(MAX) 

 

  VendorInvoiceLine.ResourceAccountingCodes 

AccountingCode 

 

    AccountingCode.Name 

Text(50) 

 

    AccountingCode.Value 

Text(100) 

 

  VendorInvoiceLine.RetainageAccountingCode 

Text(MAX) 

 

  VendorInvoiceLine.RetainageAccountingCodes 

AccountingCode 

 

    AccountingCode.Name 

Text(50) 

 

    AccountingCode.Value 

Text(100) 

 

  VendorInvoiceLine.PurchaseOrder 

PurchaseOrderReference 

 

    PurchaseOrderReference.PurchaseOrderId 

Integer 

 

    PurchaseOrderReference.PurchaseOrderNumber 

Text(90) 

 

  VendorInvoiceLine.TaxCost 

Decimal 

 

  VendorInvoiceLine.Taxes 

VendorInvoiceLineTax 

 

    VendorInvoiceLineTax.TaxName 

Text(50) 

 

    VendorInvoiceLineTax.TaxPercent 

Decimal 

 

    VendorInvoiceLineTax.TaxCost 

Decimal 

 

    VendorInvoiceLineTax.AccountingCode 

Text(100) 

 

 

Sample Detail Response 

{ 

  “Id”: 9, 

  “VendorCode”: “VENDOR_CODE”, 

  “ProjectCode”: “PROJECT_CODE”, 

  “InvoiceNumber”: “INVOICE NUMBER 123456”, 

  “ExportReferenceNumber”: null, 

  “InvoiceDescription”: “”, 

  “CurrencyCode”: “USD”, 

  “InvoiceDate”: “2017-11-06”, 

  “TotalInvoiceAmount”: 16330.2613, 

  “Exported”: false, 

  “Approved”: false, 

  “Lines”: [ 

    { 

      “Id”: “247.2.9”, 

      “AttestedQuantity”: 0.7514, 

      “AttestedCost”: 7712.4733, 

      “PurchaseOrder”: { 

        “PurchaseOrderId”: 5, 

        “links”: { 

          “self”: { 

            “href”: “/api/purchaseOrders(5)” 

          } 

        } 

      } 

    }, 

    { 

      “Id”: “248.2.9”, 

      “AttestedQuantity”: 0.7982, 

      “AttestedCost”: 8617.7880, 

      “PurchaseOrder”: { 

        “PurchaseOrderId”: 5, 

        “links”: { 

          “self”: { 

            “href”: “/api/purchaseOrders(5)” 

          } 

        } 

      } 

    } 

  ] 

}

19 Vendor Invoice Payment

Information 

Detail 

Detail 

GET https://base/api/vendorInvoicePayments(paymentId) 

List 

GET https://base/api/vendorInvoicePayments  

Create 

POST https://base/api/vendorInvoicePayments  

Update 

PATCH https://base/api/vendorInvoicePayments(paymentId) 

Delete 

DELETE https://base/api/vendorInvoicePayments(paymentId) 

 

Field 

Type 

Comments 

PaymentId 

Integer 

Required 

PaymentType 

Text(50) 

VendorInvoice, AdvancePayment, RetainagePayment 

PaymentNumber 

Text(250) 

 

PaymentDate 

Date 

“YYYY-MM-DD” 

PaymentTotal 

Decimal 

 

Submitted 

Bool 

 

Notes 

Text(1000) 

 

Items 

PaymentItem 

 

  PaymentItem.PaymentItemId 

Integer 

 

  PaymentItem.VendorInvoiceId 

Integer 

Required 

  PaymentItem.VendorInvoiceExportReferenceNumber 

Text(50) 

 

  PaymentItem.VendorInvoiceNumber 

Text(50) 

 

  PaymentItem.PaymentAmount 

Decimal 

Required 

 

Sample Detail Response 

{ 

  “PaymentId”: 45, 

  “PaymentType”: “VendorInvoice”, 

  “PaymentNumber”: “123”, 

  “PaymentDate”: “2018-01-31”, 

  “PaymentTotal”: 2200.0000, 

  “Submitted”: true, 

  “Notes”: “”, 

  “Items”: [ 

    { 

      “PaymentItemId”: 72, 

      “VendorInvoiceId”: 51, 

      “VendorInvoiceNumber”: “1072”, 

      “PaymentAmount”: 2200.0000 

    } 

  ] 

} 

 

Sample Create Request 

{ 

  “PaymentType”: “VendorInvoice”, 

  “PaymentDate”: “2018-01-31”, 

  “PaymentTotal”: 147.7136, 

  “Submitted”: true, 

  “Notes”: “”, 

  “Items”: [ 

    { 

      “VendorInvoiceId”: 6871, 

      “PaymentAmount”: 147.7136 

    } 

  ] 

} 

 

Sample Update Request 

{ 

  “PaymentDate”: “2019-09-30” 

} 

20 Vendor Invoice Export Document

Information 

Detail 

Detail 

GET https://base/api/vendorInvoiceExportDocuments(documentId) 

List 

GET https://base/api/vendorInvoiceExportDocuments  

Create 

POST https://base/api/vendorInvoiceExportDocuments 

 

Field 

Type 

Comments 

Id 

Integer 

 

DocumentDate 

Date 

 

DocumentNumber 

Text(100) 

 

ExportReferenceNumber 

Text(50) 

 

Invoices 

DocumentInvoice 

 

  DocumentInvoice.Id 

Integer 

Required 

  DocumentInvoice.VendorCode 

Text(50) 

 

  DocumentInvoice.ProjectCode 

Text(50) 

 

  DocumentInvoice.InvoiceNumber 

Text(255) 

 

  DocumentInvoice.ExportReferenceNumber 

Text(50) 

 

 

Sample Create Request 

{ 

  “ExportReferenceNumber”: “ABC”, 

  “Invoices”: [ 

    { 

      “Id”: 1, 

      “ExportReferenceNumber”: “DEF” 

    }, 

    { 

      “Id”: 2, 

      “ExportReferenceNumber”: “DEF2” 

    }, 

    { 

      “Id”: 3, 

      “ExportReferenceNumber”: “DEF3” 

    }, 

    { 

      “Id”: 4 

    }, 

    { 

      “Id”: 5, 

      “ExportReferenceNumber”: “DEF5” 

} 

  ] 

} 

21 Purchase Order

Information 

Detail 

Detail (All Revisions) 

GET https://base/api/purchaseOrders(purchaseOrderId) 

Detail (For Revision) 

GET https://base/api/purchaseOrders(purchaseOrderId.revisionNumber) 

List 

GET https://base/api/purchaseOrders 

 

 

 

Field 

Type 

Comments 

Id 

Integer 

 

VendorCode 

Text(50) 

 

CustomerCode 

Text(50) 

 

ProjectCode 

Text(50) 

 

CurrencyCode 

Text(50) 

 

PurchaseOrderNumber 

Text(90) 

 

PurchaseOrderDate 

Date 

“YYYY-MM-DD” 

Revisions 

PurchaseOrderRevision 

 

  PurchaseOrderRevision.RevisionNumber 

Integer 

 

  PurchaseOrderRevision.RevisionDate 

Date 

“YYYY-MM-DD” 

  PurchaseOrderRevision.TotalCost 

Decimal 

 

  PurchaseOrderRevision.AdvancePaymentPercent 

Decimal 

  PurchaseOrderRevision.RevisionDate 

  PurchaseOrderRevision.AdvancePaymentAmount 

Decimal 

 

  PurchaseOrderRevision.Taxes 

TaxReference 

 

    TaxReference.Id 

Integer 

 

    TaxReference.TaxName 

Text(50) 

 

    TaxReference.TaxCode 

Text(50) 

 

    TaxReference.TaxRate 

Decimal 

 

  PurchaseOrderRevision.Details 

PurchaseOrderRevisionDetail 

 

    PurchaseOrderRevisionDetail.LineNumber 

Integer 

 

    PurchaseOrderRevisionDetail.ResourceName 

Text(350) 

 

    PurchaseOrderRevisionDetail.ResourceCode 

Text(50) 

 

    PurchaseOrderRevisionDetail.ItemDescription 

Text(350) 

 

    PurchaseOrderRevisionDetail.ResourceClassName 

Text(350) 

 

    PurchaseOrderRevisionDetail.ResourceClassCategoryName 

Text(50) 

 

    PurchaseOrderRevisionDetail.CostCode 

Text(350) 

 

    PurchaseOrderRevisionDetail.AccountingCode 

Text(150) 

 

    PurchaseOrderRevisionDetail.Quantity 

Decimal 

 

    PurchaseOrderRevisionDetail.TotalCost 

Decimal 

 

 

Sample Detail Response 

{ 

  “PurchaseOrderId”: 133, 

  “VendorCode”: “VENDOR_CODE”, 

  “CustomerCode”: “CUSTOMER_CODE”, 

  “ProjectCode”: “PROJECT_CODE”, 

  “CurrencyCode”: “USD”, 

  “PurchaseOrderNumber”: “136”, 

  “PurchaseOrderDate”: “2018-04-13”, 

  “Revisions”: [ 

    { 

      “RevisionNumber”: 0, 

      “RevisionDate”: “2018-04-13”, 

      “Taxes”: [ 

        { 

          “Id”: 1, 

          “TaxName”: “GST”, 

          “TaxCode”: “GST”, 

          “TaxRate”: 0.05000 

        } 

      ] 

    } 

  ] 

}

22 Purchase Order Reciept

Information 

Detail 

Detail 

GET https://base/api/purchaseOrderReceipts(purchaseOrderReceiptId) 

List 

GET https://base/api/purchaseOrderReceipts 

 

For the List Operation a filter can be supplied for  

$filter=Submitted eq True 

$filter=Exported eq True 

 

Field 

Type 

Comments 

Id 

Integer 

 

ProjectID 

Integer 

 

ProjectCode 

Text(50) 

 

ReceiptNumber 

Text(255) 

 

ReceiptDate 

Date 

“YYYY-MM-DD” 

VendorCode 

Text(100) 

 

VendorName  

Text(100) 

 

Submitted 

Bool 

 

SubmittedOn 

DateTime 

“YYYY-MM-ddTHH:mm:ss” 

Exported 

Bool 

 

ExportedOn 

DateTime 

“YYYY-MM-ddTHH:mm:ss” 

Items 

PurchaseOrderReceiptItem 

 

  Item.LineNumber 

Integer  

 

  Item.PurchaseOrderNumber 

Text(90) 

 

  Item.ResourceCode 

Text(50) 

 

  Item.ResourceName 

Text(350) 

 

  Item.ItemDescription 

Text(350) 

 

  Item.ResourceClassName 

Text(350) 

 

  Item.ResourceClassCategoryName 

Text(50) 

 

  Item.CostCode 

Text(350) 

 

  Item.AccountingCode 

Text (150) 

 

  Item.Quantity 

Decimal 

 

  Item.TotalCost 

Decimal 

 

  Item.Holdback 

Bool 

 

  Item.HoldbackAmount 

Decimal 

 

  Item.HoldbackPercent 

Decimal 

 

  Item.CustomFields 

CustomField 

 

    CustomField.FieldCode 

Text(50) 

  PurchaseOrderRevision.RevisionDate 

    CustomField.FieldName 

Text(50) 

 

    CustomField.FieldValue 

Text(800) 

 

 

 

 

 

Sample Detail Response 

{ 

  “Id”: 1621, 

  “ReceiptNumber”: “Receipt 3.28”, 

  “ReceiptDate”: “2021-11-18”, 

  “Submitted”: null, 

  “SubmittedOn”: null, 

  “Exported”: null, 

  “ExportedOn”: null, 

  “Items”: [ 

    { 

      “LineNUmber”: 1, 

      “PurchaseOrderNumber”: “PO 3.28 with Closed Lines”, 

      “ResourceCode”: null, 

      “ResourceName”: “001 Service Resource Bilable ( No AC Override)”, 

      “Quantity”: 0.0, 

      “AmountReceived”: 0.0, 

      “CustomFields”: [] 

    }, 

    { 

      “LineNUmber”: 2, 

      “PurchaseOrderNumber”: “PO 3.28 with Closed Lines”, 

      “ResourceCode”: null, 

      “ResourceName”: “001 Service Resource Bilable ( No AC Override)”, 

      “Quantity”: 10.00000, 

      “AmountReceived”: 2000.0000, 

      “CustomFields”: [ 

        { 

          “FieldCode”: “”, 

          “FieldName”: “98 Text Portal (E)”, 

          “FieldValue”: “ABC” 

        } 

      ] 

    } 

  ] 

}

23 Purchase Order Receipt Export Document

Information 

Detail 

List 

GET https://base/api/purchaseOrderReceiptExportDocuments  

Create 

POST https://base/api/purchaseOrderReceiptExportDocuments  

 

Field 

Type 

Comments 

Id 

Integer 

 

DocumentDate 

Date 

 

DocumentNumber 

Text(100) 

 

Receipts 

DocumentInvoice 

 

  Receipt.ReceiptId 

Integer 

Required 

  Receipt.ReceiptNumber 

Text(50) 

 

 

Sample Create Request 

{ 

  “ Receipts “: [ 

    { 

      “ReceiptId”: 1 

    }, 

    { 

      “ReceiptId”: 2 

    } 

  ] 

} 

24 JSON Types

Information 

Detail 

Bool 

true or false 

Date 

yyyy-MM-dd 

DateTime 

yyyy-MM-ddTHH:mm:ss 

Need Customer Support? We're Here To Help

Our 4castplus customer support team is ready to assist you with any questions or issues, ensuring you get the most out of our software.

Request A Personalized Live Demo

Experience a personalized live walkthrough of 4castplus and discover how our software can benefit your company. Let us know what you’re most interested in or what issues you are currently facing with your project management software. 

Speak With A Member Of Our Team

No other software offers such a comprehensive suite of project management and procurement tools. Schedule a meeting with a member of our team and see what 4castplus can do.