NAV
Release 1.4

Helm CONNECT API Documentation


API Overview

Helm CONNECT exposes a public API for end users so they can access their data and extend application functionality. The API is a RESTful architecture, which has web resources identified by Uniform Resource Identifiers (URIs). The API endpoints are accessed with standard HTTP communication and verbs. Data returned from the API is in JSON format.

API Authorization

All API HTTP requests must have the following headers attached

API-Key: <key>,
Content-Type: application/json

The key comes from the API key management section of the Users App.

Transaction API Endpoints

Transaction Counts by Division

URI

api/v1/jobs/transactions/TransactionCountsByDivision

Supported Verbs

Required Parameters

Optional Parameters

Return Value

With no results

  {
    "Data":
    {
      "DivisionCounts": []
    }
  }

With results

  {
    "Data":
    {
      "DivisionCounts": <Array>
      [
        "DivisionId": <GUID>,
        "TransactionCount": <integer>
      ]
    }
  }

Set Posted

URI

api/v1/jobs/Transactions/SetPosted

Supported Verbs

Required Parameters

Data Model

model

  {
    "Assignments": <Array>
    [
      {
        "TransactionId": <GUID>,
        "PostedDate": <date>
        "ExternalTransactionNumber": <string>
      },
      ....
    ]
  }

Example

  api/v1/Jobs/Transactions/SetPosted
  {
    "Assignments":
    [
      {
        "TransactionId":"e0adc10c-e0d6-11e5-829b-b8ca3ad26410",
        "PostedDate": "2016-03-10T12:39:31-08:00"
      },
      {
        "TransactionId":"e0adc10d-e0d6-11e5-829b-b8ca3ad26410",
        "PostedDate": "2016-03-10T12:39:31-08:00"
      },
      ....
    ]
  }

Return Value

Details

URI

api/v1/jobs/Transactions/Details

Supported Verbs

Required Parameters

Optional Parameters

Return Value

With no results

  {
    "Data":
    {
      "TotalCount": 0,
      "Page": [ ]
    }
  }

With Results

  {
    "Data":
    {
      "TotalCount": <integer>,
      "Page": <Array>
      [
        {
          "Id": <GUID>,
          "ParentTransactionId": <GUID>,
          "ReversedTransactionId": <GUID>,
          "OriginalTransactionId": <GUID>,
          "GroupId": <GUID>,
          "TransactionNumber": <string>,
          "TransactionDate": <date>,
          "DivisionName": <string>,
          "DivisionShortName": <string>,
          "DivisionAccountingCode": <string>,
          "AccountName": <string>,
          "AccountNumber": <string>,
          "CompanyName": <string>,
          "CompanyShortName": <string>,
          "IsAR": <boolean>,
          "IsAP": <boolean>,
          "IsInvoice": <boolean>,
          "Area":
          {
            "Name": <string>,
            "ShortName": <string>,
            "ExternalSystemCode": <string>
          },
          "Order":
          {
              "OrderNumber": <string>,
              "ShipName": <string>,
              "CustomerAccount": <string>,
              "CustomerPONumber": <string>,
              "VoyageNumber": <string>,
              "AgentAccountName": <string>,
              "AgentAccountNumber": <string>,
              "Trips": <Array>
              [
                {
                  "StartDate": <date>,
                  "EndDate": <date>                        
                }
              ]
           }
        },
        "TransactionType":
        {
            "Id": <GUID>,
            "Name": <string>
        },
        "TransactionLines": <Array>
        [
          {
            "Id": <GUID>,
            "Rate": <decimal>,
            "Quantity": <decimal>,
            "Amount": <decimal>,
            "DetailDescription": <string>,
            "RevenueAllocations": <Array>
            [
              {
                "Id": <GUID>,
                "ReferenceTransactionLineId": <GUID>,
                "Debit": <decimal>,
                "Credit": <decimal>,
                "DivisionId": <GUID>,
                "AccountingCodes": <Array>
                [
                  {
                    "Id": <GUID>,
                    "AccountingCode": <string>,
                    "EntityName": <string>,
                    "ReferenceType": <string>
                  }
                ]
              }
            ]   
          }
        ]
      ]
    }
  }

Order API Endpoints

Create Order

URI

api/v1/jobs/orders/CreateOrder

Supported Verbs

Required Parameters

Optional Parameters

Data Model

Order Model

  {
    "Division":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "Area":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "Ship":
    {
      "Id": <GUID>,
      "ShipTypeId": <GUID>,
      "Name": <string>,
      "IMONumber": <string>,
      "MMSI": <string>,
      "Nation": <string>,
      "CallSign": <string>,
      "Height": <decimal>,
      "Deadweight": <decimal>,
      "GT": <decimal>,
      "LOA": <decimal>,
      "Beam": <decimal>,
      "TEU": <decimal>,
      "NT": <decimal>,
      "UserDefined": 
      {
        "UDF1": <string>,
        "UDF2": <string>,
        ....
      }
    },
    "CustomerAccount":
    {
      "Id": <GUID>,
      "Name": <string>,
      "AccountNumber": <string>
    },
    "AgentAccount":
    {
      "Id": <GUID>,
      "Name": <string>,
      "AccountNumber": <string>,
    },
    "AwardedToAccount":
    {
      "Id": <GUID>,
      "Name": <string>,
      "AccountNumber": <string>,
    },
    "OrderDate": <date>,
    "CustomerPONumber": <string>,
    "VoyageNumber": <string>,
    "IsBillable": <boolean>,
    "UserDefined":
    {
      <string>:<string>,
      ....
    },
    "Trips": <Array>
    [
      <TripModel>,
      ....
    ]
  }

Trip Model

  {
    "TripType":
    {
      "Id": <GUID>,
      "Name": <string>
    },
    "FromLocation":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "ToLocation":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "Status": <string>,
    "RequestedDate": <date>,
    "StartDate": <date>,
    "EndDate": <date>,
    "IsRequestedDateFirm": <boolean>,
    "EstimatedDuration": <decimal>,
    "NumberRequiredResources": <integer>,
    "UserDefined": 
    {
      <string>:<string>,
      ....
    },
    "Jobs": <Array>
    [
      <JobModel>,
      ....
    ] 
  }

Job Model

  {
    "RequiredResourceType":
    {
      "Id": <GUID>,
      "Name": <string>
    },
    "StartDate": <date>,
    "EndDate": <date>,
    "PlannedStartDate": <date>,
    "PlannedEndDate": <date>,
    "UserDefined":
    {
      <string>:<string>,
      ....
    }
  }

Order Object Fields

Trip Object Fields

Job Object Fields

Return Value

With no results

  {
    "LogMessages": <Array>
    [
      {
        "Message": <string>,
        "Entity": <string>
      },
      ....
    ]
  }

With results

  {
    "OrderId": <GUID>,
    "NewShipId": <GUID>,
    "LogMessages": <Array>
    [
      {
         "Message": <string>,
         "Entity": <string>
      },
      ....
    ]
  }

Update Order

URI

api/v1/jobs/orders/UpdateOrder

Supported Verbs

Note

Required Parameters

Data Model

In the above model, the Order is being updated (Id is supplied). The first Trip is being updated (Id is supplied). The second Trip (which has no Id given), is being inserted for this Order.

Return Value

Find Orders

URI

api/v1/jobs/orders/FindOrders

Supported Verbs

Required Parameters

Optional Parameters

Return Value

With no results

  {
    "Data":
    {
      "TotalCount": 0,
      "Page": []
    }
  }

With results

  {
  "Data":
  {
    "TotalCount": <integer>,
    "Page": <Array>
    [
      {
        "Id": <GUID>
        "OrderNumber": <string>
        "CustomerPONumber": <string>,
        "VoyageNumber": <string>,
        "OrderDate": <date>,
        "IsRequest": <boolean>,
        "UserDefined":
        {
          "UDF1": <string>,
          "UDF2": <string>,
          ....
        },
        "Division":
        {
          "Id": <GUID>,
          "Name": <string>,
          "ExternalSystemCode": <string>
        },
        "Ship":
        {
          "Id": <GUID>,
          "Name": <string>,
          "IMONumber": <string>,  
        },
        "CustomerAccount":
        {
          "Id": <GUID>,
          "Name": <string>,
          "AccountNumber": <string>
        },
        "AgentAccount":
        {
          "Id": <GUID>,
          "Name": <string>,
          "AccountNumber": <string>,
        },
        "AwardedToAccount":
        {
          "Id": <GUID>,
          "Name": <string>,
          "AccountNumber": <string>,
        },
        "Trips": <Array>
        [
          {
            "Id": <GUID>,
            "OrderId": <GUID>,
            "TripNumber": <string>,
            "StartDate": <date>,
            "EndDate": <date>,
            "RequestedDate": <date>,
            "EstimatedDuration": <decimal>,
            "Status": <string>,
            "IsRequest": <boolean>,
            "OriginalTripId": <GUID>,
            "UserDefined":
            {
              "UDF1": <string>,
              "UDF2": <string>,
              ....
            },
            "TripType":
            {
              "Id": <GUID>,
              "Name": <string>
            },
            "FromLocation":
            {
              "Id": <GUID>,
              "Name": <string>,
              "ExternalSystemCode": <string>,
            },
            "ToLocation":
            {
              "Id": <GUID>,
              "Name": <string>
              "ExternalSystemCode": <string>,
            }
          },
          ....
        ]
      },
      ....
    ]
  }

Trip API Endpoints

Create Trip

URI

api/v1/jobs/trips/CreateTrip

Supported Verbs

Required Parameters

Data Model

Trip Model

  {
    "Order":
    {
      "Id": <GUID>,
      "OrderNumber": <string>,
    },
    "TripType":
    {
      "Id": <GUID>,
      "Name": <string>
    },
    "FromLocation":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "ToLocation":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "Status": <string>,
    "RequestedDate": <date>,
    "StartDate": <date>,
    "EndDate": <date>,
    "IsRequestedDateFirm": <boolean>,
    "EstimatedDuration": <decimal>,
    "NumberRequiredResources": <int>,
    "UserDefined":
    {
      "UDF1": <string>,
      "UDF2": <string>,
      ....
    },
    "Jobs": <Array>
    [
      <JobModel>,
      ....
    ] 
  }

Job Model

  {
    "RequiredResourceType":
    {
      "Id": <GUID>,
      "Name": <string>
    },
    "StartDate": <date>,
    "EndDate": <date>,
    "PlannedStartDate": <date>,
    "PlannedEndDate": <date>,
    "UserDefined": 
    {
      "UDF1": <string>,
      "UDF2": <string>,
      ....
    }
  }

Trip Object Fields

Job Object Fields

Return Value

With no results

  {
    "LogMessages": <Array>
    [
      {
        "Message": <string>,
        "Entity": <string>
      },
      ....
    ]
  }

With results

  {
    "TripId": <GUID>
    "LogMessages": <Array>
    [
      {
        "Message": <string>,
        "Entity": <string>
      },
      ....
    ]
  }

Update Trip

URI

api/v1/jobs/trips/UpdateTrip

Supported Verbs

Required Parameters

Data Model

Trip Model

  {
    "Id": <GUID>,
    "TripType":
    {
      "Id": <GUID>,
      "Name": <string>
    },
    "FromLocation":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "ToLocation":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "Status": <string>,
    "RequestedDate": <date>,
    "StartDate": <date>,
    "EndDate": <date>,
    "IsRequestedDateFirm": <boolean>,
    "EstimatedDuration": <decimal>,
    "NumberRequiredResources": <int>,
    "UserDefined":
    {
      "UDF1": <string>,
      "UDF2": <string>,
      ....
    },
    "Jobs": <Array>
    [
      <JobModel>,
      ....
    ] 
  }

Job Model

  {
    "Id": <GUID>,
    "RequiredResourceType":
    {
      "Id": <GUID>,
      "Name": <string>
    },
    "StartDate": <date>,
    "EndDate": <date>,
    "PlannedStartDate": <date>,
    "PlannedEndDate": <date>,
    "UserDefined": 
    {
      "UDF1": <string>,
      "UDF2": <string>,
      ....
    }
  }

Trip Object Fields

Job Object Fields

Return Value

With no results

  {
    "LogMessages": <Array>
    [
      {
        "Message": <string>,
        "Entity": <string>
      },
      ....
    ]
  }

With results

  {
    "TripId": <GUID>
    "LogMessages": <Array>
    [
      {
        "Message": <string>,
        "Entity": <string>
      },
      ....
    ]
  }

Company API Endpoints

Create/Update Company

URI

api/v1/jobs/companies/CreateOrUpdateCompany

Supported Verbs

Required Parameters

Data Model

Company Model

[
  {
    "Id": <GUID>,
    "Name": <string>,
    "ShortName": <string>,
    "ExternalSystemCode": <string>,
    "IsMyCompany": <boolean>,
    "IsActive": <boolean>,
    "UserDefined":
    {
      "UDF1": <string>,
      "UDF2": <string>,
      ....
    }
  },
  ....
]

Company Object Fields

Return Value

With errors

  {
    "Name": <string>,
    "Errors":
    [
      {
        "Message": <string>,
        "Entity": <string>
      },
      ....
    ]
  }

Without errors

  {
    "Created": <Integer>,
    "Updated": <Integer>
  }

Create/Update Account

URI

api/v1/jobs/companies/CreateOrUpdateCompanyAccount

Supported Verbs

Required Parameters

Optional Parameters

Data Model

Account Model

  [
    {
      "Id": <GUID>,
      "Name": <string>,
      "Company": 
      {
        "Id": <GUID>,
        "Name": <string>,
        "ShortName": <string>,
        "ExternalSystemCode": <string>,
        "IsMyCompany": <boolean>,
        "IsActive": <boolean>,
        "UserDefined":
        {
          "UDF1": <string>,
          "UDF2": <string>,
          ....
        }
      },
      "Division":
      {
        "Id": <GUID>,
        "Name": <string>,
        "ExternalSystemCode": <string>
      },
      "AccountNumber": <string>,
      "AccountType": <string>,
      "IsAR": <boolean>,
      "IsAP": <boolean>,
      "IsBlocked": <boolean>,
      "IsActive": <boolean>
    },
    ....
  ]

Account Object Fields

Return Value

With errors

  {
    "Name": <Array>
    "Errors":
    [
      {
        "Entity": <string>
      },
      ....
    ]
  }

Without errors

  {
    "Created": <Integer>,
    "Updated": <Integer>,
    "CompanyCreated": <Integer>
  }

Create/Update Account Address

URI

api/v1/jobs/companies/CreateOrUpdateAccountAddress

Supported Verbs

Required Parameters

Data Model

Account Address Model

  [
    {
      "Id": <GUID>,
      "Account":
      {
        "Id": <GUID>,
        "Name": <string>,
        "AccountNumber": <string>
      },
      "Name": <string>,
      "Address": <string>,
      "City": <string>,
      "ZipCode": <string>,
      "State": <string>,
      "Country": <string>,
      "Email": <string>,
      "Areas":
      [
        {
          "Id": <GUID>,
          "Name": <string>,
          "ExternalSystemCode": <string>
        },
        ....
      ]
    },
    ....
  ]

Account Address Object Fields

Return Value

With errors

  {
    "Name": <Array>
    "Errors":
    [
      {
        "Entity": <string>
      },
      ....
    ]
  }

Without errors

  {
  "Created": <Integer>,
  "Updated": <Integer>
  }

Find Companies

URI

api/v1/jobs/companies/FindCompanies

Supported Verbs

Required Parameters

Optional Parameters

Return Value

With no results

  {
    "Data":
    {
      "TotalCount": 0,
      "Page": []
    }
  }

With results

  {
    "Data":
    {
      "TotalCount": <integer>,
      "Page": <Array>
      [
        {
          "Id": <GUID>,
          "Name": <string>,
          "ShortName": <string>,
          "ExternalSystemCode": <string>,
          "IsMyCompany": <boolean>,
          "IsActive": <boolean>,
          "UserDefined":
          {
            "UDF1": <string>,
            "UDF2": <string>,
            ....
          },
          "Accounts": <Array>
          [
            {
              "Id": <GUID>,
              "Name": <string>,
              "Division":
              {
                "Id": <GUID>,
                "Name": <string>,
                "ExternalSystemCode": <string>
              },
              "AccountNumber": <string>,
              "AccountType": <string>,
              "IsAR": <boolean>,
              "IsAP": <boolean>,
              "IsBlocked": <boolean>,
              "IsActive": <boolean>,
              "Addresses": <Array>
              [
                {
                  "Id": <GUID>,
                  "Name": <string>,
                  "Address": <string>,
                  "City": <string>,
                  "ZipCode": <string>,
                  "State": <string>,
                  "Country": <string>,
                  "Email": <string>,
                  "Areas":
                  [
                    {
                      "Id": <GUID>,
                      "Name": <string>,
                      "ExternalSystemCode": <string>
                    },
                    ....
                  ]
                },
                ....
              ]
            },
            ....
          ]
        },
        ....
      ]
    }
  }

Ship API Endpoints

Create/Update Ship

URI

api/v1/jobs/ships/CreateOrUpdateShip

Supported Verbs

Required Parameters

Optional Parameters

Data Model

Ship Model

  {
    "Id": <GUID>,
    "Name": <string>,
    "MMSI": <string>,
    "IMONumber": <string>,
    "CallSign": <string>,
    "Nation": <string>,
    "ShipType": <string>,
    "Beam": <decimal>,
    "Deadweight": <decimal>,
    "GT": <decimal>,
    "Height": <decimal>,
    "NT": <decimal>,
    "Length": <decimal>,
    "LOA": <decimal>,
    "TEU": <decimal>,
    "UserDefined":
    {
      "UDF1": <string>,
      "UDF2": <string>,
      ....
    }
  }

Ship Object Fields

Return Value

Action Accepted

  Data:
  {
    "ActionType": <Array>
    "ErrorMsgs":
    [
      {
        "Entity": <string>
        "Message": <string>
      },
      ....
    ]
  }

Action Rejected

  "Data": <Array>

Note: ImoNumber, MMSI, CallSign are not required fields when updating. However, one of them needs to be present when inserting.


User API Endpoints

Create/Update User

URI

api/v1/jobs/users/CreateOrUpdateUser

Supported Verbs

Required Parameters

Data Model

User Model

  {
    "Id": <GUID>,
    "FirstName": <string>,
    "MiddleName": <string>,
    "Lastname": <string>,
    "Suffix": <string>,
    "LdapName": <string>,
    "Email": <string>,
    "EmployeeNumber": <string>,
    "CanLogIn": <boolean>,
    "CanLogInToBoat": <boolean>,
    "IsActiveEmployee": <boolean>,
    "Division":
    {
      "Id": <GUID>,
      "Name": <string>,
      "ExternalSystemCode": <string>,
    },
    "SecondaryDivisions":    
    [
      {
        "Id": <GUID>,
        "Name": <string>,
        "ExternalSystemCode": <string>,
      },
      ....
    ]    
    "Roles":
    [
      {
        "Id": <GUID>,
        "Name": <string>
      },
      ....
    ]    
    "Positions":
    [
      {
        "Id": <GUID>,
        "Name": <string>
      },
      ....
    ]    
    "Department":
    {
      "Id": <GUID>,
      "Name": <string>
    }
  }

User Object Fields

Return Value

Action Accepted

  Data:
  {
    "ActionType": <Array>
    "Id": <Guid>
    "ErrorMsgs":
    [
      {
        "Entity": <string>
        "Message": <string>
      },
      ....
    ]
  }

Action Rejected

  "Data": <Array>

Create/Update User Image

URI

api/v1/jobs/users/CreateOrUpdateUserImage

Supported Verbs

Required Parameters

Return Value

Action Accepted

  Data:
  {
    "ActionType": <Array>
  }

Action Rejected

  "Data": <Array>

Find Users

URI

api/v1/jobs/users/FindUsers

Supported Verbs

Required Parameters

Optional Parameters

Return Value

With no results

  {
    "Data":
    {
      "TotalCount": 0,
      "Page": []
    }
  }

With results

  {
    "Data":
    {
      "TotalCount": <integer>,
      "Page": <Array>
      [
        {
          "Id": <GUID>,
          "FirstName": <string>,
          "MiddleName": <string>,
          "Lastname": <string>,
          "Suffix": <string>,
          "LdapName": <string>,
          "Email": <string>,
          "EmployeeNumber": <string>,
          "CanLogIn": <boolean>,
          "CanLogInToBoat": <boolean>,
          "IsActiveEmployee": <boolean>,
          "Division":
          {
            "Id": <GUID>,
            "Name": <string>,
            "ExternalSystemCode": <string>
          },
          "SecondaryDivisions":    
          [
            {
              "Id": <GUID>,
              "Name": <string>,
              "ExternalSystemCode": <string>
            },
            ....
          ]    
          "Roles":
          [
            {
              "Id": <GUID>,
              "Name": <string>
            },
            ....
          ]    
          "Positions":
          [
            {
              "Id": <GUID>,
              "Name": <string>
            },
            ....
          ]    
          "Department":
          {
            "Id": <GUID>,
            "Name": <string>
          }
        },
        ....
      ]
    }
  }