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

September

  • Defect fix re: The Actual Cost values should include Project Cost Taxes in the Custom Templated WBS(Cost) report. (Sept 4)
  • Defect fix re: Whoops alert when running the Global Templated Report for All Procurement Items when using “AS OF.” (Sept 4)
  • Added Fields to All Procurement Item data sets (Project & Global) (Sept 4)
    • Buyer (RFQ)
    • Engineer (RFQ)
    • RFQ Bidders

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. 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

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

        }

      ]

    }

  ]

}

7. 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

    }

  ]

}

8. 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”: []

}

9. 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”

        }

  ]

}

10. 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

    }

  ]

11. 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”

        }

  ]

}

12. 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” }

13. Timesheet 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

    }

]

14. 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”

    }

  ]

}

15. 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.Propert

 

  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

PurchaseOrderReferen

 

    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)”

          }

        }

      }

    }

  ] }

16. 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,

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” }

17. 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”

        }

  ]

}

18. 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.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

        }

      ]

    }

  ] }

19. Purchase Order Receipt

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”

        }

      ]

    }

  ]

}

20. 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.