Skip to content

Introduction

Aimsio provides a set of API endpoints and supported actions to facilitate communication with external software platforms / ERPs.

Each Aimsio account can access two server options: sandbox and portal

  • sandbox is the test environment we used to implement and test configuration changes for an account before live deployment.

  • portal is the live environment where accounts store their live transactions

Authentication

Our API utilizes basic username and password authentication to access the API.

If you already have an Admin username set up for your account inside Aimsio, this can be used for API authentication. However, the best practice would be to set up a separate user for integration purposes and keep this set of credentials private only to the developer.

Aimsio users also require specific permissions to access our API. Please contact our support/integration team so they can enable the required permissions.

Throughput limitation

We currently limit API calls after calls exceed more than 10 calls per second. If our API receives too many requests (ie: if the queue takes longer than 5 seconds to return the call), the request will timeout.

Up to 10 parallel calls are permitted. We do not limit the number of sequential calls. If your organization requires more headroom to complete calls to our API, please get in touch with us.

Usage - Querying data

For most entities with GET requests supported, there are two endpoints we supported:

  • GET all objects of that type

  • GET one speficic object based on its unique identifier (GUID/Id)

When you send a GET all request, the system will return an JSON array, and each JSON contains the following properties:

  • dtype: The object type

  • guid/id: Unique identifier of the object, generated by the Aimsio system

  • updatedAt: Object's last update timestamp in epoch millseconds

Using the returned Guid or ID, you can then query each specific object from the GET single request.

Usage - Posting data

To upload data, please review the object properties and example requests for each POST endpoint.

For our Master Data endpoints, you can create/edit new entries into Aimsio system.

For some other endpoints like Invoice or Timecard, we don't allow POSTing new entries, but updating status of existing entries are supported.

Object types like NRBs or Crew/Equipment records are included in the JobOrder GET response, but have to be POSTed through their own endpoints.

  • Crew records: Employee endpoint

  • Equipment records: Equipment endpoint

  • NRB records: NRB endpoint

Download OpenAPI description
Languages
Servers
Mock server

https://api.aimsio.com/_mock/aimsio_api/

Sandbox

https://sandbox.aimsio.com/

Production

https://portal.aimsio.com/

Operations
Operations
Operations

Invoice

invoiceIdinteger
invoiceNumberstring
invoiceDateintegerread-only

Timestamp in epoch milliseconds

invoiceTypeUnamestringread-only
invoiceClientGuidstringread-only
invoiceClientCodestringread-only
invoiceClientNamestringread-only
invoiceBilledTostringread-only
invoiceStatusstringread-only
invoiceCustomStatusstring
invoicePrivateNotestringread-only
invoiceRetainagePercentstringread-only
invoiceRetainageAmountstringread-only
invoiceDiscountPercentstringread-only
invoiceDiscountAmountstringread-only
invoiceIsPercentBasedDiscountbooleanread-only
invoiceTaxstringread-only
invoiceSubTotalstringread-only
invoiceTotalstringread-only
invoiceJobOrderGuidstringread-only
invoiceCreatedAtintegerread-only

Timestamp in epoch milliseconds

invoiceCreatedByUserNamestringread-only
invoiceCreatedByFullNamestringread-only
invoiceUpdatedAtintegerread-only

Timestamp in epoch milliseconds

invoiceLastModifiedByUserNamestringread-only
invoiceLastModifiedByFullNamestringread-only
invoicableRecordsArray of objects(InvoicableRecord)read-only
invoiceFormDataobject(Additional Form Data (attached to objects))

Read-only schema used in GET requests to display object's custom fields data. For POST requests, refer to CustomFieldDataList

customFieldDataListArray of objects(CustomFieldData)
{ "invoiceId": 0, "invoiceNumber": "string", "invoiceDate": 0, "invoiceTypeUname": "string", "invoiceClientGuid": "string", "invoiceClientCode": "string", "invoiceClientName": "string", "invoiceBilledTo": "string", "invoiceStatus": "string", "invoiceCustomStatus": "string", "invoicePrivateNote": "string", "invoiceRetainagePercent": "string", "invoiceRetainageAmount": "string", "invoiceDiscountPercent": "string", "invoiceDiscountAmount": "string", "invoiceIsPercentBasedDiscount": true, "invoiceTax": "string", "invoiceSubTotal": "string", "invoiceTotal": "string", "invoiceJobOrderGuid": "string", "invoiceCreatedAt": 0, "invoiceCreatedByUserName": "string", "invoiceCreatedByFullName": "string", "invoiceUpdatedAt": 0, "invoiceLastModifiedByUserName": "string", "invoiceLastModifiedByFullName": "string", "invoicableRecords": [ { … } ], "invoiceFormData": { "formDataFormTypeUname": "string", "formDataGuid": "string", "formDataFieldDataList": [ … ] }, "customFieldDataList": [ { … } ] }

InvoicableRecord

invoicableRecordDTypestring
invoicableRecordGuidstring
invoicableDescstring

Invoice line item description

invoicableRecordNotesstring
invoicableRecordRatestring
invoicableRecordQuantitystring
invoicableRecordUofMstring
invoicableRecordTotalstring
invoicableDateinteger
invoicableDate2integer
invoicableDate3integer
invoicableRecordLineItemOrderinteger
invoicableRecordStr1string
invoicableRecordStr2string

Invoice line item name

invoicableRecordStr3string

Invoice line item category

invoicableRecordStr4string
invoicableRecordStr5string
invoicableRecordStr6string
invoicableRecordStr7string
invoicableRecordStr8string
invoicableRecordStr9string
invoicableRecordStr10string
invoicableRecordStr11string
invoicableRecordStr12string
invoicableRecordStr13string
invoicableRecordStr14string
invoicableRecordStr15string
invoicableRecordDecimal1number
invoicableRecordDecimal2number
invoicableRecordDecimal3number
invoicableGLAccountstring
invoicableRecordTaxListArray of objects
invoicableRecordTaxstring
invoicableRecordTaxNamestring

Legacy tax name property

invoicableRecordSalesTaxGuidstring
invoicableRecordSalesTaxNamestring

Tax Name

invoicableRecordSalesTaxExternalIdstring
invoicableRecordFormDataGuidstring
invoicableRecordFormDataIdinteger
invoicableRecordBillableItemGuidstring
invoicableRecordOriginReferencestring
invoicableRecordWBSGuidstring
{ "invoicableRecordDType": "string", "invoicableRecordGuid": "string", "invoicableDesc": "string", "invoicableRecordNotes": "string", "invoicableRecordRate": "string", "invoicableRecordQuantity": "string", "invoicableRecordUofM": "string", "invoicableRecordTotal": "string", "invoicableDate": 0, "invoicableDate2": 0, "invoicableDate3": 0, "invoicableRecordLineItemOrder": 0, "invoicableRecordStr1": "string", "invoicableRecordStr2": "string", "invoicableRecordStr3": "string", "invoicableRecordStr4": "string", "invoicableRecordStr5": "string", "invoicableRecordStr6": "string", "invoicableRecordStr7": "string", "invoicableRecordStr8": "string", "invoicableRecordStr9": "string", "invoicableRecordStr10": "string", "invoicableRecordStr11": "string", "invoicableRecordStr12": "string", "invoicableRecordStr13": "string", "invoicableRecordStr14": "string", "invoicableRecordStr15": "string", "invoicableRecordDecimal1": 0, "invoicableRecordDecimal2": 0, "invoicableRecordDecimal3": 0, "invoicableGLAccount": "string", "invoicableRecordTaxList": [ {} ], "invoicableRecordTax": "string", "invoicableRecordTaxName": "string", "invoicableRecordSalesTaxGuid": "string", "invoicableRecordSalesTaxName": "string", "invoicableRecordSalesTaxExternalId": "string", "invoicableRecordFormDataGuid": "string", "invoicableRecordFormDataId": 0, "invoicableRecordBillableItemGuid": "string", "invoicableRecordOriginReference": "string", "invoicableRecordWBSGuid": "string" }

Timecard

timeCardGuidstring
timeCardRecordDateinteger
timeCardEmployeeGuidstring
timeCardEmployeeCodestring
timeCardEmploymentTypestring
timeCardWorkTradeCodestring
timeCardPayTypestring
timeCardUnionCodestring
timeCardTimeZonestring
timeCardDescriptionstring
timeCardEmployeeRegularHoursstring
timeCardRatestring
timeCardRTAmountstring
timeCardEmployeeOverTimeHoursstring
timeCardRateOverTimestring
timeCardOTAmountstring
timeCardEmployeeDoubleTimeHoursstring
timeCardRateDoubleTimestring
timeCardDTAmountnumber
timeCardEmployeeTravelTimeHoursnumber
timeCardSTAmountnumber
timeCardPayCodestring
timeCardQuantitynumber
timeCardAmountnumber
timeCardAmountWithBurdennumber
timeCardJobGuidstring
timeCardJobNumberstring
timeCardPhaseGuidstring
timeCardPhaseCodestring
timeCardEquipmentGuidstring
timeCardEquipmentCodestring
timeCardPayrollPeriodGuidstring
timeCardPayrollPeriodNamestring
timeCardPayrollPeriodStartnumber
timeCardPayrollPeriodEndnumber
timeCardPayrollPeriodStatusany
timeCardStandardEarningDeductionTypestring
timeCardCreatedAtinteger
timeCardFormDataGuidstring
timeCardFormDataNostring
timeCardRowFormDataGuidstring
timeCardFieldTicketGuidstring
timeCardOriginReferencestring
timeCardShouldUpdateHoursBreakdownboolean
timeCardCompanyCodestring
timeCardEclipseCompanystring
timeCardIsExportedToIntegrationboolean
timeCardIsDeletedboolean
timeCardIsBillableboolean
{ "timeCardGuid": "string", "timeCardRecordDate": 0, "timeCardEmployeeGuid": "string", "timeCardEmployeeCode": "string", "timeCardEmploymentType": "string", "timeCardWorkTradeCode": "string", "timeCardPayType": "string", "timeCardUnionCode": "string", "timeCardTimeZone": "string", "timeCardDescription": "string", "timeCardEmployeeRegularHours": "string", "timeCardRate": "string", "timeCardRTAmount": "string", "timeCardEmployeeOverTimeHours": "string", "timeCardRateOverTime": "string", "timeCardOTAmount": "string", "timeCardEmployeeDoubleTimeHours": "string", "timeCardRateDoubleTime": "string", "timeCardDTAmount": 0, "timeCardEmployeeTravelTimeHours": 0, "timeCardSTAmount": 0, "timeCardPayCode": "string", "timeCardQuantity": 0, "timeCardAmount": 0, "timeCardAmountWithBurden": 0, "timeCardJobGuid": "string", "timeCardJobNumber": "string", "timeCardPhaseGuid": "string", "timeCardPhaseCode": "string", "timeCardEquipmentGuid": "string", "timeCardEquipmentCode": "string", "timeCardPayrollPeriodGuid": "string", "timeCardPayrollPeriodName": "string", "timeCardPayrollPeriodStart": 0, "timeCardPayrollPeriodEnd": 0, "timeCardPayrollPeriodStatus": null, "timeCardStandardEarningDeductionType": "string", "timeCardCreatedAt": 0, "timeCardFormDataGuid": "string", "timeCardFormDataNo": "string", "timeCardRowFormDataGuid": "string", "timeCardFieldTicketGuid": "string", "timeCardOriginReference": "string", "timeCardShouldUpdateHoursBreakdown": true, "timeCardCompanyCode": "string", "timeCardEclipseCompany": "string", "timeCardIsExportedToIntegration": true, "timeCardIsDeleted": true, "timeCardIsBillable": true }
Operations