Introduction
The PortPro API enables easy information flows between PortPro and your internal supply chain systems — including your company’s ERP or WMS — to save time, reduce errors, and improve decision-making across your supply chain.
Here, you have access to our growing collection of Public APIs to gather data throughout the invoices, loads, load status, customers, ports, consignee and drivers.
The PortPro API enables you to programmatically interact with PortPro's freight data. The API follows modern RESTful conventions and speaks JSON in both directions. As the API uses JSON for both requests and responses, we will assume that requests with a payload are using properly formatted JSON, however, we still recommend setting the Content-Type header to the value application/json.
API Environments
Production
The PortPro Production APIs provides standards for how software programs communicate with each other.PortPro API enables you to programmatically interact with PortPro's freight data.
HTTP Endpoint
https://api1.app.portpro.io/v1
Setup APIs into Postman
Already using Postman? Simply download a PortPro Public APIs collection and set up your testing environment. If you need testing tools, Postman may be a great option - and we’ve got everything you need to get up and running.
Steps for Setup
Please follow the steps below to being setting up API's in Postman.
Step 1: Get Postman
Download and install Postman.
Step 2: Get a Postman collection
Download the Postman collections. Collections give you sets of pre-built requests to test with.
Step 3: Configure your testing environment in Postman
Click here for download environment postman collection.
Enter the following in each field as needed:
Data field | Description |
---|---|
token | Access Token from portpro developer setting |
baseUrl | https://api1.app.portpro.io/v1 |
Authentication
To authorize, use this method:
{
"Authorization" : "Bearer <Your Access Token>"
}
Make sure to replace
<Your Access Token>
with your Access Token.
The PortPro API uses two types of API tokens for authenticating requests: access tokens and refresh tokens. These tokens can be manually generated through our PortPro Developer Portal, which offers a comprehensive interface for managing API access and token lifecycle.
Only one refresh token can be active at a time; generating a new refresh token will automatically invalidate the previous one. In contrast, multiple access tokens can be active simultaneously.
For security, please keep your API tokens private and secure, as they grant extensive API access. Do not expose your secret API tokens in public locations like GitHub, client-side code, and other open environments.
Please note that only super admin accounts ("carrier" accounts) have permission to generate new tokens. Non-super admin accounts like fleet managers, CSRs, and standard admin accounts do not have permission to generate new tokens.
Once you have generated your first API tokens in the PortPro Developer Portal, you are ready to proceed with setting up your API integration.
Making requests
PortPro API requires an access token to be included in the Authorization
header of all API requests. The header should follow this format:
Authorization: Bearer <Your Access Token>
Content type of request payload should be application/json.
Content-Type: application/json
Retrieve access token and refresh token
200 OK
{
"_object": "/api/response",
"self": "/v1/retrieve-token",
"version": "1.0.0",
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJyaWVyIjoiNjI3MjE4ZDk5hNDWNkN2E3MzRiIiwidXNlciI6IjYyNzIxOGQ5OTViYTQ5MTVjZDdhNzM0YiIsImlhdCI6MTY1MTY2MDMwMSwiZXhwIjoxNjUxNjcxMTAxfQ.KtMQQ3LZPfLL72wmKVJgbFvBb3ct0LwgDHDar1xSA-s",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJyaWVyIjo3MjE4ZDk5NNkN2E3MzRiIiwidXNlciI6IjYyNzIxOGQ5OTViYTQ5MTVjZDdhNzM0YiIsImlhdCI6MTY1MTY2MDMwMSwiZXhwIjoxNjYwMzAwMzAxfQ.E0hcNHVyIyOyv7DJ_m9Fd2zN7LT-wUSJmPowz0NJJQk",
"tokenType": "public"
},
"error": null
}
To retrieve your current access and refresh tokens, use the following endpoint. This endpoint always returns a valid access and refresh token. If either the access token or refresh token has expired, the endpoint will automatically generate and return a new one.
HTTP Request
POST https://api1.app.portpro.io/v1/retrieve-token
Request Body Parameters
Parameter | Type | Description |
---|---|---|
clientId* | string | Client ID which is provided by support team. |
clientSecret* | string | Client Secret which is provided by support team. |
Generate new access token and refresh token
200 OK
{
"_object": "/api/response",
"self": "/v1/generate-new-token",
"version": "1.0.0",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJyaWVyIjoiNjI3MjE4ZDk5hNDkxNWNkN2E3MzRiIiwidXNlciI6IjYyNzIxOGQ5OTViYTQ5MTVjZDdhNzM0YiIsImlhdCI6MTY1MTY2MDMwMSwiZXhwIjoxNjUxNjcxMTAxfQ.KtMQQ3LZPfLL72wmKVJgbFvBb3ct0LwgDHDar1xSA-s",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJyaWVyIjoiNjI3MjE4ZDk5NNkN2E3MzRiIiwidXNlciI6IjYyNzIxOGQ5OTViYTQ5MTVjZDdhNzM0YiIsImlhdCI6MTY1MTY2MDMwMSwiZXhwIjoxNjYwMzAwMzAxfQ.E0hcNHVyIyOyv7DJ_m9Fd2zN7LT-wUSJmPowz0NJJQk",
"tokenType": "public"
},
"error": null
}
To generate a new access and refresh token, use the following endpoint. This endpoint requires authentication with an existing refresh token and will generate both a new access token and refresh token, invalidating the previous refresh token.
HTTP Request
GET https://api1.app.portpro.io/v1/generate-new-token
Request Header
Authorization: Bearer <Your Refresh Token>
Generate multiple access tokens
200 OK
{
"_object": "/api/response",
"self": "/v1/token",
"version": "1.0.0",
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYXJyaWVyIjoiNjY5ZWE4YjNiMTFmNjJmMGY4NWE2NWJjIiwidXNlciI6IjY2OWVhOGIzYjExZjYyZjBmODVhNjViYyIsImlhdCI9MTcyNzI4MjM3MCwiZXhwIjoxNzI3MjkzMTcwfQ.JrjKxyDlw0Uhlyl_Y3Xg7HTC_QvRoPcCWU7Ahc6rl7w",
"tokenType": "public"
},
"error": null
}
To generate multiple access tokens, use the following endpoint. This endpoint requires authentication with an existing refresh token and generates a new access token without invalidating the refresh token. This allows you to request new access tokens repeatedly without deactivating your refresh token.
HTTP Request
GET https://api1.app.portpro.io/v1/token
Request Header
Authorization: Bearer <Your Refresh Token>
Errors
{
"_object": "/api/error",
"self": "/self/route",
"version": "1.0.0",
"status": 400,
"message": "error message"
}
The PortPro API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your Access Token is wrong. |
403 | Forbidden -- The API requested is hidden for administrators only. |
404 | Not Found -- The specified API could not be found. |
405 | Method Not Allowed -- You tried to access a API with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The request has been removed from our servers. |
429 | Too Many Requests -- You're requesting too many API! Slow down! |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
502/503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |
Invoices
Invoice Object
Demo invoice object
{
"_id": "ABC_1234",
"total": 1,
"invoice": [
{
"load_reference_number": "ABC_1234",
"reference_number": "ABC_1234",
"pricing": [
{
"dynamicPricingId": null,
"customerRateId": null,
"chargeType": "MANUALLY_CHANGED",
"name": "Base Price",
"perType": "",
"freeDays": 0,
"unit": "1.00",
"finalAmount": "100.00",
"chargePerMinute": 0,
"chargePerDay": 0,
"amount": "0.00",
"glCode": "123-456"
}
],
"status": "BILLING",
"paidAmount": 0,
"totalAmount": 100,
"remainAmount": 100,
"totalTaxAmount": 100,
"taxAmount": 0,
"remainTaxAmount": 100,
"billingDate": "2022-05-01T05:03:13.732Z",
"caller": {
"_id": "1234",
"company_name": "SMITHSON WAREHOUSE",
"mcNumber": "12345",
"payment_terms": 30,
"currency": ""
},
"callerName": "SMITHSON WAREHOUSE",
"branch": {
"_id": "123456",
"name": "Test_Terminal"
},
"taxDetails": {
"taxRate": 0.21,
"taxNote": "Tax Notes",
"defaultTaxType": "APPLICABLE",
"taxType": "VAT"
},
"referenceFields": {
"ContainerNo": "HELL7878700",
"PurchaseOrderNo": "Purchase Order #",
"ChassisNo": "25369815",
"Master_bill_of_lading": "Master Bill of Lading",
"PickUpNo": "Pick Up #",
"Vessel_name": "Vessel Name",
"House_bill_of_lading": "House Bill of Lading",
"Voayge": "Voyage",
"ReturnNo": "Return #",
"Secondary_ReferenceNo": "Reference #",
"SealNo": "Seal #",
"ShipmentNo": "Shipment #"
},
"chargeSetNumber": "ABC_XYZ_M10037",
"billingNote": "billing Note"
}
],
"paymentHistory": [
{
"paymentDate": "2024-02-09T05:00:00.000Z",
"paymentAmount": 700,
"checkNo": "check#11",
"currency": "$",
"documents": [
{
"url": "https://portpro-logistics-public-dev.s3.us-west-2.amazonaws.com/staging/tms/shipment_gD3I6j72840.jpg",
"type": "Check"
}
],
"paymentBy": "NewI3",
"notes": "apply from apayment",
"paymentType": "STANDARD"
},
{
"paymentDate": "2024-02-09T05:00:00.000Z",
"paymentAmount": 700,
"checkNo": "check#12",
"currency": "$",
"documents": [
{
"url": "https://portpro-logistics-public-dev.s3.us-west-2.amazonaws.com/scanner/1707483010443_1707483010508.pdf",
"type": "Check"
}
],
"paymentBy": "NewI3",
"notes": "Payment Details",
"paymentType": "CREDIT_MEMO",
"creditMemoNumber": "FSJ58_COR_C000011"
}
]
}
Here is invoice response object for parameter reference.
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object. |
status | string | Current status of invoice |
updatedAt | date/string | Updated timestring of invoice |
createdAt | date/string | Created timestring of invoice |
paidAmount | int32 | Paid amount of invoice |
totalAmount | int32 | Total amount of invoice |
remainAmount | int32 | Remain amount of invoice |
billingDate | date/string | Billing date of invoice |
timestamp | date/string | Timestamp of invoice |
paymentReference | string | Payment reference number of invoice |
lineItems | array | Array of invoice item object |
paymentHistory | array | Array of payment history object |
caller | object | Object of customer details |
loadDetails | object | Object of load details |
branch | object | Object of branch(terminal) name and id. |
taxDetails | object | Object of tax related fields like taxRate, taxNote, defaultTaxType and taxType. |
referenceFields | object | Object of all reference fields like Container no, Vessel_name and etc |
chargeSetNumber | string | Charge reference number of invoice |
billingNote | string | BillingNote of the charge set |
includePaymentHistory | boolean | Pass true for get payment history |
Create Invoice
200 OK
{
"_object": "/api/response"
"self": "/invoices/"
"version": 1
"data": {}
}
HTTP Request
POST https://api1.app.portpro.io/v1/invoices
Request Body Parameters
Parameter | Type | Description |
---|---|---|
chargeIds | array | Array of unique ids of Charge Set |
chargeReferenceNumbers | array | Array of reference numbers of Charge Set |
Retrieve All Invoices
200 OK
{
"_object":"/api/response"
"self":"/invoices/"
"version":1
"count":123
"data":[
{
"load_reference_number": "ABC_1234",
"reference_number": "ABC_1234",
"pricing": [
{
"dynamicPricingId": null,
"customerRateId": null,
"chargeType": "MANUALLY_CHANGED",
"name": "Base Price",
"perType": "",
"freeDays": 0,
"unit": "1.00",
"finalAmount": "100.00",
"chargePerMinute": 0,
"chargePerDay": 0,
"amount": "0.00",
"glCode": "123-456"
}
],
"status": "BILLING",
"paidAmount": 0,
"totalAmount": 100,
"remainAmount": 100,
"totalTaxAmount": 100,
"taxAmount": 0,
"remainTaxAmount": 100,
"billingDate": "2022-05-01T05:03:13.732Z",
"caller": {
"_id": "1234",
"company_name": "SMITHSON WAREHOUSE",
"mcNumber": "12345",
"payment_terms": 30,
"currency": ""
},
"callerName": "SMITHSON WAREHOUSE",
"branch": {
"_id": "123456",
"name": "Test_Terminal"
},
"taxDetails": {
"taxRate": 0.21,
"taxNote": "Tax Notes",
"defaultTaxType": "APPLICABLE",
"taxType": "VAT"
},
"referenceFields": {
"ContainerNo": "HELL7878700",
"PurchaseOrderNo": "Purchase Order #",
"ChassisNo": "25369815",
"Master_bill_of_lading": "Master Bill of Lading",
"PickUpNo": "Pick Up #",
"Vessel_name": "Vessel Name",
"House_bill_of_lading": "House Bill of Lading",
"Voayge": "Voyage",
"ReturnNo": "Return #",
"Secondary_ReferenceNo": "Reference #",
"SealNo": "Seal #",
"ShipmentNo": "Shipment #"
},
"chargeSetNumber": "ABC_XYZ_M10037",
"billingNote": "billing Note"
}
],
"error":null
}
This endpoint retrieves all Invoices.
HTTP Request
GET https://api1.app.portpro.io/v1/invoices
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the invoice to retrieve |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
invoiceNumbers | array | Array of invoiceNumber/reference number. |
status | array | Status of the invoice. One of: [BILLING,REBILLING,PARTIAL_PAID,FULL_PAID,APPROVED] |
billingFrom | date/string | Billing from date(UTC) of invoice for filter. e.g. 2015-02-06T08:40:47.772Z |
billingTo | date/string | Billing to date(UTC) of invoice for filter. e.g. 2015-02-06T08:40:47.772Z |
type_of_load | array | Type of the load. One of: [IMPORT, EXPORT, ROAD, BILL_ONLY, etc] |
isIncludeDeleted | boolean | Is include deleted invoices |
isDeleted | boolean | For get only deleted invoices |
isSubCustomer | boolean | Whether to show load invoices that are not based on the primary charge set of the load and are not consolidated into combined invoices. These invoices were historically referred to as subcustomer invoices. |
isShowCombinedInvoices | boolean | For show combine invoices |
sortBy | object | For get sorted invoices which include key like billingDate |
includePaymentHistory | boolean | Pass true for get payment history |
Get a Specific Invoice
200 OK
{
"_object": "/api/response",
"self": "/invoices/BBB_M100342",
"version": "1.0.0",
"count": 1,
"data": <Invoice object>,
"error": null
}
This endpoint retrieves a specific invoice.
Example of invoice object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/invoices/<reference_number>
URL Parameters
Parameter | Type | Description |
---|---|---|
reference_number | string | The reference number of load for the invoice to retrieve |
includePaymentHistory | boolean | Pass true for get payment history |
Bills
Bill Object
Demo Bill object
{
"loadNumbers": [
"ABC_XYZ_M102057"
],
"chargeSetNumbers": [
"1QQZ_M100146"
],
"containerNo": [],
"billNumber": "000045",
"billId": "6583d41a49e16b36f22bc53z",
"billDate": "2024-03-05T07:49:29.886Z",
"billDueDate": "2024-03-06T04:59:59.999Z",
"status": "ACCEPTED",
"carrier": "6583d41a49e16b36f22bc53z",
"branch": [
{
"_id": "65af50f09ea16f6c1d75429a",
"name": "test123"
}
],
"chargeSets": [
{
"loadNumber": "ABC_XYZ_M102057",
"chargeSetNumber": "1QQZ_M100146",
"chargeSetId": "131cfa7a-bd4c-41af-ad0e-f812ead42160",
"chargeSetType": "DEFAULT",
"pricing": [
<pricing object>
]
}
],
"vendor": {
"vendorId": "65c30e24a6d305b4ba661dbz",
"vendorName": "Test",
"payment_terms": 0
},
"vendorName": "Test",
"customers": [
{
"customerId": "658ea5e8d983a51e4e7798a1",
"customerName": "TRIAL"
}
],
"totalAmount": 2500,
"totalAmountWithTax": 2500,
"totalAppliedCreditAmount": 0,
"totalCreditMemoAmount": 0,
"totalPaidAmount": 0,
"totalPaymentAmount": 0,
"totalRemainAmount": 1500,
"totalTaxAmount": 0,
"createdAt": "2024-03-05T07:49:29.898Z",
"updatedAt": "2024-09-19T08:08:10.713Z"
}
Here is bill response object for parameter reference.
Parameter | Type | Description |
---|---|---|
loadNumbers | array | Array of load number |
chargeSetNumbers | array | Array of charge set number |
containerNo | array | Array of container number |
billNumber | string | Bill Number of the specific bill |
billId | string | Unique Bill Id of the specific bill |
billDate | date/string | Billing date of bill |
billDueDate | date/string | Billing due date of bill |
status | string | Current status of the bill. One of: [PENDING,ACCEPTED,DECLINED] |
carrier | string | Unique id of carrier |
branch | array | Array of object with name and unique _id of branch |
chargeSets | array | Array of object with loadNumber, chargeSetNumber, chargeSetId, chargeSetType and pricing |
vendor | object | Object with vendorId, vendorName and payment_terms |
vendorName | string | Name of the vendor |
customers | array | Array of object with customerName and unique customerId |
totalAmount | number | Total amount of bill |
totalAmountWithTax | number | Total amount with tax of bill |
totalAppliedCreditAmount | number | Total applied credit amount of bill |
totalCreditMemoAmount | number | Total credit memo amount of bill |
totalPaidAmount | number | Total paid amount of bill |
totalPaymentAmount | number | Total payment amount of bill |
totalRemainAmount | number | Total remain amount of bill |
totalTaxAmount | number | Total tax amount of bill |
createdAt | date/string | Created timestring of bill |
updatedAt | date/string | Updated timestring of bill |
Retrieve Bills
200 OK
{
"_object": "/api/response",
"self": "/v1/bills",
"version": "1.0.0",
"count": 111,
"data": [<bill object>],
"error": null
}
This endpoint retrieves Bills.
Example of bill object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/bills
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the bill to retrieve |
limit | int32 | Count of items in each page. Should be between 1 and 50 (inclusive) |
billNumber | string / number | Bill Number of the specific bill |
billId | string | Unique Bill Id of the specific bill |
Loads
Load Object
Demo Load Response
{
"_id": "12345",
"updatedAt": "2021-11-30T04:27:49.599Z",
"createdAt": "2021-11-30T04:27:49.496Z",
"type_of_load": "IMPORT",
"status": "PENDING",
"preSetOrderStatus": "",
"caller": {
"_id": "1234",
"companyID": "SMITHSONWAREHOUSE3033",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07302",
"mobile": "",
"email": "muhammed.teli@portpro.io",
"billingEmail": "",
"extraEmail": "",
"payment_terms": 0,
"isEmailNeedToSend": true,
"main_contact_name": "as",
"address": {
"lng": -74.05453709999999,
"lat": 40.7173673,
"address": "450 Grand St, Jersey City, NJ 07302, USA"
},
"company_name": "SMITHSON WAREHOUSE",
"receiverEmail": null,
"currency": "",
"doc_all": true,
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"officeHoursEnd": null,
"officeHoursStart": null
},
"addedBy": {
"_id": "1234",
"lastName": "NEW JERSEY TRUCKER",
"name": "NEW JERSEY TRUCKER"
},
"carrier": {
"_id": "1234",
"carrier": {
"_id": "1234",
"USDOTNumber": "2178221",
"mobile": 8000477510,
"company_name": "NEW JERSEY TRUCKER",
"homeTerminalTimezone": "America/Halifax",
"defaultAddress": "5e4c6fe85ef5fa09fe55eafe",
"billingEmail": "undefined",
"distanceMeasure": "ml"
},
"email": "example@gmail.com",
"defaultAddressId": {
"_id": "1234",
"updatedAt": "2019-03-14T11:27:31.953Z",
"createdAt": "2019-03-14T11:27:31.953Z",
"carrier": "1234",
"company_address": "111, West Hartford, Connecticut 06119, United States",
"isDeleted": false,
"longitude": null,
"latitude": null,
"__v": 0
},
"lastName": "NEW JERSEY TRUCKER",
"name": "NEW JERSEY TRUCKER",
"invoiceLogo": "https://axle-logistics.s3.amazonaws.com/production/tms/1234.png"
},
"reference_number": "ABC_1234",
"distance": 0,
"pricing": [],
"callerName": "SMITHSON WAREHOUSE",
"callerInfo": {
"zipcode": "07302",
"country": "US",
"state": "NJ",
"city": "Jersey City",
"address": {
"lng": -74.05453709999999,
"lat": 40.7173673,
"address": "450 Grand St, Jersey City, NJ 07302, USA"
},
"company_name": "SMITHSON WAREHOUSE"
},
"shipperName": "MAHER",
"shipperAddress": "1200 CORBIN ST, ELIZABETH, NJ 07201, USA",
"shipperInfo": {
"zipcode": "07201",
"country": "US",
"state": "NJ",
"city": "Elizabeth",
"address": {
"lng": -74.1662324,
"lat": 40.6806736,
"address": "1200 Corbin St, Elizabeth, NJ 07201, USA"
},
"company_name": "MAHER"
},
"consigneeName": "NEW JERSEY TRUCKER",
"consigneeAddress": "301-302, AMORA ARCADE, NEAR MAUNI INTERNATIONAL SCHOOL, UTTRAN, SURAT, GUJARAT",
"consigneeInfo": {
"zipcode": "67301",
"country": "US",
"state": "KS",
"city": "Independence",
"address": {
"lng": 72.8623947,
"lat": 21.2371483,
"address": "301-302, Amora Arcade, near Mauni International School, Uttran, Surat, Gujarat"
},
"company_name": "NEW JERSEY TRUCKER"
},
"weight": 0,
"expense": [],
"acceptRejectCode": "Default",
"isStatusOrderMigrated": false,
"isEdi": false,
"allowDriverCompletion": false,
"isMigrated": true,
"customerEmployee": [],
"consignee": [
{
"_id": "1234",
"companyID": "NEWJERSEYTRUCKER6681",
"city": "Independence",
"state": "KS",
"country": "US",
"zip_code": "67301",
"mobile": "2000000000",
"email": "apex@gggg.com",
"main_contact_name": "NEW JERSEY TRUCKER",
"address": {
"lng": 72.8623947,
"lat": 21.2371483,
"address": "301-302, Amora Arcade, near Mauni International School, Uttran, Surat, Gujarat"
},
"company_name": "NEW JERSEY TRUCKER"
}
],
"shipper": [
{
"_id": "1234",
"companyID": "MAHER8210",
"city": "Elizabeth",
"state": "NJ",
"country": "US",
"zip_code": "07201",
"mobile": "",
"email": "example@portpro.io",
"main_contact_name": "rtt",
"address": {
"lng": -74.1662324,
"lat": 40.6806736,
"address": "1200 Corbin St, Elizabeth, NJ 07201, USA"
},
"company_name": "MAHER",
"isTIROptional": true,
"officeHoursEnd": null,
"officeHoursStart": null
}
],
"carrierHold": false,
"brokerHold": false,
"overWeight": false,
"isConfirm": false,
"remainAmount": 0,
"totalAmount": 0,
"paidAmount": 0,
"totalWeight": 0,
"isLoadDropAtPull": false,
"isLoadDropAtYard": false,
"isHot": false,
"isReadyForPickup": false,
"isloadStartable": false,
"radio": 0,
"isNextContainerNeedToPickup": false,
"isPrePullCharge": false,
"isReUse": false,
"isLive": false,
"isPaymentCompleted": false,
"documents": [],
"vessel": {
"eta": "2023-08-16T07:00:00.000Z"
},
"lastFreeDay": "2023-08-22T07:00:00.000Z",
"dischargedDate": "2023-08-11T07:00:00.000Z",
"outgateDate": "2023-08-18T07:00:00.000Z",
"emptyDay": "2023-08-05T07:00:00.000Z",
"freeReturnDate": "2023-08-06T07:00:00.000Z",
"ingateDate": "2023-08-05T07:00:00.000Z",
"readyToReturnDate": "2023-08-06T07:00:00.000Z",
"loadTime": "2023-08-09T07:00:00.000Z",
"containerAvailableDay": "2023-08-06T07:00:00.000Z",
"cutOff": "2023-08-10T18:31:00.000Z",
"return": "2023-08-15T07:00:00.000Z",
"driverOrder": [
{
"isVoidOut": false,
"distance": 0,
"address": {
"address": "1200 Corbin St, Elizabeth, NJ 07201, USA",
"lat": 40.6806736,
"lng": -74.1662324
},
"_id": "1234",
"company_name": "MAHER",
"zip_code": "07201",
"country": "US",
"state": "NJ",
"city": "Elizabeth",
"customerId": {
"_id": "1234",
"city": "Elizabeth",
"state": "NJ",
"country": "US",
"zip_code": "07201",
"geofence": {
"polygon": [],
"zoom": 10.91,
"center": [
-74.0029393,
40.717718
]
},
"address": {
"lng": -74.1662324,
"lat": 40.6806736,
"address": "1200 Corbin St, Elizabeth, NJ 07201, USA"
},
"company_name": "MAHER",
"isTIROptional": true
},
"type": "PULLCONTAINER"
},
{
"isVoidOut": false,
"distance": 0,
"address": {
"address": "301-302, Amora Arcade, near Mauni International School, Uttran, Surat, Gujarat",
"lat": 21.2371483,
"lng": 72.8623947
},
"_id": "1234",
"company_name": "NEW JERSEY TRUCKER",
"zip_code": "67301",
"country": "US",
"state": "KS",
"city": "Independence",
"customerId": {
"_id": "1234",
"city": "Independence",
"state": "KS",
"country": "US",
"zip_code": "67301",
"address": {
"lng": 72.8623947,
"lat": 21.2371483,
"address": "301-302, Amora Arcade, near Mauni International School, Uttran, Surat, Gujarat"
},
"company_name": "NEW JERSEY TRUCKER",
"geofence": {
"polygon": [],
"zoom": 10.91,
"center": [
-74.0029393,
40.717718
]
}
},
"type": "DELIVERLOAD"
},
{
"isVoidOut": false,
"distance": 0,
"_id": "1234",
"type": "RETURNCONTAINER"
}
],
"statusOrder": [],
"expenseHistory": [],
"paymentHistory": [],
"statusHistory": [],
"isDeleted": false,
"items": [],
"additionalPricing": [],
"deliveryTimes": [
{
"customerId": "1234",
"_id": "1234"
}
],
"pickupTimes": [
{
"customerId": "1234",
"_id": "1234"
}
],
"hot": false,
"hazmat": false,
"scale": false,
"__v": 0,
"totalMiles": 0,
"taxNote": "TEST NOTE",
"taxRate": 0.2,
"taxType": "VAT",
"defaultTaxType": "APPLICABLE",
"assignedCSR": [
{
"_id": "1234",
"isDeleted": false,
"isBlocked": false,
"lastName": "Alex",
"name": "new"
}
],
"chargeSets": [
{
"chargeSetNumber": "ABC_1234",
"chargeSetId": "024fb178-2f36-4679-826f",
"chargeSetType": "DEFAULT",
"pricing": [<pricing object>],
"totalAmount": 0,
"taxAmount": 0,
"totalAmountWithTax": 0,
"billingNote": "",
"approvedDate": "",
"createdAt": "2019-03-14T11:27:31.953Z",
"updatedAt": "2019-03-14T11:27:31.953Z",
"status": "APPROVED",
"customer": {
"customerName": "ABC",
"customerId": "667a6bba629626db12f91eqw"
},
"currency": {
"currencyCode": "DKK",
"symbol": "kr.",
"name": "Danish Krone"
},
"terminal": "Neshua",
"invoice": {
"invoiceData": "2024-09-20T09:53:11.000Z",
"invoiceNumber": "HAJ100003",
"invoiceDueDate": "2024-09-20T09:53:11.000Z"
}
}
],
"vendorPay": [
{
"chargeSetNumber": "ABC_1234",
"chargeSetId": "024fb178-2f36-4679-826f",
"chargeSetType": "DEFAULT",
"pricing": [<pricing object>],
"totalAmount": 0,
"taxAmount": 0,
"totalAmountWithTax": 0,
"billingNote": "",
"approvedDate": "",
"createdAt": "2019-03-14T11:27:31.953Z",
"updatedAt": "2019-03-14T11:27:31.953Z",
"status": "APPROVED",
"vendor": {
"vendorName": "XYZ",
"vendorId": "66a9d444563c96eef75b0e3w"
},
"currency": {
"currencyCode": "DKK",
"symbol": "kr.",
"name": "Danish Krone"
},
"terminal": "Neshua",
"bill":{
"billDate": "",
"billDueDate": "",
"billNumber": ""
}
}
],
"totalNumberOfChargeSets": 1
}
Here is load response object for parameter reference.
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object. |
type_of_load | string | Type of the load. One of: [IMPORT, EXPORT, ROAD, BILL_ONLY] |
preSetOrderStatus | string | Type of the order status. One of: [ PULL_DELIVER_RETURN, PULL_DROP_DELIVER_DROP_RETURN, PULL_DROP_DELIVER_RETURN, PULL_DELIVER_DROP_RETURN, PULL_RETURN, PICK_RUN_GRAY_POOL, PREPULL_GRAY_POOL, SHUNT_PULL_RETURN, PICK_LIFT_DELIVER_LIFT_RETURN, PICK_LIFT_DELIVER_RETURN, "" (empty string) ] |
status | string | Load statuses. |
updatedAt | date/string | Updated timestring of load |
createdAt | date/string | Created timestring of load |
caller | object | Caller object which you can refer in embedded objects |
addedBy | object | Object of created bt with key of _id, lastName and name |
carrier | object | Carrier object which you can refer in embedded objects |
reference_number | string | Reference number of load |
distance | int32 | Distance of load |
pricing | array | Pricing array of load |
callerName | string | Caller name of load |
shipperName | string | Shipper name of load |
shipperAddress | string | Shipper address of load |
shipperInfo | object | Shipper object which include shipper basic details |
consigneeName | string | Consignee name of load |
consigneeAddress | string | Consignee address address of load |
consigneeInfo | object | Consignee object which include consignee basic details |
weight | int32 | Weight of load |
expense | array | Array of expenses for load |
acceptRejectCode | string | Accept or Reject code for load |
isStatusOrderMigrated | boolean | Status order is migrated or not |
isEdi | boolean | Is Edi or not |
allowDriverCompletion | boolean | Allow driver for completion or not |
isMigrated | boolean | Is migrated or not |
customerEmployee | array | Array of customer/caller employee. You can get customer/caller employee using Get Users API. |
carrierHold | boolean | Is Carrier hold or not |
brokerHold | boolean | Is broker or not |
overWeight | boolean | Is over weight or not |
isConfirm | boolean | Is confirm or not |
isLoadDropAtPull | boolean | Is load drop at pull or not |
isLoadDropAtYard | boolean | Is load drop at yard or not |
isHot | boolean | Is hot or not |
isReadyForPickup | boolean | Is ready for pickup or not |
isloadStartable | boolean | Is startable or not |
isNextContainerNeedToPickup | boolean | Is next container need to pickup or not |
isPrePullCharge | boolean | Is prepull or not |
isReUse | boolean | Is reuse or not |
isLive | boolean | Is live load or not |
isPaymentCompleted | boolean | Is payment completed or not |
isDeleted | boolean | Is deleted load or not |
hazmat | boolean | Is hazmat or not |
remainAmount | int32 | Remaining amount of load |
totalAmount | int32 | Total amount of load |
paidAmount | int32 | Paid amount of load |
totalWeight | int32 | Total weight of load |
radio | int32 | Radio of load |
documents | array | Array of documents of load |
driverOrder | array | Array of driver order object which you can refer im embedded objects |
statusOrder | array | Array of Status order object |
expenseHistory | array | Array of expense history object |
paymentHistory | array | Array of payment history object |
statusHistory | array | Array of status history object |
items | array | Array of items |
additionalPricing | array | Array of additional pricing |
deliveryTimes | array | Array of delivery times object which includes customerId, _id, deliveryFromTime, deliveryToTime and etc |
pickupTimes | array | Array of pickup times object which includes customerId, _id, pickupToTime, pickupFromTime and etc |
vessel | object | Vessel which include eta |
custom | string | Custom holds |
freight | string | Freight holds |
returnNo | string | Return no of load |
shipmentNo | string | Shipment no of load |
purchaseOrderNo | string | Purchase order no of load |
containerNo | string | Container no of load |
driverName | string | Driver name of load |
nextDriverOrderId | object | Next driver order object |
lastUpdatedStatusAt | string | Last status update datetime |
taxNote | string | tax note for load. |
taxRate | string | tax rate of load in percentage. |
taxType | string | tax type of load. |
defaultTaxType | string | default tax type EXEMPT/APPLICABLE. |
pickupTimes | array | Array of object pickupFromTime(UTC String), pickupToTime(UTC String) and customerId. |
deliveryTimes | array | Array of object deliveryFromTime(UTC String), deliveryToTime(UTC String) and customerId. |
returnFromTime | datetime | Container return from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
returnToTime | datetime | Container return to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
vessel | datetime | Vessel ETA datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
lastFreeDay | datetime | Last Free Day datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
dischargedDate | datetime | Discharged Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
outgateDate | datetime | Outgate Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
emptyDay | datetime | Empty Day datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
freeReturnDate | datetime | Return day datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
ingateDate | datetime | Ingate Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
containerAvailableDay | string | ERD of load. e.g. 2015-02-06T08:40:47.772Z |
cutOff | string | CutOff of load(UTC). e.g. 2015-02-06T08:40:47.772Z |
return | datetime | Return Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
chargeSets | array | Array of chargeSets of load |
vendorPay | array | Array of vendorPay of load |
totalNumberOfChargeSets | number | Total number of chargeSets |
CREATE Load
200 OK
{
"_object": "/api/response",
"self": "/loads/",
"version": "1.0.0",
"data": <load Object>,
"error":null
}
This endpoint create new load.
Example of load object you can find here.
HTTP Request
POST https://api1.app.portpro.io/v1/loads
Request Body
Parameter | Type | Description |
---|---|---|
type_of_load* | string | Type of the load. One of: [IMPORT, EXPORT, ROAD, BILL_ONLY] |
preSetOrderStatus* | string | Type of the order status. One of: [ PULL_DELIVER_RETURN, PULL_DROP_DELIVER_DROP_RETURN, PULL_DROP_DELIVER_RETURN, PULL_DELIVER_DROP_RETURN, PULL_RETURN, PICK_RUN_GRAY_POOL, PREPULL_GRAY_POOL, SHUNT_PULL_RETURN, PICK_LIFT_DELIVER_LIFT_RETURN, PICK_LIFT_DELIVER_RETURN, "" (empty string) ] |
caller* | string | Id of customer |
shipper* | array | Array of ports id |
consignee | array | Array of consignee id |
consigneeDetails | array | Array of consignee details which includes company_name*,lat, lng, isValidAddress(Boolean value), main_contact_name, address*, address1*, city*, state, country*, zip_code*, terminals (Array of terminal ids). |
shipperDetails | array | Array of shipper details which includes company_name*,lat, lng, isValidAddress(Boolean value), main_contact_name, ,address*, address1*, city*, state, country*, zip_code*, terminals (Array of terminal ids). |
emptyOriginDetails | object | Object of emptyOrigin details which includes company_name*,lat, lng, isValidAddress(Boolean value), main_contact_name, ,address*, address1*, city*, state, country*, zip_code*, terminals (Array of terminal ids). |
emptyOrigin | string | Id of container return location. |
customerEmployee | array | Array of email/id of customer/caller employee. You can get customer/caller employee using Get Users API. |
routingOrder | array | List of routing events. |
status | string | Status of the load should be PENDING. |
pricing | array | Pricing array of load |
terminal | string | Id of terminal |
temperature | string | Temperature of load |
items | array | Items(Commodity) of Load |
pickupTimes | array | Array of object pickupFromTime(UTC String), pickupToTime(UTC String) and customerId. |
deliveryTimes | array | Array of object deliveryFromTime(UTC String), deliveryToTime(UTC String) and customerId. |
returnFromTime | datetime | Container return from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
returnToTime | datetime | Container return to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
chassisPick | string | Chassis pick location ID. |
freight | string | Order is on Freight hold or not. value should be HOLD or RELEASED |
custom | string | Order is on Custom hold or not. value should be HOLD or RELEASED |
vessel | datetime | Vessel ETA datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
lastFreeDay | datetime | Last Free Day datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
dischargedDate | datetime | Discharged Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
outgateDate | datetime | Outgate Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
emptyDay | datetime | Empty Day datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
freeReturnDate | datetime | Return day datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
ingateDate | datetime | Ingate Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
containerAvailableDay | string | ERD of load. e.g. 2015-02-06T08:40:47.772Z |
cutOff | string | CutOff of load(UTC). e.g. 2015-02-06T08:40:47.772Z |
return | datetime | Return Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
chassisNo | string | ChassisNo of load |
genset | string | Genset of load |
routeType | string | Route type of load. value should be Local or Highway |
hazmat | boolean | Hazmat |
hot | boolean | Hot |
overWeight | boolean | overWeight |
overHeight | boolean | overHeight |
liquor | boolean | liquor |
isGenset | boolean | Genset |
deliveryOrderNo | string | Delivery order no of load |
callerbillLandingNo | string | Bill of lading number of load |
secondaryReferenceNo | string | Reference # of load |
doNo | string | House Bill of Lading |
bookingNo | string | Booking no of load |
sealNo | string | Seal no of load |
purchaseOrderNo | string | Purchase order no of load |
shipmentNo | string | Shipment no of load |
containerNo | string | Container no of load |
releaseNo | string | Voyage of load |
callerPONo | string | Pick Up # |
appointmentNo | string | Appointment # |
returnNo | string | Return # |
reservationNo | string | Reservation # |
scac | string | SCAC |
containerSize | string | ContainerSize or ContainerSize ID of load |
containerType | string | ContainerType or ContainerType ID of load |
containerOwner | string | ContainerOwner or ContainerOwner ID of load |
grayContainerNo | string | GrayContainerNo of load |
grayContainerSize | string | GrayContainerSize or GrayContainerSize ID of load |
grayContainerType | string | GrayContainerType or GrayContainerType ID of load |
grayContainerOwner | string | GrayContainerOwner or GrayContainerOwner ID of load |
trailer | string | Trailer No |
trailerType | string | Trailer Type |
trailerSize | string | Trailer Size |
grayChassisNo | string | GrayChassisNo of load |
grayChassisSize | string | GrayChassisSize or GrayChassisSize ID of chassis |
grayChassisType | string | GrayChassisType or GrayChassisType ID of chassis |
grayChassisOwner | string | GrayChassisOwner or GrayChassisOwner ID of chassis |
chassisSize | string | ChassisSize or ChassisSize ID of Chassis |
chassisType | string | chassisType or chassisType ID of Chassis |
chassisOwner | string | chassisOwner or chassisOwner ID of Chassis |
driverNote | string | Driver notes for load |
billingNote | string | Billing notes for load |
yardNote | string | Yard notes for load |
officeNote | string | Office notes for load |
tareWeight | string | Tare weight for load |
scale | boolean | Scale |
UPDATE Load
200 OK
{
"_object": "/api/response",
"self": "/loads/",
"version": "1.0.0",
"data": <Load Object>,
"error":null
}
This endpoint update a load.
Example of load object you can find here.
HTTP Request
PUT https://api1.app.portpro.io/v1/loads
Query Parameters
Parameter | Type | Description |
---|---|---|
reference_number* | string | The reference_number of the load to update |
Request Parameters
Parameter | Type | Description |
---|---|---|
hazmat | boolean | Hazmat of load |
hot | boolean | Hot of load |
caller | string | Id of customer |
carrierHold | boolean | Is carrier hold on load or not |
consigneeDetails | array | Array of consignee details which includes company_name*,lat, lng, isValidAddress(Boolean value), main_contact_name, address*, address1*, city*, state, country*, zip_code*. |
shipperDetails | array | Array of shipper details which includes company_name*,lat, lng, isValidAddress(Boolean value), main_contact_name, ,address*, address1*, city*, state, country*, zip_code*. |
emptyOriginDetails | object | Object of emptyOrigin details which includes company_name*,lat, lng, isValidAddress(Boolean value), main_contact_name, ,address*, address1*, city*, state, country*, zip_code*. |
consignee | array | Array of consignee id |
emptyOrigin | string | Container return origin id |
brokerHold | boolean | Is broker hold on load or not |
overWeight | boolean | Is over weight on load or not |
pickupTimes | array | Pickup time pf load, its object of array and in object customerId, pickupFromTime, pickupToTime etc |
deliveryTimes | array | Delivery time pf load, its object of array and in object customerId,deliveryFromTime, deliveryToTime etc |
shipper | array | Array of shipper id |
vessel | date/string | Vessel date of load |
custom | boolean | Is custom hold on load or not |
freight | boolean | Is freight hold on load or not |
returnNo | string | Return No of load |
chassisId | string | Chassis id of load |
chassisType | string | Chassis type of load |
temperature | string | Temperature of load |
chassisSize | string | Chassis size of load |
chassisOwner | string | Chassis owner of load |
liquor | string | Liquor of equipment load |
routeType | string | Route type of load |
scac | string | Scac of equipment load |
isEdi | boolean | Is Edi on load or not |
isHot | boolean | Is hot load or not |
billingNote | string | Billing note of load |
notes | string | Load notes |
driverNote | string | Driver note of load |
yardNote | string | Yard note of load |
emptyOrigin | string | Container return origin id |
emptyDay | date/string | Free date of load |
freeReturnDate | date/string | Free return date of load |
lastFreeDay | date/string | Last free date of load |
returnFromTime | date/string | Return from time of load |
returnToTime | date/string | Return to time of load |
bookingNo | string | Booking no of load |
callerPONo | string | Caller po no of load |
callerbillLandingNo | string | Caller bill landing no of load |
deliveryOrderNo | string | Delivery order no of load |
DoNo | string | House Bill of Lading |
purchaseOrderNo | string | Purchase order no of load |
releaseNo | string | Release no of load |
sealNo | string | Seal no of load |
shipmentNo | string | Shipment no of load |
secondaryReferenceNo | string | Secondary reference no of load |
chassisNumber | string | Chassis no of load |
trailer | string | Trailer of load |
trailerType | string | TrailerType of load |
trailerSize | string | TrailerSize of load |
otherReference | string | Other reference of load |
chassisPick | string | ChassisPick of load |
chassisTermination | string | ChassisTermination of load |
loadTime | string | LoadTime of load |
containerAvailableDay | string | ERD of load |
cutOff | string | CutOff of load |
return | string | Return of load |
pickupFromTime | string | PickupFromTime of load |
pickupToTime | string | PickupToTime of load |
deliveryFromTime | string | DeliveryFromTime of load |
deliveryToTime | string | DeliveryToTime of load |
pickupNo | string | PickupNo of load |
sealBookingNo | string | Seal booking no |
shipperBookingNo | string | Shipper booking no |
callerBookingNo | string | Caller booking number |
terminal | string | Terminal |
containerNo | string | ContainerNo of load |
containerSize | string | ContainerSize of load |
containerType | string | ContainerType of load |
containerOwner | string | ContainerOwner of load |
chassisNo | string | ChassisNo of load |
genset | string | Genset of load |
officeNote | string | OfficeNote of load |
preSetOrderStatus | string | PreSetOrderStatus of load |
pricing | array | Pricing array of load |
items | array | Items of Load |
isContainerConfirm | boolean | Is container confirm or not |
isChassisConfirm | boolean | Is chassis confirm or not |
loadAssignedDate | date | Load assign date |
approvedDate | string | Approved date |
appointmentNo | string | Appointment no |
reservationNo | string | Reservation no |
isReUse | boolean | Is reuse or not |
isPrePullCharge | boolean | Is prepullcharge or not |
isNextContainerNeedToPickup | boolean | Is next container need to Pickup or not |
grayChassisId | string | Id of grayChassis |
grayContainerNo | string | GrayContainerNo of load |
grayContainerSize | string | GrayContainerSize of load |
grayContainerType | string | GrayContainerType of load |
grayContainerOwner | string | GrayContainerOwner of load |
grayChassisNo | string | GrayChassisNo of load |
grayChassisSize | string | GrayChassisSize of load |
grayChassisType | string | GrayChassisType of load |
grayChassisOwner | string | GrayChassisOwner of load |
tareWeight | string | Tare weight for load |
scale | boolean | Scale |
Upload Load Document
The above command returns JSON structured like this:
{
"_object": "/api/response",
"self": "/document/",
"version": "1.0.0",
"data": {
"documentType": "Bill of Lading",
"url": "https://demo-logistics.s3.amazonaws.com/documents/shipment_AA1LGj20125.png"
},
"error":null
}
This endpoint upload a document for main and sub-customer load.
HTTP Request
POST https://api1.app.portpro.io/v1/loads/document
Request Parameters
Parameter | Type | Description |
---|---|---|
reference_number* | string | The reference_number of the load to update |
documentType* | string | Load document type, One of: ["Bill of Lading","Quote","Proof of Delivery","Delivery Order","TIR - XLS","Rate Confirmation","TIR IN","TIR OUT","TIR Chassis","Packing Slip","Email", "Dock Receipt", "Scale Ticket", "635 Ingate Receipt", "635 Outgate Receipt", "Tolls", "Other", "CONTAINER / CHASSIS- IN - PICTURE", "CONTAINER / CHASSIS -OUT- PICTURE", "GENSET PICTURE IN - PICTURE OUT", "VOID OUT TICKET", "REVISED 1", "REVISED 2", "REVISED 3", "DEMURRAGE (RECEIPT)", "PIER PASS (RECEIPT)", "TEMPERATURE UNIT", "DAMAGED CARGO-BOX", "Haz Mat", "Lumper Receipt", "Invoice", "Rate Con", "Detention PICs", "Seal Import", "Seal Export", "Seal Improper", "Debris Pics", "Per Diem", "Booking Confirmation"] |
file* | file | Load Document. |
customerId | string | Customer unique customer id. Use this parameter while uploading document for Sub-Customer only. |
Change Load Status
The above command returns JSON structured like this:
{
"_object": "/api/response",
"self": "/load-status/ABC_1234",
"version": "1.0.0",
"data": <Load Object>,
"error":null
}
This endpoint update a load status.
Example of load object you can find here.
HTTP Request
PUT https://api1.app.portpro.io/v1/load-status/<reference_number>
Request Parameters
Parameter | Type | Description |
---|---|---|
reference_number* | string | The reference_number of the load to update |
Request Body
Parameter | Type | Description |
---|---|---|
status* | string | Any one of this status: [PENDING, AVAILABLE] |
Retrieve All Loads
200 OK
{
"_object": "/api/response",
"self": "/loads/",
"version": "1.0.0",
"data":[
<Load Object>, <Load Object>
],
"error":null
}
This endpoint retrieve all load.
Example of load object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/loads
Query Parameters
Parameter | Type | Description |
---|---|---|
status | Array[string] | statuses of load |
reference_numbers | Array[string] | Array of load reference_number |
chassis_numbers | Array[string] | Array of load chassis_number |
locations | Array[string] | locations of load |
type_of_load | Array[string] | Type of load |
pickupFrom | date | Pickup from date |
pickUpTo | date | Pickup to date |
deliveryFrom | date | Delivery from date |
deliveryTo | date | Delivery to date |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
skip | int32 | Skip load count |
searchTerm | string | Load search string |
isCsv | boolean | Is csv load or not |
containerNo | string | Container no of container |
chassisNo | string | Chassis number |
caller | Array[string] | Array of caller id |
shipper | Array[string] | Array of shipper id |
consignee | Array[string] | Array of consignee id |
emptyOrigin | Array[string] | Array of origin id |
drivers | Array[string] | Array of driver id |
lastFreeDay | date | Last free date |
statusType | string | Status type of load |
TIMEZONE | string | Timezone of load |
subCustomer | Array[string] | Array of customer id |
isDeleted | boolean | Deleted load or not |
sortBy | object | Sort By with these fields. e.g. sort by object |
billingFrom | date | Billing from date of load |
billingTo | date | Billing to date of load |
isEmailSent | boolean | Is email sent or not of load |
terminal | string | Id of terminal |
isAllSubCustomer | boolean | Is all sub customer or not |
isReadyForPickup | boolean | Is ready for pickup or not |
assigned | boolean | Load is assigned or not |
carrierId | string | CarrierId of load |
fleetCustomerId | string | FleetCustomerId of Customer |
isIncludeDeleted | boolean | Is include load deleted or not |
nextOrPrev | string | Next or prev load |
containerOwner | Array[string] | Array of container owner id |
containerType | Array[string] | Array of container type |
addedBy | Array[string] | Array of user id |
containerSize | Array[string] | Array of container size |
chassisPick | Array[string] | Array of chassis pick |
chassisTermination | Array[string] | Array of chassis terminal |
chassisType | Array[string] | Array of chassis type |
chassisSize | Array[string] | Array of chassis size |
chassisOwner | Array[string] | Array of chassis owner id |
caution | boolean | Is caution or not |
subFilter | string | sub filter of load |
hazmat | boolean | Is hazmat or not |
routeType | string | Route type of load |
overWeight | boolean | Is over weight or not |
officeNote | boolean | Is office not or not |
temperature | string | temperature of load |
isHot | boolean | Is hot or not |
isContainerExists | boolean | Is container exists or not |
droppedCustomerId | string | Dropped customer id |
locationId | string | Location id of load |
isSubCard | boolean | Is sub card or not |
createdFromDate | date | Load created from date |
createdToDate | date | Load created to date |
updatedFrom | date | Load updated from date |
updatedTo | date | Load updated to date |
isCustomerPortal | boolean | Is customer portal or not |
assignedCSR | array | Id of assigned CSR |
createdAtFrom | datetime | Load created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Load created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Load updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Load updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
includeChargeSets | boolean | Pass true for get load related chargeSets |
includeVendorPay | boolean | Pass true for get load related vendor pays |
scale | boolean | Scale |
Retrieve Load By ID
200 OK
{
"_object": "/api/response",
"self": "/loads/",
"version": "1.0.0",
"data": <Load Object>,
"error":null
}
This endpoint retrieve a load detail.
Example of load object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/loads/<reference_number>
Request Parameters
Parameter | Type | Description |
---|---|---|
reference_number* | string | The reference_number of the load |
Query Parameters
Parameter | Type | Description |
---|---|---|
includeChargeSets | boolean | Pass true for get load related chargeSets |
includeVendorPay | boolean | Pass true for get load related vendor pays |
DELETE Load
200 OK
{
"_object": "/api/response",
"self": "/loads/",
"version": "1.0.0",
"data": <Load Object>,
"error":null
}
This endpoint delete a load.
Example of load object you can find here.
HTTP Request
DELETE https://api1.app.portpro.io/v1/loads/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | ID of a load |
GET Document Type of Load
200 OK
{
"_object": "/api/response",
"self": "/load-document-type",
"version": "1.0.0",
"data": [
"Bill of Lading",
"Quote",
"Proof of Delivery",
"Delivery Order",
"TIR",
"Rate Confirmation",
"TIR IN",
"TIR OUT",
"TIR Chassis",
"Packing Slip",
"Email",
"Dock Receipt",
"Scale Ticket",
"635 Ingate Receipt",
"635 Outgate Receipt",
"Tolls",
"Other",
"CONTAINER / CHASSIS- IN - PICTURE",
"CONTAINER / CHASSIS -OUT- PICTURE",
"GENSET PICTURE IN - PICTURE OUT",
"VOID OUT TICKET",
"REVISED 1",
"REVISED 2",
"REVISED 3",
"DEMURRAGE (RECEIPT)",
"PIER PASS (RECEIPT)",
"TEMPERATURE UNIT",
"DAMAGED CARGO-BOX",
"Haz Mat",
"Lumper Receipt",
"Invoice",
"Rate Con",
"Detention PICs",
"Seal Import",
"Seal Export",
"Seal Improper",
"Debris Pics"
],
"error": null
}
This endpoint retrieve document types of load.
HTTP Request
GET https://api1.app.portpro.io/v1/load-document-type
GET Documents of Load
200 OK
{
"_object": "/api/response",
"self": "/load-document",
"version": "1.0.0",
"data": [
{
"type": "Bill of Lading",
"url": "https://s3-us-west-2.amazonaws.com/example/scanner/16402116450809_7760241.pdf"
}
],
"error": null
}
This endpoint retrieve documents of load.
HTTP Request
GET https://api1.app.portpro.io/v1/load-document/
Query Parameters
Parameter | Type | Description |
---|---|---|
reference_number* | string | Reference_number of a load |
doc_type* | string | Document type which you want to retrieve of a load |
GET Charge Codes
200 OK
{
"_object": "/api/response",
"self": "/v1/get-charge-codes",
"version": "1.0.0",
"data": [
{
"_id": "1234",
"name": "BASE PRICE",
"value": "Base Price",
"description": "TEST",
"isActive": true
},
{
"_id": "4567",
"name": "FUEL",
"value": "Fuel",
"description": "TEST",
"isActive": false,
"isAccountsPayable": true,
"isAccountsReceivable": true
}
],
"error": null
}
This endpoint retrieve all charge codes.
HTTP Request
GET https://api1.app.portpro.io/v1/get-charge-codes
Here is Charge response object for parameter reference.
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object. |
name | string | Name of the Charge. |
value | string | Value of the Charge. |
description | string | Description of the Charge. |
isActive | Boolean | Charge is Active or not. |
isAccountsPayable | Boolean | which will be true/false based on the UI designation |
isAccountsReceivable | Boolean | which will be true/false based on the UI designation |
Support Moves
Support Move Object
Demo Support Move object
{
"supportMoveNumber": "S_000004",
"moveStatus": "DISPATCHED",
"typeOfLoad": "SUPPORT",
"supportMoveType": "SM_MANUAL",
"totalDistance": 20,
"distanceUnit": "mi",
"driver": {
"driverId": "652e7ca4ce5d81124gud45h3",
"firstName": "Jhon",
"lastName": "Doe",
"mobile": "9012345678",
"countryCode": "01",
"truck": {
"equipmentId": "1234",
"equipmentType": "TRUCK",
"year": 2034,
"make": "Volvo",
"model": "model1",
"regExpiration": "2025-05-08T07:00:00.000Z",
"licencePlateState": "Washington",
"licencePlateNumber": "GJ 17 KJ 0000",
"annualInspection": "2025-04-25T07:00:00.000Z",
"bobtailInsurance": "2025-06-28T07:00:00.000Z"
}
},
"chassis":{
"id": "652e7ca4ce5d81124gud45h9",
"number": "AXHAMS",
"type": "STANDARD",
"size": "53'",
"owner": "ABC CHASSIS"
},
"driverOrder": [
{
"customer": {
"companyName": "Three",
"address": {
"street": "6 Ferro Avenue",
"city": "New Hartford",
"state": "NY",
"country": "New Hartford",
"zipCode": "13413",
"latitude": 43.0766005,
"longitude": -75.31596929999999
},
"geofence": {
"center": [
-58.371806899054334,
-34.606595822302424
],
"polygon":[
[
-122.684417,
45.527015
],
],
"startPoint": [
-58.371806899054334,
-34.606595822302424
]
}
},
"moveId": "67c064af508eb88eb434faaf",
"eventId": "67c064b1508eb88eb434fb12",
"referenceNumber": "ABC_M100007",
"distance": 0,
"type": "RETURNCONTAINER"
},
{
"customer": {
"companyName": "Two",
"address": {
"street": "174 Jacks Road",
"city": "Spearsville",
"state": "LA",
"country": "Spearsville",
"zipCode": "71277",
"latitude": 32.9778456,
"longitude": -92.61368949999999
},
"geofence": {
"center": [
-73.98796229999999,
40.7499081
],
"polygon": [
[
[
-73.98796229999999,
40.75080742036373
],
]
],
"zoom": 15.91,
"startPoint": [
-58.371806899054334,
-34.606595822302424
]
}
},
"moveId": "67c064af508eb88eb434faaf",
"eventId": null,
"referenceNumber": null,
"distance": 1373.51,
"type": "DROPCHASSIS"
}
],
"driverPay": [
{
"driverName": "Jhon Doe",
"from": "Three, New Hartford, NY",
"to": "Two, Spearsville, LA",
"fromEventId": "67c94c272f2a6b971b70c882",
"toEventId": "67c94c272f2a6b971b70c883",
"startDate": "2025-03-02T06:00:00.000Z",
"endDate": "2025-03-09T05:59:59.999Z",
"taxAmount": 0,
"amount": 100,
"status": "BASE PRICE",
"finalAmount": 100,
"createdAt": "2025-03-06T09:15:04.559Z",
"updatedAt": "2025-03-06T09:15:04.559Z"
}
],
"loadAssignedDate": "2025-02-28T06:17:28.941Z",
"loadId": "67c064af508eb88eb434fa81",
"destinationETA": "2025-03-20T14:30:00.000Z",
"branch": "67c064af508eb88eb434fa81",
"createdAt": "2025-03-06T07:17:59.057Z",
"updatedAt": "2025-03-07T12:33:42.503Z"
},
Here is support move response object for parameter reference.
Parameter | Type | Description |
---|---|---|
supportMoveNumber | string | Support Move Reference Number |
moveStatus | string | Status of Support Move |
typeOfLoad | string | Load Type |
supportMoveType | string | Support Move type, One of [SM_MANUAL, SM_SYSTEM] |
totalDistance | int32 | Total distance for the move |
distanceUnit | string | Unit of measurement (km or mi) |
driver | object | Driver details with equipment information |
chassis | object | Chassis Details |
driverOrder | array | Array of object with customer information |
driverPay | array | Array of driver pay |
loadAssignedDate | date/string | Load Assigned date |
loadId | string | Unique Id for each load |
destinationETA | string | Estimated time of arrival (ETA) of move |
branch | string | Branch of load |
createdAt | date/string | Created timestring of support move |
updatedAt | date/string | Updated timestring of support move |
Retrieve Support Moves
200 OK
{
"_object": "/api/response",
"self": "/v1/support-move",
"version": "1.0.0",
"count": 111,
"data": [<support move object>],
"error": null
}
This endpoint retrieves Support Moves.
Example of support move object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/support-move
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the support move to retrieve |
limit | int32 | Count of items in each page. Should be between 1 and 50 (inclusive) |
referenceNumbers | Array[string] | Array of Reference Number of the specific Load |
supportMoveNumbers | Array[string] | Array of Support Move Number of the specific Support Move |
loadIds | Array[string] | Array of Unique Load Id of the specific Load |
moveIds | Array[string] | Array of Unique Move Id of the specific Load |
driverIds | Array[string] | Array of Unique driver Id |
branchIds | Array[string] | Array of Unique branch Id |
includeDriverPay | boolean | Pass true for get support move related driver pay |
createdAtFrom | datetime | Support Move created from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
createdAtTo | datetime | Support Move created to datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Support Move updated from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
updatedAtTo | datetime | Support Move updated to datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
Webhooks
Webhook Endpoints
Webhook endpoints can be created in your account's Settings section. They allow you to be notified of changes on your PortPro data and events for your shipments.
Setting a Secret Token
To authorize, use this method:
{
"Content-Type" : "application/json",
"X-Hub-Signature": "sha1=<Your TOKEN>"
}
Make sure to replace
<Your TOKEN>
with your Access Token.
In order to verify that only requests coming from PortPro are allowed into your system, we require you to set a secret token for each of your endpoints. PortPro sends an X-Hub-Signature header with the value set as demonstrated on the right with each message. By verifying this header matches your expectations, we can ensure that only people with the secret token can send data to your endpoint.
X-Hub-Signature": sha=<Your TOKEN KEY>
Payloads
The payload for a webhook is an Event object.
PortPro uses secret hash signature. This hash signature is passed along with each request in the headers as X-Hub-Signature. To validate the payload:
- Generate a signature using the PortPro Developer Portal.
- Compare your signature to the signature in the X-Hub-Signature header string. If they match, then the payload is genuine.
Response
PortPro expects to receive an HTTP 200 response code from your endpoint. We will continue trying to deliver the message a number of times if we don’t receive one. To prevent time outs, it is wise to configure your endpoints to send a 200 and then do any long running processing on the data.
Events
load#created webhook example payload
{
"event_type": "load#created",
"data": {
"data": {
"reference_number": "CG167_FAKE_1023330",
"type_of_load": "IMPORT",
"status": "PENDING",
"hazmat": false,
"hot": false,
"isStreetTurn": false,
"liquor": false,
"scale": false,
"distance": 0,
"pickupTimes": [
{
"customerId": "64fakeId44bf291161e437211",
"_id": "123345560cbfa7d67a2a522ee"
}
],
"deliveryTimes": [
{
"customerId": "64fakeId44bf291161e437211",
"_id": "123345560cbfa7d67a2a522ee"
}
],
"deliveryReference": [
{
"customerId": "64fakeId44bf291161e437211",
"customerName": "Training customers",
"_id": "123345560cbfa7d67a2a522ee"
}
],
"pricing": [],
"isDeleted": false,
"isPaymentCompleted": false,
"isLive": false,
"isPrePullCharge": false,
"isNextContainerNeedToPickup": false,
"radio": 0,
"isloadStartable": false,
"isReadyForPickup": false,
"isHot": false,
"isLoadDropAtYard": false,
"isLoadDropAtPull": false,
"totalWeight": 0,
"paidAmount": 0,
"totalAmount": 0,
"remainAmount": 0,
"taxAmount": 0,
"totalTaxAmount": 0,
"remainTaxAmount": 0,
"isConfirm": false,
"overWeight": false,
"overHeight": false,
"brokerHold": false,
"carrierHold": false,
"invoiceAutoEmailDate": [],
"invoiceAutoEmailAudit": [],
"preSetOrderStatus": "",
"addedBy": "12abcdef34bf291161e43720f",
"caller": "1234567b1bdb3015c880bcaf",
"callerName": "TFLY",
"callerInfo": {
"company_name": "TFLY",
"address": {
"address": "197 Knickerbocker Road, Tenafly, NJ 07670, US",
"lat": 40.9189513,
"lng": -73.97870999999999
},
"city": "Tenafly",
"state": "NJ",
"country": "US",
"zipcode": "07670"
},
"shipper": [
"1234567291161e437211"
],
"shipperName": "APM",
"shipperAddress": "5080 MCLESTER ST, ELIZABETH, NJ 07207, US",
"shipperInfo": {
"company_name": "APM",
"address": {
"address": "5080 McLester St, Elizabeth, NJ 07207, US",
"lat": 40.669178,
"lng": -74.15911919999999
},
"city": "Elizabeth",
"state": "NJ",
"country": "US",
"zipcode": "07207"
},
"consignee": [
"1234567036516dac0b87c"
],
"consigneeName": "TRAINING CUSTOMERS",
"consigneeAddress": "19 COLUMBUS DRIVE, TENAFLY, NJ 07670, US",
"consigneeInfo": {
"company_name": "TRAINING CUSTOMERS",
"address": {
"address": "19 Columbus Drive, Tenafly, NJ 07670, US",
"lat": 40.9321644,
"lng": -73.96629999999999
},
"city": "Tenafly",
"state": "NJ",
"country": "US",
"zipcode": "07670"
},
"customerEmployee": [],
"carrier": "12345678f291161e43720f",
"terminal": "12345678e1d5c7996afb88904",
"isMigrated": true,
"allowDriverCompletion": false,
"isEdi": false,
"isStatusOrderMigrated": false,
"acceptRejectCode": "Default",
"isLastFreeDay": false,
"assignedCSR": [],
"isGrayPool": false,
"qbExportDates": [],
"qboExportDates": [],
"isDrayosTrackosError": [],
"isUserEnteredStatus": false,
"isUserEnteredfreight": true,
"isUserEnteredcustom": true,
"isUserEnteredlastFreeDay": true,
"isUserEnteredvessel": true,
"isUserEnteredcontainerSize": true,
"isUserEnteredcontainerType": true,
"isUserEnteredcontainerOwner": true,
"isUserEnterdischargedDate": true,
"isUserEnteredreleaseNo": true,
"isUserEntereddeliveryOrderNo": true,
"isUserEnteredingateDate": true,
"isUserEnteredoutgateDate": true,
"isUserEnteredsealNo": true,
"isUserEnteredcallerbillLandingNo": true,
"isUserEnteredbrokerHold": true,
"isUserEnteredcutOff": true,
"isUserEnteredcontainerAvailableDay": true,
"isUserEnteredreturnNo": true,
"isUserEnteredcallerPONo": true,
"isUserEnteredchassisNo": true,
"myAppPerDiemAuditStatus": "Draft",
"isGenset": false,
"isUserEnteredPickupTar": false,
"isUserEnteredEmptyTar": false,
"allTenders": [],
"totalMarginAmount": 0,
"totalExpenseAmount": 0,
"marginPercent": 0,
"appointmentUpdatedByUser": [],
"isContainerInvalid": false,
"isUserEnteredPickupTimes": true,
"isUserEnteredReturnTimes": true,
"chargeStatus": "",
"masterSearchText": "{CG167_FAKE_1023330}",
"billing": [],
"createSource": "MANUALLY",
"myDates": {
"lockedMyDates": []
},
"cautionCount": 0,
"_id": "12345678cbfa7d67a2a522ed",
"liftOffReference": [],
"chargeConflicts": [],
"expense": [],
"additionalPricing": [],
"items": [],
"statusHistory": [],
"paymentHistory": [],
"expenseHistory": [],
"statusOrder": [],
"driverOrder": [],
"documents": [],
"ediDateTime": [],
"requestedPickupTimes": [],
"requestedReturnTimes": [],
"createdAt": "2025-01-24T22:38:24.757Z",
"updatedAt": "2025-01-24T22:38:24.757Z",
"__v": 0
},
"eventType": "load#created"
},
"response": {
"statusCode": 201,
"data": "{\n \"data\": {\n \"reference_number\": \"CG167_FAKE_1023330\",\n \"type_of_load\": \"IMPORT\",\n \"status\": \"PENDING\",\n \"hazmat\": false,\n \"hot\": false,\n \"isStreetTurn\": false,\n \"liquor\": false,\n \"scale\": false,\n \"distance\": 0,\n \"pickupTimes\": [\n {\n \"customerId\": \"64fakeId44bf291161e437211\",\n \"_id\": \"12345678cbfa7d67a2a522ed\"\n }\n ],\n \"deliveryTimes\": [\n {\n \"customerId\": \"64fakeId44bf291161e437211\",\n \"_id\": \"12345678cbfa7d67a2a522ed\"\n }\n ],\n \"deliveryReference\": [\n {\n \"customerId\": \"64fakeId44bf291161e437211\",\n \"customerName\": \"Training customers\",\n \"_id\": \"12345678cbfa7d67a2a522ed\"\n }\n ],\n \"pricing\": [],\n \"isDeleted\": false,\n \"isPaymentCompleted\": false,\n \"isLive\": false,\n \"isPrePullCharge\": false,\n \"isNextContainerNeedToPickup\": false,\n \"radio\": 0,\n \"isloadStartable\": false,\n \"isReadyForPickup\": false,\n \"isHot\": false,\n \"isLoadDropAtYard\": false,\n \"isLoadDropAtPull\": false,\n \"totalWeight\": 0,\n \"paidAmount\": 0,\n \"totalAmount\": 0,\n \"remainAmount\": 0,\n \"taxAmount\": 0,\n \"totalTaxAmount\": 0,\n \"remainTaxAmount\": 0,\n \"isConfirm\": false,\n \"overWeight\": false,\n \"overHeight\": false,\n \"brokerHold\": false,\n \"carrierHold\": false,\n \"invoiceAutoEmailDate\": [],\n \"invoiceAutoEmailAudit\": [],\n \"preSetOrderStatus\": \"\",\n \"addedBy\": \"12abcdef34bf291161e43720f\",\n \"caller\": \"1234567b1bdb3015c880bcaf\",\n \"callerName\": \"TFLY\",\n \"callerInfo\": {\n \"company_name\": \"TFLY\",\n \"address\": {\n \"address\": \"197 Knickerbocker Road, Tenafly, NJ 07670, US\",\n \"lat\": 40.9189513,\n \"lng\": -73.97870999999999\n },\n \"city\": \"Tenafly\",\n \"state\": \"NJ\",\n \"country\": \"US\",\n \"zipcode\": \"07670\"\n },\n \"shipper\": [\n \"1234567291161e437211\"\n ],\n \"shipperName\": \"APM\",\n \"shipperAddress\": \"5080 MCLESTER ST, ELIZABETH, NJ 07207, US\",\n \"shipperInfo\": {\n \"company_name\": \"APM\",\n \"address\": {\n \"address\": \"5080 McLester St, Elizabeth, NJ 07207, US\",\n \"lat\": 40.669178,\n \"lng\": -74.15911919999999\n },\n \"city\": \"Elizabeth\",\n \"state\": \"NJ\",\n \"country\": \"US\",\n \"zipcode\": \"07207\"\n },\n \"consignee\": [\n \"1234567036516dac0b87c\"\n ],\n \"consigneeName\": \"TRAINING CUSTOMERS\",\n \"consigneeAddress\": \"19 COLUMBUS DRIVE, TENAFLY, NJ 07670, US\",\n \"consigneeInfo\": {\n \"company_name\": \"TRAINING CUSTOMERS\",\n \"address\": {\n \"address\": \"19 Columbus Drive, Tenafly, NJ 07670, US\",\n \"lat\": 40.9321644,\n \"lng\": -73.96629999999999\n },\n \"city\": \"Tenafly\",\n \"state\": \"NJ\",\n \"country\": \"US\",\n \"zipcode\": \"07670\"\n },\n \"customerEmployee\": [],\n \"carrier\": \"12345678f291161e43720f\",\n \"terminal\": \"12345678e1d5c7996afb88904\",\n \"isMigrated\": true,\n \"allowDriverCompletion\": false,\n \"isEdi\": false,\n \"isStatusOrderMigrated\": false,\n \"acceptRejectCode\": \"Default\",\n \"isLastFreeDay\": false,\n \"assignedCSR\": [],\n \"isGrayPool\": false,\n \"qbExportDates\": [],\n \"qboExportDates\": [],\n \"isDrayosTrackosError\": [],\n \"isUserEnteredStatus\": false,\n \"isUserEnteredfreight\": true,\n \"isUserEnteredcustom\": true,\n \"isUserEnteredlastFreeDay\": true,\n \"isUserEnteredvessel\": true,\n \"isUserEnteredcontainerSize\": true,\n \"isUserEnteredcontainerType\": true,\n \"isUserEnteredcontainerOwner\": true,\n \"isUserEnterdischargedDate\": true,\n \"isUserEnteredreleaseNo\": true,\n \"isUserEntereddeliveryOrderNo\": true,\n \"isUserEnteredingateDate\": true,\n \"isUserEnteredoutgateDate\": true,\n \"isUserEnteredsealNo\": true,\n \"isUserEnteredcallerbillLandingNo\": true,\n \"isUserEnteredbrokerHold\": true,\n \"isUserEnteredcutOff\": true,\n \"isUserEnteredcontainerAvailableDay\": true,\n \"isUserEnteredreturnNo\": true,\n \"isUserEnteredcallerPONo\": true,\n \"isUserEnteredchassisNo\": true,\n \"myAppPerDiemAuditStatus\": \"Draft\",\n \"isGenset\": false,\n \"isUserEnteredPickupTar\": false,\n \"isUserEnteredEmptyTar\": false,\n \"allTenders\": [],\n \"totalMarginAmount\": 0,\n \"totalExpenseAmount\": 0,\n \"marginPercent\": 0,\n \"appointmentUpdatedByUser\": [],\n \"isContainerInvalid\": false,\n \"isUserEnteredPickupTimes\": true,\n \"isUserEnteredReturnTimes\": true,\n \"chargeStatus\": \"\",\n \"masterSearchText\": \"{CG167_FAKE_1023330}\",\n \"billing\": [],\n \"createSource\": \"MANUALLY\",\n \"myDates\": {\n \"lockedMyDates\": []\n },\n \"cautionCount\": 0,\n \"_id\": \"12345678cbfa7d67a2a522ed\",\n \"liftOffReference\": [],\n \"chargeConflicts\": [],\n \"expense\": [],\n \"additionalPricing\": [],\n \"items\": [],\n \"statusHistory\": [],\n \"paymentHistory\": [],\n \"expenseHistory\": [],\n \"statusOrder\": [],\n \"driverOrder\": [],\n \"documents\": [],\n \"ediDateTime\": [],\n \"requestedPickupTimes\": [],\n \"requestedReturnTimes\": [],\n \"createdAt\": \"2025-01-24T22:38:24.757Z\",\n \"updatedAt\": \"2025-01-24T22:38:24.757Z\",\n \"__v\": 0\n },\n \"eventType\": \"load#created\",\n \"id\": 101\n}"
},
"_id": 13912516,
"createdAt": "2025-01-24T22:38:25.041Z",
"updatedAt": "2025-01-24T22:38:25.041Z",
"webhookUrl": "https://jsonplaceholder.typicode.com/posts"
}
{
"_id": "1234",
"eventType": "load#created",
"webhookUrl": "https://jsonplaceholder.typicode.com/posts",
"data": {
"changedValues": {Object of changed values},
"_id": {Database id},
"eventType": {Webhook Event Type}
},
"response": {
"statusCode": 201,
"data": "{\n \"_id\": \"1234\",}"
},
"createdAt": "2022-01-04T10:02:02.687Z",
"updatedAt": "2022-01-04T10:02:02.687Z",
"__v": 0
}
1. Under Developer Settings, when User selects Load Info Update event (load#info_updated), they will also receive Appointment webhooks when those are added on a load via API or UI.
a. Payloads for Pickup and Delivery will provide From and To timestamps , resembling
i. Pickup Appt
{
"changedValues": {
"pickupTimes": [
{
"customerId": "658ba8a9b002cc7897297770",
"_id": "669dff35766312e0171aed46",
"pickupFromTime": "2024-07-03T04:00:00.000Z",
"pickupToTime": "2024-07-03T04:00:00.000Z"
}
]
},
"_id": "669dff35766312e0171aed45",
"reference_number": "ABC_PRO_M100319",
"eventType": "load#info_updated"
}
ii. Delivery Apt
{
"changedValues":{
"deliveryTimes": [
{
"customerId": "658ba8b0b002ccd4f52977ca",
"_id": "669dff35766312e0171aed47",
"deliveryFromTime": "2024-07-24T04:00:00.000Z",
"deliveryToTime": "2024-07-24T04:00:00.000Z"
}
]
},
"_id": "669dff35766312e0171aed45",
"reference_number": "ABC_PRO_M100319",
"eventType": "load#info_updated"
}
b. Payloads for Return app will provide From and To timestamps , resembling (different than Pickup and Delivery)
i. Return Apt
{
"changedValues": {
"returnFromTime": "2024-07-23T07:00:00.000Z",
"returnToTime": "2024-07-23T07:00:00.000Z"
},
"_id": "669e098cc69f32ede16942f2",
"reference_number": "SCAL_M106280",
"eventType": "load#info_updated"
}
This page describes the different event types which will trigger a Event object to be sent to your registered Webhook Endpoints.
Load Info Events
For all Load Events, the data field of the Event webhook payload is a load event data object.
Name | Type | Description |
---|---|---|
Load Created | load#created | Triggered when a new load is created. |
Load Info Update | load#info_updated | Triggered when load info fields are updated (includes location or appointment fields). Pickup and Delivery response payloads can be arrays which account for multiple locations, while Return response payloads will only contain a single object. |
Load Dates Update | load#dates_updated | Triggered when load dates fields are updated. |
Load Equipment Update | load#equipment_updated | Triggered when load equipment fields are updated. |
Load Reference Numbers Update | load#reference_updated | Triggered when load reference numbers fields are changed. |
Load Freight Description Update | load#reference_updated | Triggered when load freight description fields are changed. |
Load Hold Update | load#hold_updated | Triggered when load holds fields are changed. |
Load En-Route | load#routing_update | Triggered when load routings are updated. |
Dispatcher Events
For all Load Status Events, the data field of the Event webhook payload is a load status event data object.
We're managing below status for now. "PENDING", "CUSTOMS HOLD", "FREIGHT HOLD", "AVAILABLE", "DISPATCHED", "DROPPED", "COMPLETED", "BILLING", "PARTIAL_PAID", "FULL_PAID"
Name | Type | Description |
---|---|---|
Load Status Update | load#status_updated | Triggered when load status is changed. |
Invoice Events
Sample payload for invoice#created
{
{
"data": {
"_id": "999915",
"total": 1,
"invoice": [
{
"load_reference_number": "ABCD_M199937",
"reference_number": "999915",
"pricing": [
{
"amount": 0,
"chargePerDay": 0,
"labelName": "BASE PRICE",
"labelValue": "Base Price",
"chargePerMinute": 0,
"finalAmount": "45.00",
"unit": "1.00",
"freeDays": 0,
"perType": "",
"name": "BASE PRICE",
"description": "",
"dynamicPricingId": null,
"chargeType": "MANUALLY_CHANGED",
"customerRateId": null,
"type": "percentage",
"chargeName": "BASE PRICE",
"percentageOf": [],
"_id": "6123456789123491fd1dd",
"createdAt": "2025-02-03T09:06:52.209Z",
"chargeCode": "Base Price"
}
],
"status": "BILLING",
"paidAmount": 0,
"totalAmount": 45,
"remainAmount": 45,
"billingDate": "2025-02-03T04:06:46.000Z",
"caller": {
"_id": "6123456789123491fd1dd",
"company_name": "GIS",
"currency": "",
"payment_terms": 0
},
"callerName": "GIS",
"referenceFields": {},
"taxDetails": {},
"taxAmount": 0,
"totalTaxAmount": 45,
"remainTaxAmount": 45,
"chargeSetNumber": "ABCD_M199937",
"billingNote": ""
}
],
"createdAt": "2025-02-03T09:07:11.405Z",
"updatedAt": "2025-02-03T09:07:11.405Z"
},
"dbId": "6123456789123491fd1dd",
"changedValues": {
"status": "BILLING"
},
"eventType": "invoice#created"
}
For Invoice Events, the data field of the Event webhook payload is a invoice event data object.
Name | Type | Description |
---|---|---|
Invoice Create | invoice#created | Triggered when invoice created for load. And it will retrigger with the same payload if user recreates invoice using Rebill option. |
Billing Charges updated | invoice#charges_updated | Triggered when billing charges updated for load. |
Additional Chargeset Added (formerly Sub Bill Added) | invoice#sub_bill_added | Triggered when additional chargesets are added on a load. |
Additional Chargeset Charges Updated (formerly Sub Bill Charges Updated) | invoice#sub_bill_charges_updated | Triggered when the charges are updated on additional chargesets of a load. |
Document Events
For all Document Events, the data field of the Event webhook payload is a document Event Data object.
Name | Type | Description |
---|---|---|
POD Added | document#pod_added | Triggered when a Proof Of Delivery document is uploaded in load. |
TIR IN Added | document#tir_in_added | Triggered when a TIR IN document is uploaded in load. |
TIR OUT Added | document#tir_out_added | Triggered when a TIR OUT document is uploaded in load. |
Delivery Order Added | document#delivery_order_added | Triggered when a Delivery Order document is uploaded in load. |
Invoice Added | document#invoice_added | Triggered when an Invoice document is uploaded in load. |
Bill of Lading Added | document#bo_added | Triggered when a Bill Of Lading document is uploaded in load. |
Rate Con Added | document#rate_cron_added | Triggered when a Rate Con document is uploaded in load. |
Driver Events
For all Driver Events, the data field of the Event webhook payload is a Driver Event Data object.
Name | Type | Description |
---|---|---|
Driver Details Update | driver#updated | Triggered when a driver details is updated. |
List all webhook events
200 OK
{
"_object": "/api/response",
"self": "/events/",
"version": "1.0.0",
"data": [<Event objects>, <Event objects>],
"error":null
}
Returns a list of all events delivered to any webhook registered by this client
Example of event object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/webhook/
Query Parameters
Parameter | Type | Description |
---|---|---|
type | array | Filter by one of the type of the event, ["load", "invoice", "document", "driver"] |
occurred_from | date/string | Filter by events which occurred on or after this datetime |
occurred_to | date/string | Filter by events which occurred on or before this datetime |
Retrieve a single webhook event
200 OK
{
"_object": "/api/response",
"self": "/events/",
"version": "1.0.0",
"data": <Event objects>,
"error":null
}
Returns a event delivered to any webhook registered by this client
Example of event object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/webhook/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the event object to be retrieved |
Customers
Customer Object
Demo Customer object
{
"_id": "1234",
"updatedAt": "2022-04-26T08:35:36.568Z",
"createdAt": "2020-03-30T16:39:23.867Z",
"companyID": "APMConsi3316",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07302",
"mobile": "",
"email": "apm1@gmail.com",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"carrier": "1234",
"qbEmail": "",
"__v": 1,
"balance": 0,
"customerTags": [
"consignee"
],
"mcNumber": null,
"notificationEmails": "",
"portPassword": "",
"portUsername": "",
"receiverEmail": null,
"currency": "",
"officeHoursEnd": null,
"officeHoursStart": null,
"secondaryPhoneNo": "",
"address1": "450 Grand St",
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": false,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 307,
"geofence": {
"zoom": 10.91,
"polygon": [
[
[
-74.08017377242187,
40.73149112366252
],
[
-74.03413053714236,
40.73398325199352
],
[
-74.03120715712467,
40.70517963204705
],
[
-74.07688496990146,
40.702686425153814
],
[
-74.0922327149948,
40.715705476638874
],
[
-74.08017377242187,
40.73149112366252
]
]
],
"center": [
"-74.0545",
"40.7174"
]
},
"customerType": [
"consignee"
],
"isEmailNeedToSend": true,
"documents": [],
"newTerminal": [],
"isDeleted": true,
"account_hold": false,
"secondary_contact_name": "",
"main_contact_name": "",
"isAddressVerified": false,
"address": {
"lng": -74.05453709999999,
"lat": 40.7173673,
"address": "450 Grand St, Jersey City, NJ 07302, USA",
"address1": "450 Grand St",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07302"
},
"company_name": "APM consi"
}
Here is customer response object for parameter reference.
You can find customer(caller) object in Caller object
Retrieve All Customers
200 OK
{
"_object": "/api/response",
"self": "/v1//customer",
"version": "1.0.0",
"count": 100,
"data": [
{
"_id": "1234",
"updatedAt": "2022-04-26T08:35:36.568Z",
"createdAt": "2020-03-30T16:39:23.867Z",
"companyID": "APMConsi3316",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07302",
"mobile": "",
"email": "apm1@gmail.com",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"carrier": "1234",
"qbEmail": "",
"__v": 1,
"balance": 0,
"customerTags": [
"consignee"
],
"mcNumber": null,
"notificationEmails": "",
"portPassword": "",
"portUsername": "",
"receiverEmail": null,
"currency": "",
"officeHoursEnd": null,
"officeHoursStart": null,
"secondaryPhoneNo": "",
"address1": "450 Grand St",
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": false,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 307,
"geofence": {
"zoom": 10.91,
"polygon": [
[
[
-74.08017377242187,
40.73149112366252
],
[
-74.03413053714236,
40.73398325199352
],
[
-74.03120715712467,
40.70517963204705
],
[
-74.07688496990146,
40.702686425153814
],
[
-74.0922327149948,
40.715705476638874
],
[
-74.08017377242187,
40.73149112366252
]
]
],
"center": [
"-74.0545",
"40.7174"
]
},
"customerType": [
"consignee"
],
"isEmailNeedToSend": true,
"documents": [],
"newTerminal": [],
"isDeleted": true,
"account_hold": false,
"secondary_contact_name": "",
"main_contact_name": "",
"isAddressVerified": false,
"address": {
"lng": -74.05453709999999,
"lat": 40.7173673,
"address": "450 Grand St, Jersey City, NJ 07302, USA",
"address1": "450 Grand St",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07302"
},
"company_name": "APM consi"
}
],
"error": null
}
This endpoint retrieves all customers.
HTTP Request
GET https://api1.app.portpro.io/v1/customer/
Query Parameters
Parameter | Type | Description |
---|---|---|
profileIds | Array | Array of customer ids. |
skip | int32 | Skip number of the customer to retrieve. |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
searchTerm | string | Search term for search customer. |
nameSearch | string | Name search term for search customer. |
carrierId | string | Carrier Id of load for customer. |
isDeleted | boolean | For get only deleted customers. |
isGetAll | boolean | For get all customers(active + deleted). |
customerType | array | Customer type for customer. |
sortBy | object | For get sorted invoices which include key like createdAt. |
choosenTerminals | string | Choose terminals for customers. |
isIncludeDeleted | boolean | Is include deleted customers. |
allIds | array | Get all customers. |
fieldName | string | Field name of the customer for searchTerm search. |
isCustomerLogin | boolean | Customer Login or not. |
account_hold | boolean | Customer account hold or not. |
createdFrom | date | Customer created from date |
createdTo | date | Customer created to date |
updatedFrom | date | Customer updated from date |
updatedTo | date | Customer updated to date |
createdAtFrom | datetime | Customer created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Customer created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Customer updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Customer updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
isInvalid | boolean | Customer is valid or not. |
Create Customer
200 OK
{
"_object": "/api/response",
"self": "/v1//customer/",
"version": "1.0.0",
"data": {
"statusCode": 201,
"message": "Created Successfully",
"data": {
"user": {
"__v": 0,
"updatedAt": "2022-04-28T07:14:45.378Z",
"createdAt": "2022-04-28T07:14:45.378Z",
"customer": {
"__v": 0,
"updatedAt": "2022-04-28T07:14:44.942Z",
"createdAt": "2022-04-28T07:14:44.942Z",
"companyID": "erterter",
"address1": "aasdasdadsd",
"city": "Portland",
"state": "Oregon",
"country": "United States",
"zip_code": "97204",
"mobile": "",
"email": "8gemziog1rpn@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"carrier": "1234",
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"_id": "1234",
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": true,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 1,
"geofence": {
"polygon": [],
"center": []
},
"customerType": [
"ALL"
],
"isEmailNeedToSend": true,
"documents": [],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": null,
"main_contact_name": "yashkals",
"isAddressVerified": false,
"address": {
"address": "828 SW 2nd Ave, Portland, OR 97204, USA",
"lat": 45.5168016,
"lng": -122.6750425,
"address1": "aasdasdadsd",
"city": "asdad",
"state": "adsdasd",
"country": "sdfsdf",
"zip_code": "45641"
},
"company_name": "rtttttttt"
},
"email": "8gemziogzirpn@portpro.io",
"username": "8gemzg11zirpn@portpro.io",
"carrier": "1234",
"role": "customer",
"_id": "1234",
"edi210Callers": [],
"qboCustomFields": [],
"qbBillingDateStatus": "APPROVED",
"isInvoiceWithShortName": false,
"isTerminalClass": false,
"isCanada": false,
"groupedCities": [],
"itineraryColumnSorting": [],
"isChassisTrackingEnabled": false,
"isExtraDataFromTracer": false,
"rowColorPreferences": [],
"ftpConnections": [],
"isAllowSystem": false,
"driverAccountHold": false,
"accountHoldEnabled": false,
"equipmentParameters": [],
"requireReference": false,
"isDefaultSSLAdded": true,
"isOnBoardingDone": false,
"driverPreferences": false,
"isMailConnected": false,
"reports": [],
"groupChats": [],
"groupedProfiles": [],
"groupedCustomers": [],
"defaultPayCustomers": [],
"doubleDispatch": [],
"permissions": [],
"qbConnection": false,
"isPickupNotificationShow": false,
"isStatusNotificationShow": true,
"documents": [],
"acl": [],
"newDeduction": [],
"deduction": [],
"deviceToken": "",
"buildNo": 0,
"os": "",
"vApp": "",
"work_number": "",
"uniqueId": "gem849",
"policy": "",
"isDelinquet": false,
"isTrialUser": false,
"isExpired": false,
"isMobileVerified": false,
"isEmailVerified": true,
"isDeleted": false,
"isAdminVerified": true,
"isAdminRejected": false,
"isBlocked": false,
"permissionRoles": [],
"notifyBy": [],
"approvedBy": [],
"fleetCustomers": [],
"passwordResetToken": "1",
"referralCreditAmount": 0,
"referralCode": "",
"lastName": null,
"name": "rtttttttt"
}
}
},
"error": null
}
This endpoint create customers.
HTTP Request
POST https://api1.app.portpro.io/v1/customer
Request Body Parameters
Parameter | Type | Description |
---|---|---|
companyID* | string | Company id of customer. |
company_name* | string | Company name of customer. |
address* | object | Object of address, address1, city, state, country, zip_code, lat and lng. |
address1* | string | Address1 of customer. |
isAddressVerified* | boolean | Address verified or not of customer. |
isInvalid | boolean | Customer is valid or not. |
city* | string | City name of address. |
state* | string | State name of address. |
country* | string | Country name of address. |
zip_code* | string | Zip code of address. |
main_contact_name | string | Main contact name of customer. |
secondary_contact_name | string | Secondary contact name of customer. |
mobile | string | Mobile number of customer. |
string | Email of customer. | |
qbEmail | string | Qb Email of customer. |
billingEmail | string | Billing email of customer. |
extraEmail | string | Extra email of customer. |
password | string | Password of customer. |
credit_limit | string | Credit limit of customer. |
payment_terms | string | Payment terms of customer. |
account_hold | boolean | Account on hold or not of customer. |
filename | string | File name document for customer. |
isDeleted | boolean | Is deleted customer or not. |
isEmailNeedToSend | boolean | Is deleted customer or not. |
document | file | Document file of customer. |
fileType | string | File type of file. |
documents | string | Documents of customer. |
customerType | array | Customer type of customer. |
newTerminal | array | New Terminals of customer. |
receiverEmail | string | Receiver email of customer. |
geofence | object | Geofence of customer. |
fleetCustomer | string | Fleet customer id. |
notes | string | Notes for customer. |
payType | string | Pay type of customer. |
mcNumber | string | MC number of customer. |
notificationEmails | string | Notification email of customer. |
isSendNotificationEmail | string | Send notification email of customer. |
isSendContainerNotification | boolean | Send container notification to customer or not. |
isSendPODEmail | boolean | Is send POD notification to customer or not. |
emailStatuses | array | Email statuses of customer. |
portUsername | string | Port username of customer. |
portPassword | string | Port password of customer. |
doc_all | boolean | Is Document all of customer. |
doc_tir | boolean | Is Document tir of customer. |
doc_pod | boolean | Is Document pod of customer. |
doc_none | boolean | Is Document none of customer. |
extraSubCustomer | array | Document all of customer. |
salesAgents | array | Sales agent of customer. |
customerTags | array | Customer tags of customer. |
balance | number | Balance of customer. |
canEditLoad | boolean | Is customer can edit load or not. |
isTIROptional | boolean | Is TIR option or not. |
secondaryPhoneNo | string | Secondary phone no of customer. |
officeHoursStart | date | Office hour start time of customer. |
officeHoursEnd | date | Office hour end time of customer. |
isSendEmailDeliveryAppointmentChanged | boolean | Send email for delivery appointment changed or not to customer. |
isSendEmailPricingDetailEmail | boolean | Send email for pricing detail or not to customer. |
isSendEmailContainerAvailable | boolean | Send email for container available or not to customer. |
isSendEmailContainerAdd | boolean | Send email for container add or not to customer. |
isSendEmailLoadAccepted | boolean | Send email for load accepted or not to customer. |
isSendEmailContainerReadyForPickup | boolean | Send email for container ready for pickup or not to customer. |
currency | string | Currency of customer. |
externalSystemID | string | External system id. |
Update Customer
200 OK
{
"_object": "/api/response",
"self": "/v1//customer/1234",
"version": "1.0.0",
"data": {
"statusCode": 201,
"message": "Created Successfully",
"data": {
"_id": "1234",
"updatedAt": "2022-04-28T06:41:25.925Z",
"createdAt": "2022-04-28T05:46:47.564Z",
"companyID": "asasdasdas",
"address1": "aasdasdadsd",
"city": "Portland",
"state": "Oregon",
"country": "United States",
"zip_code": "97204",
"mobile": "",
"email": "nuwlklhxt8vc@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"carrier": "1234",
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"__v": 0,
"mcNumber": null,
"notificationEmails": null,
"receiverEmail": null,
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": true,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 1,
"geofence": {
"polygon": [],
"center": []
},
"customerType": [
"ALL"
],
"isEmailNeedToSend": false,
"documents": [],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": null,
"main_contact_name": "yashkals",
"isAddressVerified": false,
"address": {
"zip_code": "45641",
"country": "sdfsdf",
"state": "adsdasd",
"city": "asdad",
"address1": "aasdasdadsd",
"lng": -122.6750425,
"lat": 45.5168016,
"address": "828 SW 2nd Ave, Portland, OR 97204, USA"
},
"company_name": "hhhhh456312"
}
},
"error": null
}
This endpoint update customers.
HTTP Request
PUT https://api1.app.portpro.io/v1/customer/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the customer object. |
Request Body Parameters
Parameter | Type | Description |
---|---|---|
companyID | string | Company id of customer. |
company_name | string | Company name of customer. |
address | object | Object of address, address1, city, state, country, zip_code, lat and lng. |
address1 | string | Address1 of customer. |
isAddressVerified | boolean | Address verified or not of customer. |
isInvalid | boolean | Customer is valid or not. |
city | string | City name of address. |
state | string | State name of address. |
country | string | Country name of address. |
zip_code | string | Zip code of address. |
main_contact_name | string | Main contact name of customer. |
secondary_contact_name | string | Secondary contact name of customer. |
mobile | string | Mobile number of customer. |
string | Email of customer. | |
qbEmail | string | Qb Email of customer. |
billingEmail | string | Billing email of customer. |
extraEmail | string | Extra email of customer. |
credit_limit | string | Credit limit of customer. |
payment_terms | string | Payment terms of customer. |
account_hold | boolean | Account on hold or not of customer. |
document | file | Document file of customer. |
customerType | array | Customer type of customer. |
newTerminal | array | New Terminals of customer. |
receiverEmail | string | Receiver email of customer. |
geofence | string | Geofence of customer.. |
notes | string | Notes for customer. |
mcNumber | string | MC number of customer. |
notificationEmails | string | Notification email of customer. |
emailStatuses | array | Email statuses of customer. |
portUsername | string | Port username of customer. |
portPassword | string | Port password of customer. |
doc_all | boolean | Is Document all of customer. |
doc_tir | boolean | Is Document tir of customer. |
doc_pod | boolean | Is Document pod of customer. |
doc_none | boolean | Is Document none of customer. |
extraSubCustomer | array | Document all of customer. |
salesAgents | array | Sales agent of customer. |
customerTags | array | Customer tags of customer. |
balance | number | Balance of customer. |
canEditLoad | boolean | Is customer can edit load or not. |
secondaryPhoneNo | string | Secondary phone no of customer. |
officeHoursStart | date | Office hour start time of customer. |
officeHoursEnd | date | Office hour end time of customer. |
currency | string | Currency of customer. |
externalSystemID | string | External system id. |
Upload Customer Document
The above command returns JSON structured like this:
{
"_object": "/api/response",
"self": "/document/",
"version": "1.0.0",
"data": {
"documentType": "Customer Contract",
"url": "https://demo-logistics.s3.amazonaws.com/documents/shipment_AA1LGj20125.png"
},
"error":null
}
This endpoint upload a document Customer.
HTTP Request
POST https://api1.app.portpro.io/v1/customer/document
Request Parameters
Parameter | Type | Description |
---|---|---|
customerId* | string | The unique customer id. |
documentType* | string | Document type of customer, One of: ["Customer Contract", "Rate Confirmation", "Email", "Other", "Credit App", "Credit Report", "Business License"] |
file* | file | Customer document. |
Retrieve a Single Customer
200 OK
{
"_object": "/api/response",
"self": "/v1//customer/1234",
"version": "1.0.0",
"data": {
"address": {
"address": "828 SW 2nd Ave, Portland, OR 97204, USA",
"lat": 45.5168016,
"lng": -122.6750425,
"address1": "aasdasdadsd",
"city": "asdad",
"state": "adsdasd",
"country": "sdfsdf",
"zip_code": "45641"
},
"geofence": {
"center": [],
"polygon": []
},
"company_name": "hhhhh",
"main_contact_name": "yashkals",
"secondary_contact_name": null,
"account_hold": false,
"isDeleted": false,
"newTerminal": [],
"isEmailNeedToSend": true,
"customerType": [
"ALL"
],
"usageCount": 1,
"isSendNotificationEmail": false,
"isSendContainerNotification": false,
"isSendPODEmail": false,
"pdfMap": [],
"emailStatuses": [],
"employeeEmails": [],
"extraSubCustomer": [],
"salesAgents": [],
"canEditLoad": false,
"isTIROptional": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailContainerAvailable": false,
"isSendEmailContainerAdd": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerReadyForPickup": false,
"doc_all": true,
"doc_tir": false,
"doc_pod": false,
"doc_none": false,
"_id": "1234",
"updatedAt": "2022-04-28T05:46:47.564Z",
"createdAt": "2022-04-28T05:46:47.564Z",
"companyID": "asasdasdas",
"address1": "aasdasdadsd",
"city": "Portland",
"state": "Oregon",
"country": "United States",
"zip_code": "97204",
"mobile": "",
"email": "84xy2ckgjfa4@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"carrier": "1234",
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"assignedCSR": [],
"documents": [],
"isAddressVerified": false,
"__v": 0
},
"error": null
}
This endpoint retrieves a specific customer.
Example of customer object you can find here
HTTP Request
GET https://api1.app.portpro.io/v1/customer/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the customer object to be retrieved |
Delete Customer
200 OK
{
"_object": "/api/response",
"self": "/v1//customer/1234",
"version": "1.0.0",
"data": {
"statusCode": 200,
"message": "Success",
"data": {
"success": true
}
},
"error": null
}
This endpoint delete a specific customer.
Example of customer object you can find here.
HTTP Request
DELETE https://api1.app.portpro.io/v1/customer/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the customer object to be delete |
Retrieve Customer Discount
200 OK
{
"_object": "/api/response",
"self": "/v1/customer-discount",
"version": "1.0.0",
"data": [
{
"_id": "1234",
"updatedAt": "2022-07-21T10:46:54.118Z",
"createdAt": "2022-07-21T09:29:50.290Z",
"discounts": [
{
"type": "percentage",
"name": "ryan_fee",
"discounts": "10"
}
],
"caller": {
"_id": "1234",
"companyID": "TestCustomer",
"mobile": "",
"email": "portprodemo123456@yopmail.com",
"billingEmail": "portprodemo@yopmail.com",
"extraEmail": "new@yopmail.com,new12@yopmail.com",
"payment_terms": 7,
"receiverEmail": "",
"isEmailNeedToSend": true,
"address": {
"zip_code": "07036",
"country": "US",
"state": "NJ",
"city": "Linden",
"address1": "1560 Lower Rd",
"lng": -74.2452606,
"lat": 40.6115417,
"address": "1560 Lower Rd, Linden, NJ 07036, USA"
},
"company_name": "National Retail Store"
},
"carrier": {
"_id": "8955",
"carrier": {
"_id": "7777",
"homeTerminalTimezone": "America/Los_Angeles",
"mobile": 5624725010,
"company_name": "Test Customer Company"
},
"email": "customer@yopmail.com",
"defaultAddressId": {
"_id": "545",
"updatedAt": "2022-12-27T04:58:17.378Z",
"createdAt": "2020-03-30T15:03:06.148Z",
"carrier": "658",
"company_address": "America",
"__v": 0,
"isDeleted": false,
"longitude": -95.712891,
"latitude": 37.09024
},
"lastName": "Customer",
"name": "Test"
},
"__v": 0,
"terminals": [],
"consignee": [],
"shipper": []
}
],
"error": null
}
This endpoint retrieves customer discount.
HTTP Request
GET https://api1.app.portpro.io/v1/customer-discount
Query Parameters
Parameter | Type | Description |
---|---|---|
searchText | string | Search text for search customer. |
caller | array | Array of Customer Ids. |
consignee | array | Array of Consignee Ids. |
shipper | array | Array of Shipper Ids. |
carrierId | string | Carrier Id of customer. |
Retrieve Customer Rates
200 OK
{
"_object": "/api/response",
"self": "/v1/customer-rates",
"version": "1.0.0",
"data": [
{
"_id": "1234",
"updatedAt": "2023-01-04T04:05:57.539Z",
"createdAt": "2023-01-04T04:05:57.539Z",
"__v": 0,
"caller": {
"_id": "1234",
"email": "testcustomer@yopmail.com",
"isEmailNeedToSend": true,
"address": {
"address": "189 12th ave",
"lat": 47.6034707,
"lng": -122.3171236,
"address1": "189 12th Ave",
"city": "Seattle",
"state": "WA",
"country": "US",
"zip_code": "98122"
},
"company_name": "Mod^l-trucking"
},
"pricing": [],
"carrier": {
"_id": "1234",
"carrier": {
"_id": "1234",
"homeTerminalTimezone": "America/Los_Angeles",
"mobile": 5624725010,
"company_name": "Daniel Baca Company"
},
"email": "testcustomer@yopmail.com",
"defaultAddressId": {
"_id": "1234",
"updatedAt": "2022-12-27T04:58:17.378Z",
"createdAt": "2020-03-30T15:03:06.148Z",
"carrier": "5e820a2a0d093a3cdf37795b",
"company_address": "America",
"__v": 0,
"isDeleted": false,
"longitude": -95.712891,
"latitude": 37.09024
},
"lastName": "Customer",
"name": "Test"
},
"terminals": [],
"consignee": [
{
"_id": "1234",
"companyID": "TestCustmer",
"mobile": "",
"email": "test@yopmail.com",
"address": {
"lng": -117.7048213,
"lat": 34.0040017,
"address": "4575 Schaefer Ave, Chino, CA 91710, USA",
"address1": "4575 Schaefer Ave",
"city": "Chino",
"state": "CA",
"country": "US",
"zip_code": "91710"
},
"company_name": "Interline"
}
],
"shipper": [
{
"_id": "1234",
"companyID": "AMALGAMATEDTEXTILESINC4700",
"mobile": "",
"email": "shipper@yopmail.com",
"address": {
"zip_code": "92408",
"country": "US",
"state": "CA",
"city": "San Bernardino",
"address1": "520 E Orange Show Rd",
"lng": -117.2728478,
"lat": 34.080039,
"address": "520 E Orange Show Rd, San Bernardino, CA 92408, USA"
},
"company_name": "TEST CUSTOMER INC"
}
]
},
],
"error": null
}
This endpoint retrieves customer rates.
HTTP Request
GET https://api1.app.portpro.io/v1/customer-rates
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the customer to retrieve. |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
searchText | string | Search text for search customer. |
caller | array | Array of Customer Ids. |
consignee | array | Array of Consignee Ids. |
shipper | array | Array of Shipper Ids. |
isZipCode | boolean | Zip code or not. |
isCityState | boolean | City state or not. |
Retrieve Customer Dynamic Rates
200 OK
{
"_object": "/api/response",
"self": "/v1/customer-dynamic-rates",
"version": "1.0.0",
"data": {
"_id": "1234",
"carrier": "1234",
"__v": 0,
"createdAt": "2021-01-12T19:10:32.864Z",
"updatedAt": "2022-12-15T09:13:02.760Z",
"rules": [
{
"_id": "1234",
"name": "Over Weight",
"type": "fixed",
"query": [
{
"children": [
{
"operator": "ANY_IN",
"value": [
"{\"value\":\"1234\",\"label\":\"20'\"}"
],
"field": "containerSize"
},
{
"operator": "LARGER_EQUAL",
"value": "38000",
"field": "totalWeight"
}
],
"isNegated": false,
"value": "AND",
"type": "GROUP"
}
],
"index": 0,
"amount": 200,
"freeDays": 0,
"minimumAmount": 0,
"isManual": false,
"terminals": []
},
]
},
"error": null
}
This endpoint retrieves customer dynamic rates.
HTTP Request
GET https://api1.app.portpro.io/v1/customer-dynamic-rates
Retrieve Customer Audits
200 OK
{
"_object": "/api/response",
"self": "/v1/audit/customer",
"version": "1.0.0",
"count": "1",
"data": [
{
"oldData": {
"currency": "",
},
"newData": {
"currency": "USD",
},
"action": "UPDATE",
"entityId": "5e4c6d801d5e5609*****",
"actorId": "5c8a3aa6976610******",
"actorDetail": {
"name": "AlexCorry"
},
"createdAt": "2025-07-18T05:53:49.857Z"
}
],
"error": null,
"other": {
"pageToken": "U2FsdGVkX18lrurhfuZt%2Fyz*****"
}
}
This endpoint retrieves audit history for customer records.
HTTP Request
GET https://api1.app.portpro.io/v1/audit/customer
Query Parameters
Parameter | Type | Description |
---|---|---|
createdAtFrom | datetime | Filter audit records created from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
createdAtTo | datetime | Filter audit records created to datetime(UTC). e.g. 2025-06-06T08:40:47.772Z |
action | string | Filter by action type (e.g., "ADD", "UPDATE", "REMOVE", "DOCUMENT_UPLOAD", "DOCUMENT_REMOVE", "REMOVED_CSR", "ADDED_CSR") |
entityId | string | Filter by specific entity ID(Customer Id) |
actorIds | array | Filter audit records by specific user IDs who made the changes |
limit | number | Number of records to fetch per request. Default is 50, maximum is 50 records per request |
pageToken | string | Token for pagination to get next set of results |
Consignees
Consignee Object
Here is consignee response object for parameter reference.
You can find consignee object in Consignee object
Retrieve All Consignees
200 OK
{
"_object": "/api/response",
"self": "/v1/consignee/",
"version": "1.0.0",
"count": 100,
"data": [
{
"_id": "1234",
"updatedAt": "2022-04-28T05:38:11.411Z",
"createdAt": "2020-04-01T19:14:39.597Z",
"companyID": "NationalRetailStore6574",
"city": "Linden",
"state": "NJ",
"country": "US",
"zip_code": "07036",
"mobile": "",
"email": "portprodeo123456@gmail.com",
"billingEmail": "portprodemo@gmail.com",
"extraEmail": "",
"credit_limit": 250000,
"payment_terms": 7,
"carrier": "1234",
"qbEmail": "",
"payType": "Direct_Pay",
"__v": 4,
"receiverEmail": "",
"mcNumber": null,
"notificationEmails": "portprotest@gmail.com,PORTPRODEMO@GMAIL.COM",
"portPassword": "",
"portUsername": "",
"balance": 0,
"currency": "",
"customerTags": [
"consignee",
"shipper",
"containerReturn"
],
"secondaryPhoneNo": "",
"officeHoursEnd": null,
"officeHoursStart": null,
"address1": "1561 Lower Rd",
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": true,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [
"ENROUTE_PICKUP",
"ARRIVED_PICKUP",
"ENROUTE_DELIVERY",
"ARRIVED_DELIVERY",
"ENROUTE_RETURN",
"ARRIVED_RETURN",
"COMPLETED"
],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": true,
"usageCount": 608,
"geofence": {
"zoom": 10.91,
"polygon": [],
"center": [
-74.0029393,
40.717718
]
},
"customerType": [
"consignee",
"caller"
],
"isEmailNeedToSend": true,
"documents": [],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": "",
"main_contact_name": "MICHAEL JOHNSON",
"isAddressVerified": false,
"address": {
"lng": -74.2452606,
"lat": 40.6115417,
"address": "1560 Lower Rd, Linden, NJ 07036, USA",
"address1": "1561 Lower Rd",
"city": "Linden",
"state": "NJ",
"country": "US",
"zip_code": "07036"
},
"company_name": "National Retail Store"
},
{
"_id": "12345",
"updatedAt": "2022-04-28T05:09:18.479Z",
"createdAt": "2020-04-05T18:10:21.630Z",
"companyID": "PerfecChristmasTrees2413",
"city": "Phillipsberg",
"state": "NJ",
"country": "US",
"zip_code": "08865",
"mobile": "9085471225",
"email": "californiaaca@gmail.com",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"carrier": "1234",
"qbEmail": "",
"__v": 1,
"receiverEmail": null,
"mcNumber": null,
"notificationEmails": "luis.japa@portpro.io",
"balance": 0,
"customerTags": [
"consignee",
"caller",
"shipper",
"containerReturn"
],
"portPassword": "",
"portUsername": "",
"officeHoursEnd": null,
"officeHoursStart": null,
"secondaryPhoneNo": "",
"currency": "",
"address1": "999 US-22",
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": false,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [
{
"_id": "1234",
"company_name": "OEC Group"
}
],
"employeeEmails": [
"jlogin.2020@gmail.com"
],
"emailStatuses": [
"DELIVERLOAD_DEPARTED"
],
"pdfMap": [],
"isSendPODEmail": true,
"isSendContainerNotification": false,
"isSendNotificationEmail": true,
"usageCount": 486,
"geofence": {
"zoom": 10.91,
"polygon": [
[
[
-74.07189291219953,
40.727969701972825
],
[
-74.07257517808742,
40.72706905958481
],
[
-74.0716178049894,
40.72668544894236
],
[
-74.0709685519723,
40.72761945359946
],
[
-74.07189291219953,
40.727969701972825
]
]
],
"center": [
-74.0029393,
40.717718
]
},
"customerType": [
"consignee",
"caller",
"shipper",
"containerReturn"
],
"isEmailNeedToSend": true,
"documents": [
{
"description": "",
"userId": {
"_id": "1234",
"lastName": "Baca",
"name": "Daniel"
},
"date": "2020-04-13T21:18:39.144Z",
"url": "https://s3.amazonaws.com/production/shipment_t4FQq716900.docx",
"type": "Customer Contract",
"_id": "1234",
"checked": true
}
],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": "",
"main_contact_name": "Rudy Deere",
"isAddressVerified": false,
"address": {
"lng": 12,
"lat": 12,
"address": "999 US-22, Phillipsburg, NJ 08865",
"address1": "999 US-22",
"city": "Phillipsberg",
"state": "NJ",
"country": "US",
"zip_code": "08865"
},
"company_name": "Perfect Christmas Trees"
},
{
"_id": "12346",
"updatedAt": "2022-04-27T19:00:40.437Z",
"createdAt": "2020-11-18T16:51:26.495Z",
"companyID": "CHICASTextilesInc6737",
"city": "San Bernardino",
"state": "CA",
"country": "US",
"zip_code": "92408",
"mobile": "",
"email": "test3@test.com",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 50000,
"payment_terms": 7,
"carrier": "1234",
"qbEmail": "",
"notificationEmails": "PORTPRODEMO@GMAIL.COM",
"__v": 1,
"mcNumber": null,
"receiverEmail": "",
"portPassword": "",
"portUsername": "",
"balance": 0,
"customerTags": [],
"currency": "",
"secondaryPhoneNo": "",
"address1": "520 E Orange Show Rd",
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": false,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [
{
"_id": "1234",
"company_name": "Interline"
}
],
"employeeEmails": [],
"emailStatuses": [
"ENROUTE_PICKUP",
"ARRIVED_PICKUP",
"ENROUTE_DELIVERY",
"ARRIVED_DELIVERY",
"ARRIVED_RETURN",
"ENROUTE_RETURN",
"COMPLETED"
],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": true,
"usageCount": 336,
"geofence": {
"zoom": 10.91,
"polygon": [],
"center": [
-74.0029393,
40.717718
]
},
"customerType": [
"consignee"
],
"isEmailNeedToSend": false,
"documents": [],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": "",
"main_contact_name": "",
"isAddressVerified": false,
"address": {
"lng": -117.2728478,
"lat": 34.080039,
"address": "520 E Orange Show Rd, San Bernardino, CA 92408, USA",
"address1": "520 E Orange Show Rd",
"city": "San Bernardino",
"state": "CA",
"country": "US",
"zip_code": "92408"
},
"company_name": "CHICAS Textiles Inc"
}
],
"error": null
}
This endpoint retrieves all consignees.
HTTP Request
GET https://api1.app.portpro.io/v1/consignee/
Query Parameters
Parameter | Type | Description |
---|---|---|
profileIds | Array | Array of Consignee ids. |
skip | int32 | Skip number of the consignee to retrieve. |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
isInvalid | boolean | Consignee is valid or not. |
createdFrom | date | Consignee created from date |
createdTo | date | Consignee created to date |
updatedFrom | date | Consignee updated from date |
updatedTo | date | Consignee updated to date |
createdAtFrom | datetime | Consignee created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Consignee created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Consignee updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Consignee updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
Create Consignee
200 OK
{
"_object": "/api/response",
"self": "/v1/consignee",
"version": "1.0.0",
"data": {
"statusCode": 201,
"message": "Created Successfully",
"data": {
"user": {
"__v": 0,
"updatedAt": "2023-02-25T10:47:47.747Z",
"createdAt": "2023-02-25T10:47:47.747Z",
"customer": {
"__v": 0,
"updatedAt": "2023-02-25T10:47:47.124Z",
"createdAt": "2023-02-25T10:47:47.124Z",
"companyID": "dummy",
"trackingID": "dummy",
"address1": "USA",
"city": "dummy",
"state": "NJ",
"country": "USA",
"zip_code": "232322",
"mobile": "",
"email": "dummy@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"companyField": "",
"taxRate": null,
"carrier": "123",
"_id": "123",
"isFailed": false,
"requiredDocList": [],
"accessDocument": [],
"webhookEvents": [],
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": false,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 1,
"geofence": {
"zoom": 10.91,
"polygon": [],
"center": [
"23.2",
"22.2"
]
},
"customerType": [
"consignee"
],
"isEmailNeedToSend": true,
"documents": [],
"newTerminal": [],
"isInvalid": false,
"isDeleted": false,
"credit_hold": false,
"account_hold": false,
"secondary_contact_name": null,
"main_contact_name": "dummy",
"isAddressVerified": false,
"address": {
"address": "232",
"address1": "232",
"city": "Malbourne",
"state": "NJ",
"country": "USA",
"zip_code": "232322",
"lat": 23.2,
"lng": 22.2
},
"company_name": "MahimaConsignee"
},
"email": "d8ow8vv825bv8gf@portpro.io",
"username": "dummy",
"carrier": "123",
"role": "customer",
"_id": "123",
"strictSessionPolicy": false,
"newDispatcher": true,
"newDriverPay": false,
"isSupportMoveEnabled": false,
"isLiftOffEnabled": false,
"isPaymentInline": true,
"isBillingInline": true,
"enableDriverPlanner": true,
"customerCountries": [],
"isSFTPConnection": false,
"featurePermission": [],
"isOnVacation": false,
"edi214Callers": [],
"edi210Callers": [],
"qboCustomFields": [],
"qbBillingDateStatus": "APPROVED",
"isInvoiceWithShortName": false,
"isTerminalClass": false,
"isNewInvoice": false,
"isCanada": false,
"groupedCities": [],
"itineraryColumnSorting": [
"Load #",
"Container #",
"Chassis #",
"Type",
"Status",
"Load Assigned Date",
"Company",
"Address",
"Distance",
"Time",
"Enroute",
"Arrived",
"Notes",
"Size",
"SSL",
"BOL/BKG",
"Endorsements"
],
"isChassisTrackingEnabled": false,
"isExtraDataFromTracer": false,
"rowColorPreferences": [],
"ftpConnections": [],
"isAllowSystem": false,
"driverAccountHold": false,
"accountHoldEnabled": false,
"requireReference": false,
"isDefaultSSLAdded": true,
"isOnBoardingDone": false,
"driverPreferences": false,
"isMailConnected": false,
"reports": [],
"groupChats": [],
"groupedProfiles": [],
"groupedCustomers": [],
"defaultPayCustomers": [],
"doubleDispatch": [],
"permissions": [],
"qbConnection": false,
"isNewCombineInvoice": true,
"isUsingNewDocDesign": true,
"isPickupNotificationShow": false,
"isStatusNotificationShow": true,
"documents": [],
"acl": [],
"newDeduction": [],
"deduction": [],
"deviceToken": "",
"buildNo": 0,
"os": "",
"vApp": "",
"work_number": "",
"uniqueId": "8ow312",
"policy": "",
"isDelinquet": false,
"isTrialUser": false,
"isExpired": false,
"isMobileVerified": false,
"isEmailVerified": true,
"isDeleted": false,
"isAdminVerified": true,
"isAdminRejected": false,
"isBlocked": false,
"permissionRoles": [],
"notifyBy": [],
"approvedBy": [],
"fleetCustomers": [],
"passwordResetToken": "1",
"referralCreditAmount": 0,
"referralCode": "",
"isShiposCarrier": false,
"lastName": null,
"name": "dummy",
"externalSystemID": "S123"
}
}
},
"error": null
}
This endpoint create consignee.
HTTP Request
POST https://api1.app.portpro.io/v1/consignee
Request Body Parameters
Parameter | Type | Description |
---|---|---|
companyID* | string | Company id of consignee. |
company_name* | string | Company name of consignee. |
address* | object | Object of address, address1, city, state, country, zip_code, lat and lng. |
address1* | string | Address1 of consignee. |
isAddressVerified* | boolean | Address verified or not of consignee. |
isInvalid | boolean | Consignee is valid or not. |
city* | string | City name of address. |
state* | string | State name of address. |
country* | string | Country name of address. |
zip_code* | string | Zip code of address. |
main_contact_name | string | Main contact name of consignee. |
secondary_contact_name | string | Secondary contact name of consignee. |
mobile | string | Mobile number of consignee. |
string | Email of consignee. | |
qbEmail | string | Qb Email of consignee. |
billingEmail | string | Billing email of consignee. |
extraEmail | string | Extra email of consignee. |
password | string | Password of consignee. |
credit_limit | string | Credit limit of consignee. |
payment_terms | string | Payment terms of consignee. |
account_hold | boolean | Account on hold or not of consignee. |
filename | string | File name document for consignee. |
isDeleted | boolean | Is deleted consignee or not. |
isEmailNeedToSend | boolean | Is deleted consignee or not. |
document | file | Document file of consignee. |
fileType | string | File type of file. |
documents | string | Documents of consignee. |
newTerminal | array | New Terminals of consignee. |
receiverEmail | string | Receiver email of consignee. |
geofence | object | Geofence of consignee. |
fleetCustomer | string | Fleet customer id. |
notes | string | Notes for consignee. |
payType | string | Pay type of consignee. |
mcNumber | string | MC number of consignee. |
notificationEmails | string | Notification email of consignee. |
isSendNotificationEmail | string | Send notification email of consignee. |
isSendContainerNotification | boolean | Send container notification to consignee or not. |
isSendPODEmail | boolean | Is send POD notification to consignee or not. |
emailStatuses | array | Email statuses of consignee. |
portUsername | string | Port username of consignee. |
portPassword | string | Port password of consignee. |
doc_all | boolean | Is Document all of consignee. |
doc_tir | boolean | Is Document tir of consignee. |
doc_pod | boolean | Is Document pod of consignee. |
doc_none | boolean | Is Document none of consignee. |
extraSubCustomer | array | Document all of consignee. |
salesAgents | array | Sales agent of consignee. |
customerTags | array | Customer tags of consignee. |
balance | number | Balance of consignee. |
canEditLoad | boolean | Is consignee can edit load or not. |
isTIROptional | boolean | Is TIR option or not. |
secondaryPhoneNo | string | Secondary phone no of consignee. |
officeHoursStart | date | Office hour start time of consignee. |
officeHoursEnd | date | Office hour end time of consignee. |
isSendEmailDeliveryAppointmentChanged | boolean | Send email for delivery appointment changed or not to consignee. |
isSendEmailPricingDetailEmail | boolean | Send email for pricing detail or not to consignee. |
isSendEmailContainerAvailable | boolean | Send email for container available or not to consignee. |
isSendEmailContainerAdd | boolean | Send email for container add or not to consignee. |
isSendEmailLoadAccepted | boolean | Send email for load accepted or not to consignee. |
isSendEmailContainerReadyForPickup | boolean | Send email for container ready for pickup or not to consignee. |
currency | string | Currency of consignee. |
externalSystemID | string | External system id. |
Update Consignee
200 OK
{
"_object": "/api/response",
"self": "/v1/consignee/1234",
"version": "1.0.0",
"data": {
"statusCode": 201,
"message": "Created Successfully",
"data": {
"_id": "1234",
"updatedAt": "2022-04-28T06:41:25.925Z",
"createdAt": "2022-04-28T05:46:47.564Z",
"companyID": "asasdasdas",
"address1": "aasdasdadsd",
"city": "Portland",
"state": "Oregon",
"country": "United States",
"zip_code": "97204",
"mobile": "",
"email": "nuwlklhxt8vc@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"carrier": "1234",
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"__v": 0,
"mcNumber": null,
"notificationEmails": null,
"receiverEmail": null,
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": true,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 1,
"geofence": {
"polygon": [],
"center": []
},
"customerType": [
"ALL"
],
"isEmailNeedToSend": false,
"documents": [],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": null,
"main_contact_name": "yashkals",
"isAddressVerified": false,
"address": {
"zip_code": "45641",
"country": "sdfsdf",
"state": "adsdasd",
"city": "asdad",
"address1": "aasdasdadsd",
"lng": -122.6750425,
"lat": 45.5168016,
"address": "828 SW 2nd Ave, Portland, OR 97204, USA"
},
"company_name": "hhhhh456312"
}
},
"error": null
}
This endpoint update consignees.
HTTP Request
PUT https://api1.app.portpro.io/v1/consignee/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the consignee object. |
Request Body Parameters
Parameter | Type | Description |
---|---|---|
companyID | string | Company id of shipper. |
company_name | string | Company name of shipper. |
address | object | Address of the event, Sub-Fields: {address*, address1*, city*, state, country*, zipCode*, lat, lng}. |
isInvalid | boolean | Consignee is valid or not. |
isAddressVerified | boolean | Address is verified or not. |
main_contact_name | string | Main contact name of shipper. |
secondary_contact_name | string | Secondary contact name of shipper. |
mobile | string | Mobile number of shipper. |
string | Email of shipper. | |
qbEmail | string | Qb Email of shipper. |
billingEmail | string | Billing email of shipper. |
extraEmail | string | Extra email of shipper. |
credit_limit | string | Credit limit of shipper. |
payment_terms | string | Payment terms of shipper. |
account_hold | boolean | Account on hold or not of shipper. |
document | file | Document file of shipper. |
documents | string | Documents of shipper. |
newTerminal | array | New Terminals of shipper. |
receiverEmail | string | Receiver email of shipper. |
geofence | string | Geofence of shipper. |
notes | string | Notes for shipper. |
payType | string | Pay type of shipper. |
mcNumber | string | MC number of shipper. |
notificationEmails | string | Notification email of shipper. |
emailStatuses | array | Email statuses of shipper. |
portUsername | string | Port username of shipper. |
portPassword | string | Port password of shipper. |
doc_all | boolean | Is Document all of shipper. |
doc_tir | boolean | Is Document tir of shipper. |
doc_pod | boolean | Is Document pod of shipper. |
doc_none | boolean | Is Document none of shipper. |
salesAgents | array | Sales agent of shipper. |
customerTags | array | Customer tags of shipper. |
balance | number | Balance of shipper. |
secondaryPhoneNo | string | Secondary phone no of shipper. |
officeHoursStart | date | Office hour start time of shipper. |
officeHoursEnd | date | Office hour end time of shipper. |
externalSystemID | string | External system id. |
Retrieve a Single Consignee
200 OK
{
"_object": "/api/response",
"self": "/v1/consignee/1234",
"version": "1.0.0",
"data": {
"address": {
"address": "828 SW 2nd Ave, Portland, OR 97204, USA",
"lat": 45.5168016,
"lng": -122.6750425,
"address1": "aasdasdadsd",
"city": "asdad",
"state": "adsdasd",
"country": "sdfsdf",
"zip_code": "45641"
},
"geofence": {
"center": [],
"polygon": []
},
"company_name": "hhhhh",
"main_contact_name": "yashkals",
"secondary_contact_name": null,
"account_hold": false,
"isDeleted": false,
"newTerminal": [],
"isEmailNeedToSend": true,
"customerType": [
"ALL", "consignee"
],
"usageCount": 1,
"isSendNotificationEmail": false,
"isSendContainerNotification": false,
"isSendPODEmail": false,
"pdfMap": [],
"emailStatuses": [],
"employeeEmails": [],
"extraSubCustomer": [],
"salesAgents": [],
"canEditLoad": false,
"isTIROptional": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailContainerAvailable": false,
"isSendEmailContainerAdd": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerReadyForPickup": false,
"doc_all": true,
"doc_tir": false,
"doc_pod": false,
"doc_none": false,
"_id": "1234",
"updatedAt": "2022-04-28T05:46:47.564Z",
"createdAt": "2022-04-28T05:46:47.564Z",
"companyID": "asasdasdas",
"address1": "aasdasdadsd",
"city": "Portland",
"state": "Oregon",
"country": "United States",
"zip_code": "97204",
"mobile": "",
"email": "84xy2ckgjfa4@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"carrier": "1234",
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"assignedCSR": [],
"documents": [],
"isAddressVerified": false,
"__v": 0
},
"error": null
}
This endpoint retrieves a specific consignee.
Example of consignee object you can find here
HTTP Request
GET https://api1.app.portpro.io/v1/consignee/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the consignee object to be retrieved |
Delete Consignee
200 OK
{
"_object": "/api/response",
"self": "/v1/consignee",
"version": "1.0.0",
"data": {
"statusCode": 200,
"message": "Success",
"data": {
"success": true
}
},
"error": null
}
This endpoint delete a specific consignee.
HTTP Request
DELETE https://api1.app.portpro.io/v1/consignee?id=<id>
Query Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the consignee object to be delete |
Ports/Shipper
Shipper Object
Here is shipper response object for parameter reference.
You can find port/shipper object in Shipper object
Retrieve All Shippers
200 OK
{
"_object": "/api/response",
"self": "/v1/port/",
"version": "1.0.0",
"count": 100,
"data": [
{
"_id": "1234",
"updatedAt": "2022-04-28T05:38:11.410Z",
"createdAt": "2020-09-22T19:59:29.465Z",
"companyID": "GCTBAYONNE9648",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07305",
"mobile": "8888888888",
"email": "r56lg6h96h678r@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"carrier": "12340",
"qbEmail": "r56lg6hw96he678r@portpro.io",
"notificationEmails": "",
"__v": 5,
"mcNumber": null,
"receiverEmail": null,
"balance": 0,
"currency": "",
"customerTags": [],
"portPassword": "",
"portUsername": "",
"secondaryPhoneNo": "",
"officeHoursEnd": null,
"officeHoursStart": null,
"SyncToken": "0",
"qbId": "36",
"address1": "302 Port Jersey Blvd",
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": true,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": true,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 894,
"geofence": {
"zoom": 10.91,
"polygon": [],
"center": [
-74.0029393,
40.717718
]
},
"customerType": [
"shipper",
"containerReturn"
],
"isEmailNeedToSend": true,
"documents": [],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": "",
"main_contact_name": "JOSE",
"isAddressVerified": false,
"address": {
"lng": -74.0798703,
"lat": 40.6748196,
"address": "302 Port Jersey Blvd, Jersey City, NJ 07305, USA",
"address1": "302 Port Jersey Blvd",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07305"
},
"company_name": "GCT BAYONNE"
},
{
"_id": "12341",
"updatedAt": "2022-04-27T19:20:55.565Z",
"createdAt": "2020-10-21T18:33:09.168Z",
"companyID": "WBCT2937",
"city": "Los Angeles",
"state": "CA",
"country": "US",
"zip_code": "90731",
"mobile": "3107325536",
"email": "eqy5bal30fym8y3@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"carrier": "12342",
"qbEmail": "",
"notificationEmails": "",
"__v": 0,
"balance": 0,
"currency": "",
"customerTags": [],
"mcNumber": null,
"officeHoursEnd": null,
"officeHoursStart": null,
"portPassword": "",
"portUsername": "",
"receiverEmail": null,
"secondaryPhoneNo": "",
"address1": "2050 John S Gibson Blvd",
"qbId": "121",
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": true,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 751,
"geofence": {
"zoom": 13.01,
"polygon": [
[
[
-118.2786734799977,
33.7676968387204
],
[
-118.29318468464578,
33.76088444464931
],
[
-118.29113604398952,
33.749671200466295
],
[
-118.276710199369,
33.75499412581607
],
[
-118.26672307616965,
33.766987239604035
],
[
-118.26527195570512,
33.76670339831213
],
[
-118.2786734799977,
33.7676968387204
]
]
],
"center": [
"-118.2722",
"33.7609"
]
},
"customerType": [
"shipper",
"containerReturn"
],
"isEmailNeedToSend": true,
"documents": [],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": "",
"main_contact_name": "Jorge",
"isAddressVerified": false,
"address": {
"lng": -118.2887177,
"lat": 33.7560558,
"address": "2050 John S Gibson Blvd, San Pedro, CA 90731, USA",
"address1": "2050 John S Gibson Blvd",
"city": "Los Angeles",
"state": "CA",
"country": "US",
"zip_code": "90731"
},
"company_name": "WBCT",
}
],
"error": null
}
This endpoint retrieves all shippers.
HTTP Request
GET https://api1.app.portpro.io/v1/shipper/
Query Parameters
Parameter | Type | Description |
---|---|---|
profileIds | Array | Array of Shipper/Port ids. |
skip | int32 | Skip number of the shipper to retrieve. |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
isInvalid | boolean | Shipper/Port is valid or not. |
createdFrom | date | Port created from date |
createdTo | date | Port created to date |
updatedFrom | date | Port updated from date |
updatedTo | date | Port updated to date |
createdAtFrom | datetime | Port created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Port created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Port updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Port updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
Create Shipper
200 OK
{
"_object": "/api/response",
"self": "/v1/shipper",
"version": "1.0.0",
"data": {
"statusCode": 201,
"message": "Created Successfully",
"data": {
"user": {
"__v": 0,
"updatedAt": "2023-02-25T10:45:13.166Z",
"createdAt": "2023-02-25T10:45:13.166Z",
"customer": {
"__v": 0,
"updatedAt": "2023-02-25T10:45:12.568Z",
"createdAt": "2023-02-25T10:45:12.568Z",
"companyID": "dummy",
"trackingID": "dummy",
"address1": "USA",
"city": "dummy",
"state": "NJ",
"country": "USA",
"zip_code": "232322",
"mobile": "",
"email": "dummy@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"companyField": "",
"taxRate": null,
"carrier": "123",
"_id": "123",
"isFailed": false,
"requiredDocList": [],
"accessDocument": [],
"webhookEvents": [],
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": false,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 1,
"geofence": {
"zoom": 10.91,
"polygon": [],
"center": [
"23.2",
"22.2"
]
},
"customerType": [
"shipper"
],
"isEmailNeedToSend": true,
"documents": [],
"newTerminal": [],
"isInvalid": false,
"isDeleted": false,
"credit_hold": false,
"account_hold": false,
"secondary_contact_name": null,
"main_contact_name": "dummy",
"isAddressVerified": false,
"address": {
"address": "232",
"address1": "232",
"city": "dummy",
"state": "NJ",
"country": "USA",
"zip_code": "232322",
"lat": 23.2,
"lng": 22.2
},
"company_name": "dummy"
},
"email": "dummy@portpro.io",
"username": "dummy@portpro.io",
"carrier": "123",
"role": "customer",
"_id": "123",
"strictSessionPolicy": false,
"newDispatcher": true,
"newDriverPay": false,
"isSupportMoveEnabled": false,
"isLiftOffEnabled": false,
"isPaymentInline": true,
"isBillingInline": true,
"enableDriverPlanner": true,
"customerCountries": [],
"isSFTPConnection": false,
"featurePermission": [],
"isOnVacation": false,
"edi214Callers": [],
"edi210Callers": [],
"qboCustomFields": [],
"qbBillingDateStatus": "APPROVED",
"isInvoiceWithShortName": false,
"isTerminalClass": false,
"isNewInvoice": false,
"isCanada": false,
"groupedCities": [],
"itineraryColumnSorting": [
"Load #",
"Container #",
"Chassis #",
"Type",
"Status",
"Load Assigned Date",
"Company",
"Address",
"Distance",
"Time",
"Enroute",
"Arrived",
"Notes",
"Size",
"SSL",
"BOL/BKG",
"Endorsements"
],
"isChassisTrackingEnabled": false,
"isExtraDataFromTracer": false,
"rowColorPreferences": [],
"ftpConnections": [],
"isAllowSystem": false,
"driverAccountHold": false,
"accountHoldEnabled": false,
"requireReference": false,
"isDefaultSSLAdded": true,
"isOnBoardingDone": false,
"driverPreferences": false,
"isMailConnected": false,
"reports": [],
"groupChats": [],
"groupedProfiles": [],
"groupedCustomers": [],
"defaultPayCustomers": [],
"doubleDispatch": [],
"permissions": [],
"qbConnection": false,
"isNewCombineInvoice": true,
"isUsingNewDocDesign": true,
"isPickupNotificationShow": false,
"isStatusNotificationShow": true,
"documents": [],
"acl": [],
"newDeduction": [],
"deduction": [],
"deviceToken": "",
"buildNo": 0,
"os": "",
"vApp": "",
"work_number": "",
"uniqueId": "yme153",
"policy": "",
"isDelinquet": false,
"isTrialUser": false,
"isExpired": false,
"isMobileVerified": false,
"isEmailVerified": true,
"isDeleted": false,
"isAdminVerified": true,
"isAdminRejected": false,
"isBlocked": false,
"permissionRoles": [],
"notifyBy": [],
"approvedBy": [],
"fleetCustomers": [],
"passwordResetToken": "1",
"referralCreditAmount": 0,
"referralCode": "",
"isShiposCarrier": false,
"lastName": null,
"name": "dummy"
}
}
},
"error": null
}
This endpoint create shipper.
HTTP Request
POST https://api1.app.portpro.io/v1/shipper
Request Body Parameters
Parameter | Type | Description |
---|---|---|
companyID* | string | Company id of shipper. |
company_name* | string | Company name of shipper. |
address* | object | Object of address, address1, city, state, country, zip_code, lat and lng. |
address1* | string | Address1 of shipper. |
isAddressVerified* | boolean | Address verified or not of shipper. |
isInvalid | boolean | Shipper is valid or not. |
city* | string | City name of address. |
state* | string | State name of address. |
country* | string | Country name of address. |
zip_code* | string | Zip code of address. |
main_contact_name | string | Main contact name of shipper. |
secondary_contact_name | string | Secondary contact name of shipper. |
mobile | string | Mobile number of shipper. |
string | Email of shipper. | |
qbEmail | string | Qb Email of shipper. |
billingEmail | string | Billing email of shipper. |
extraEmail | string | Extra email of shipper. |
password | string | Password of shipper. |
credit_limit | string | Credit limit of shipper. |
payment_terms | string | Payment terms of shipper. |
account_hold | boolean | Account on hold or not of shipper. |
filename | string | File name document for shipper. |
isDeleted | boolean | Is deleted shipper or not. |
isEmailNeedToSend | boolean | Is deleted shipper or not. |
document | file | Document file of shipper. |
fileType | string | File type of file. |
documents | string | Documents of shipper. |
newTerminal | array | New Terminals of shipper. |
receiverEmail | string | Receiver email of shipper. |
geofence | object | Geofence of shipper. |
fleetCustomer | string | Fleet customer id. |
notes | string | Notes for shipper. |
payType | string | Pay type of shipper. |
mcNumber | string | MC number of shipper. |
notificationEmails | string | Notification email of shipper. |
isSendNotificationEmail | string | Send notification email of shipper. |
isSendContainerNotification | boolean | Send container notification to shipper or not. |
isSendPODEmail | boolean | Is send POD notification to shipper or not. |
emailStatuses | array | Email statuses of shipper. |
portUsername | string | Port username of shipper. |
portPassword | string | Port password of shipper. |
doc_all | boolean | Is Document all of shipper. |
doc_tir | boolean | Is Document tir of shipper. |
doc_pod | boolean | Is Document pod of shipper. |
doc_none | boolean | Is Document none of shipper. |
extraSubCustomer | array | Document all of shipper. |
salesAgents | array | Sales agent of shipper. |
customerTags | array | Customer tags of shipper. |
balance | number | Balance of shipper. |
canEditLoad | boolean | Is shipper can edit load or not. |
isTIROptional | boolean | Is TIR option or not. |
secondaryPhoneNo | string | Secondary phone no of shipper. |
officeHoursStart | date | Office hour start time of shipper. |
officeHoursEnd | date | Office hour end time of shipper. |
isSendEmailDeliveryAppointmentChanged | boolean | Send email for delivery appointment changed or not to shipper. |
isSendEmailPricingDetailEmail | boolean | Send email for pricing detail or not to shipper. |
isSendEmailContainerAvailable | boolean | Send email for container available or not to shipper. |
isSendEmailContainerAdd | boolean | Send email for container add or not to shipper. |
isSendEmailLoadAccepted | boolean | Send email for load accepted or not to shipper. |
isSendEmailContainerReadyForPickup | boolean | Send email for container ready for pickup or not to shipper. |
currency | string | Currency of shipper. |
externalSystemID | string | External system id. |
Update Shipper
200 OK
{
"_object": "/api/response",
"self": "/v1/shipper/1234",
"version": "1.0.0",
"data": {
"statusCode": 201,
"message": "Created Successfully",
"data": {
"_id": "1234",
"updatedAt": "2022-04-28T06:41:25.925Z",
"createdAt": "2022-04-28T05:46:47.564Z",
"companyID": "asasdasdas",
"address1": "aasdasdadsd",
"city": "Portland",
"state": "Oregon",
"country": "United States",
"zip_code": "97204",
"mobile": "",
"email": "nuwlklhxt8vc@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"carrier": "1234",
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"__v": 0,
"mcNumber": null,
"notificationEmails": null,
"receiverEmail": null,
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": true,
"isSendEmailContainerReadyForPickup": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerAdd": false,
"isSendEmailContainerAvailable": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isTIROptional": false,
"canEditLoad": false,
"assignedCSR": [],
"salesAgents": [],
"extraSubCustomer": [],
"employeeEmails": [],
"emailStatuses": [],
"pdfMap": [],
"isSendPODEmail": false,
"isSendContainerNotification": false,
"isSendNotificationEmail": false,
"usageCount": 1,
"geofence": {
"polygon": [],
"center": []
},
"customerType": [
"ALL"
],
"isEmailNeedToSend": false,
"documents": [],
"newTerminal": [],
"isDeleted": false,
"account_hold": false,
"secondary_contact_name": null,
"main_contact_name": "yashkals",
"isAddressVerified": false,
"address": {
"zip_code": "45641",
"country": "sdfsdf",
"state": "adsdasd",
"city": "asdad",
"address1": "aasdasdadsd",
"lng": -122.6750425,
"lat": 45.5168016,
"address": "828 SW 2nd Ave, Portland, OR 97204, USA"
},
"company_name": "hhhhh456312"
}
},
"error": null
}
This endpoint update shipper.
HTTP Request
PUT https://api1.app.portpro.io/v1/shipper/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the shipper object. |
Request Body Parameters
Parameter | Type | Description |
---|---|---|
companyID | string | Company id of shipper. |
company_name | string | Company name of shipper. |
address | object | Address of the event, Sub-Fields: {address*, address1*, city*, state, country*, zipCode*, lat, lng}. |
isInvalid | boolean | Shipper is valid or not. |
isAddressVerified | boolean | Address is verified or not. |
main_contact_name | string | Main contact name of shipper. |
secondary_contact_name | string | Secondary contact name of shipper. |
mobile | string | Mobile number of shipper. |
string | Email of shipper. | |
qbEmail | string | Qb Email of shipper. |
billingEmail | string | Billing email of shipper. |
extraEmail | string | Extra email of shipper. |
credit_limit | string | Credit limit of shipper. |
payment_terms | string | Payment terms of shipper. |
account_hold | boolean | Account on hold or not of shipper. |
document | file | Document file of shipper. |
newTerminal | array | New Terminals of shipper. |
receiverEmail | string | Receiver email of shipper. |
geofence | string | Geofence of shipper. |
notes | string | Notes for shipper. |
payType | string | Pay type of shipper. |
mcNumber | string | MC number of shipper. |
notificationEmails | string | Notification email of shipper. |
emailStatuses | array | Email statuses of shipper. |
portUsername | string | Port username of shipper. |
portPassword | string | Port password of shipper. |
doc_all | boolean | Is Document all of shipper. |
doc_tir | boolean | Is Document tir of shipper. |
doc_pod | boolean | Is Document pod of shipper. |
doc_none | boolean | Is Document none of shipper. |
salesAgents | array | Sales agent of shipper. |
customerTags | array | Customer tags of shipper. |
balance | number | Balance of shipper. |
secondaryPhoneNo | string | Secondary phone no of shipper. |
officeHoursStart | date | Office hour start time of shipper. |
officeHoursEnd | date | Office hour end time of shipper. |
externalSystemID | string | External system id. |
Retrieve a Single Shipper
200 OK
{
"_object": "/api/response",
"self": "/v1/shipper/1234",
"version": "1.0.0",
"data": {
"address": {
"address": "828 SW 2nd Ave, Portland, OR 97204, USA",
"lat": 45.5168016,
"lng": -122.6750425,
"address1": "aasdasdadsd",
"city": "asdad",
"state": "adsdasd",
"country": "sdfsdf",
"zip_code": "45641"
},
"geofence": {
"center": [],
"polygon": []
},
"company_name": "hhhhh",
"main_contact_name": "yashkals",
"secondary_contact_name": null,
"account_hold": false,
"isDeleted": false,
"newTerminal": [],
"isEmailNeedToSend": true,
"customerType": [
"ALL", "shipper", "containerReturn"
],
"usageCount": 1,
"isSendNotificationEmail": false,
"isSendContainerNotification": false,
"isSendPODEmail": false,
"pdfMap": [],
"emailStatuses": [],
"employeeEmails": [],
"extraSubCustomer": [],
"salesAgents": [],
"canEditLoad": false,
"isTIROptional": false,
"isSendEmailDeliveryAppointmentChanged": false,
"isSendEmailPricingDetailEmail": false,
"isSendEmailContainerAvailable": false,
"isSendEmailContainerAdd": false,
"isSendEmailLoadAccepted": false,
"isSendEmailContainerReadyForPickup": false,
"doc_all": true,
"doc_tir": false,
"doc_pod": false,
"doc_none": false,
"_id": "1234",
"updatedAt": "2022-04-28T05:46:47.564Z",
"createdAt": "2022-04-28T05:46:47.564Z",
"companyID": "asasdasdas",
"address1": "aasdasdadsd",
"city": "Portland",
"state": "Oregon",
"country": "United States",
"zip_code": "97204",
"mobile": "",
"email": "84xy2ckgjfa4@portpro.io",
"billingEmail": "",
"extraEmail": "",
"credit_limit": 0,
"payment_terms": 0,
"balance": 0,
"carrier": "1234",
"qbEmail": "",
"portPassword": "",
"portUsername": "",
"customerTags": [],
"secondaryPhoneNo": "",
"currency": "",
"assignedCSR": [],
"documents": [],
"isAddressVerified": false,
"__v": 0
},
"error": null
}
This endpoint retrieves a specific shipper/port.
Example of shipper/port object you can find here
HTTP Request
GET https://api1.app.portpro.io/v1/shipper/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the shipper/port object to be retrieved |
Delete Shipper
200 OK
{
"_object": "/api/response",
"self": "/v1/shipper",
"version": "1.0.0",
"data": {
"statusCode": 200,
"message": "Success",
"data": {
"success": true
}
},
"error": null
}
This endpoint delete a specific shipper.
HTTP Request
DELETE https://api1.app.portpro.io/v1/shipper/?id=<id>
Query Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the shipper object to be delete |
Terminals
Terminal Object
Demo terminal object
{
"isDeleted": true,
"_id": "1234",
"updatedAt": "2021-12-28T04:32:05.681Z",
"createdAt": "2021-12-09T07:15:16.063Z",
"userId": "2345",
"address": {
"zip_code": "97204",
"country": "US",
"state": "OR",
"city": "Portland",
"lng": -122.6750425,
"lat": 45.5168016,
"address": "828 SW 2nd Ave, Portland, OR 97204, USA"
},
"name": "dp123",
"__v": 0
}
Here is terminal response object for parameter reference.
You can find terminal object in Terminal object
Create Terminal
200 OK
{
"_object": "/api/response",
"self": "/v1/terminal/",
"version": "1.0.0",
"data": {
"statusCode": 200,
"message": "Success",
"data": {
"__v": 0,
"updatedAt": "2022-04-29T08:45:39.058Z",
"createdAt": "2022-04-29T08:45:39.058Z",
"userId": "1234",
"address": {
"zip_code": "97204",
"country": "US",
"state": "OR",
"city": "Portland",
"lng": -122.6750425,
"lat": 45.5168016,
"address": "828 SW 2nd Ave, Portland, OR 97204, USA"
},
"name": "rrrrrrrrr",
"_id": "1234",
"isDeleted": false
}
},
"error": null
}
This endpoint create terminal.
HTTP Request
POST https://api1.app.portpro.io/v1/terminal
Request Body Parameters
Parameter | Type | Description |
---|---|---|
name* | string | Name id of terminal. |
address* | object | Object of address model which include state, city, address etc |
Update Terminal
200 OK
{
"_object": "/api/response",
"self": "/v1/terminal/1234",
"version": "1.0.0",
"data": {
"statusCode": 200,
"message": "Success",
"data": {
"_id": "1234",
"updatedAt": "2022-04-29T08:52:28.757Z",
"createdAt": "2022-04-29T08:45:39.058Z",
"userId": "1234",
"address": {
"zip_code": "97204",
"country": "US",
"state": "OR",
"city": "Portland",
"lng": -122.6750425,
"lat": 45.5168016,
"address": "828 SW 2nd Ave, Portland, OR 97204, USA"
},
"name": "Appp",
"__v": 0,
"isDeleted": false
}
},
"error": null
}
This endpoint update terminal.
HTTP Request
PUT https://api1.app.portpro.io/v1/terminal/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the terminal object to be update |
Request Body Parameters
Parameter | Type | Description |
---|---|---|
name | string | Name id of terminal. |
address | object | Object of address model which include state, city, address etc |
Retrieve All Terminals
200 OK
{
"_object": "/api/response",
"self": "/v1/terminal",
"version": "1.0.0",
"count": 10,
"data": [
{
"_id": "1234",
"updatedAt": "2022-04-29T08:52:28.757Z",
"createdAt": "2022-04-29T08:45:39.058Z",
"userId": "1234",
"address": {
"address": "828 SW 2nd Ave, Portland, OR 97204, USA",
"lat": 45.5168016,
"lng": -122.6750425,
"city": "Portland",
"state": "OR",
"country": "US",
"zip_code": "97204"
},
"name": "Appp",
"__v": 0,
"isDeleted": false
},
{
"_id": "1234",
"updatedAt": "2022-04-29T08:58:35.877Z",
"createdAt": "2022-04-29T08:58:35.877Z",
"userId": "1234",
"address": {
"address": "828 SW 2nd Ave, Portland, OR 97204, USA",
"lat": 45.5168016,
"lng": -122.6750425,
"city": "Portland",
"state": "OR",
"country": "US",
"zip_code": "97204"
},
"name": "rrrrrrrrr",
"__v": 0,
"isDeleted": false
}
],
"error": null
}
This endpoint retrieves all terminals.
HTTP Request
GET https://api1.app.portpro.io/v1/terminal/
Query Parameters
Parameter | Type | Description |
---|---|---|
searchTerm | string | Search term for search terminal |
createdFrom | date | Terminal created from date |
createdTo | date | Terminal created to date |
updatedFrom | date | Terminal updated from date |
updatedTo | date | Terminal updated to date |
createdAtFrom | datetime | Terminal created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Terminal created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Terminal updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Terminal updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
Retrieve a Single Terminal
200 OK
{
"_object": "/api/response",
"self": "/v1/terminal/1234",
"version": "1.0.0",
"data": {
"statusCode": 200,
"message": "Success",
"data": {
"_id": "1234",
"updatedAt": "2022-04-29T08:58:35.877Z",
"createdAt": "2022-04-29T08:58:35.877Z",
"userId": "1234",
"__v": 0,
"isDeleted": false
}
},
"error": null
}
This endpoint retrieves a specific terminal.
Example of terminal object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/terminal/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the terminal object to be retrieved |
Account Payable
Retrieve Driver Pay
200 OK
{
"_object": "/api/response",
"self": "/v1/driver-pay",
"version": "1.0.0",
"count": 1553,
"data": [
{
"_id": "1234",
"createdBy": {
"_id": "4567",
"lastName": "User",
"name": "Demo"
},
"reference_number": "ABC_M1234",
"status": "COMPLETED",
"__v": 0,
"amount": 1234.11,
"approved": false,
"containerNo": null,
"createdAt": "2022-09-12T10:05:28.868Z",
"endDate": "2022-09-18T02:59:59.999Z",
"fleetTruckOwner": null,
"isDeleted": false,
"loadId": {
"_id": "2233",
"reference_number": "ABC_M1234",
"documents": [
{
"userId": "1234",
"date": "2022-09-12T09:31:49.794Z",
"url": "https://s3-us-west-2.amazonaws.com/demo-logistics/demo.pdf",
"type": "Proof of Delivery",
"_id": "0000",
"checked": true
}
],
"driverOrder": [
{
"isVoidOut": false,
"distance": 0,
"address": {
"address": "1648 Southwest Blvd, Tulsa, OK 74107, USA",
"lat": 36.1379125,
"lng": -96.0072399
},
"isBobtail": false,
"isGrayPool": false,
"departed": "2022-09-12T09:31:32.794Z",
"arrived": "2022-09-12T09:31:32.794Z",
"loadAssignedDate": "2022-09-12T09:31:23.383Z",
"driver": "1234",
"type": "PULLCONTAINER",
"customerId": "4567",
"city": "Tulsa",
"state": "OK",
"country": "US",
"zip_code": "74107",
"company_name": "DEMO COMPANY",
"_id": "9999"
},
{
"isVoidOut": false,
"distance": 0,
"address": {
"address": "Demo address",
"lat": 21.2373867,
"lng": 72.8774568
},
"isBobtail": false,
"isGrayPool": false,
"departed": "2022-09-12T09:32:05.216Z",
"arrived": "2022-09-12T09:32:05.216Z",
"loadAssignedDate": "2022-09-12T09:31:23.384Z",
"driver": "1234",
"type": "DELIVERLOAD",
"customerId": "4567",
"city": "Independence",
"state": "KS",
"country": "US",
"zip_code": "67301",
"company_name": "SUDAMA CHAWK",
"_id": "1111"
},
{
"isVoidOut": false,
"distance": 0,
"isBobtail": false,
"isGrayPool": false,
"departed": "2022-09-12T10:05:24.137Z",
"arrived": "2022-09-12T10:05:24.137Z",
"loadAssignedDate": "2022-09-12T09:31:23.384Z",
"driver": "4567",
"type": "RETURNCONTAINER",
"_id": "7777"
}
]
},
"paymentType": "miles",
"startDate": "2022-09-11T03:00:00.000Z",
"time": "2022-09-12T10:05:24.137Z",
"truck": null,
"updatedAt": "2022-09-12T10:05:28.868Z",
"userId": "1122",
"glCode": "123-456"
}
}]
}
This endpoint retrieves driver payments.
HTTP Request
GET https://api1.app.portpro.io/v1/driver-pay
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the driver payment to retrieve. |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
createdFrom | date | Driver payment created from date. |
createdTo | date | Driver payment payment created to date. |
updatedFrom | date | Driver payment updated from date. |
updatedTo | date | Driver payment updated to date. |
searchTerm | string | Search term for search driver pay. |
terminal | array | Array of terminal id. |
reference_number | string | Load reference number for driver pay. |
createdBy | string | Created by id. |
createdAtFrom | datetime | Driver payment created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Driver payment created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Driver payment updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Driver payment updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
Retrieve Driver Settlement
200 OK
{
"_object": "/api/response",
"self": "/v1/driver-settlement",
"version": "1.0.0",
"data": [
{
"_id": "1234",
"updatedAt": "2022-06-08T06:13:39.755Z",
"createdAt": "2022-06-07T08:49:58.628Z",
"createdBy": "34455",
"settlementNo": 742,
"endDate": "2022-06-13T03:59:59.999Z",
"userId": "656565",
"startDate": "2022-06-05T04:00:00.000Z",
"deduction": [
{
"name": "OCCUPATIONAL ACCIDENT",
"amount": 80,
"_id": "123",
"glCode": "123-456"
}
],
"driverPay": [
{
"_id": "54656",
"createdBy": "5454",
"droppedId": "6565",
"reference_number": "ABC_M1234",
"status": "Profile Payment",
"__v": 0,
"amount": 0,
"approved": false,
"containerNo": null,
"createdAt": "2022-06-07T08:49:58.573Z",
"endDate": "2022-06-12T03:59:59.999Z",
"fleetTruckOwner": {
"_id": "43535",
"updatedAt": "2020-11-20T15:10:20.797Z",
"createdAt": "2020-07-22T17:14:26.897Z",
"city": "Santa Fe Springs",
"state": "CA",
"country": "US",
"zip_code": "90670",
"carrier": "324343",
"isDeleted": false,
"secondary_contact_name": null,
"main_contact_name": null,
"address": {
"lng": -118.0930591,
"lat": 33.9447508,
"address": "10134 Longworth Ave, Santa Fe Springs, CA 90670, USA"
},
"company_name": "DB Trucks",
"MCNumber": "123456",
"__v": 0
},
"groupFrom": "QA PORT, Charleston, SC, 10010",
"groupTo": "TEST COMPANY, New York, NY, 10010",
"isDeleted": false,
"loadId": {
"_id": "343535",
"driverOrder": [
{
"isVoidOut": false,
"distance": 0,
"address": {
"address": "charleston",
"lat": 32.7764749,
"lng": -79.93105120000001
},
"isBobtail": false,
"isGrayPool": false,
"departed": "2022-06-07T08:49:58.482Z",
"arrived": "2022-06-07T08:49:58.482Z",
"loadAssignedDate": "2022-06-07T08:49:52.558Z",
"driver": "43545",
"_id": "343545",
"company_name": "QA PORT",
"zip_code": "10010",
"country": "US",
"state": "SC",
"city": "Charleston",
"customerId": "435435",
"type": "PULLCONTAINER"
},
{
"isVoidOut": false,
"distance": 766.12,
"address": {
"address": "180 5th ave",
"lat": 40.7412849,
"lng": -73.9901094
},
"isBobtail": false,
"isGrayPool": false,
"departed": "2022-06-07T08:49:58.482Z",
"arrived": "2022-06-07T08:49:58.482Z",
"loadAssignedDate": "2022-06-07T08:49:52.558Z",
"driver": "3545454",
"_id": "5454",
"company_name": "TEST COMPANY",
"zip_code": "10010",
"country": "US",
"state": "NY",
"city": "New York",
"customerId": "454545",
"type": "DELIVERLOAD"
},
{
"isVoidOut": false,
"distance": 4.65,
"address": {
"lng": -74.0407893,
"lat": 40.722085,
"address": "380 Marin Blvd, Jersey City, NJ 07302, USA"
},
"isBobtail": false,
"isGrayPool": false,
"departed": "2022-06-07T08:49:58.482Z",
"arrived": "2022-06-07T08:49:58.482Z",
"loadAssignedDate": "2022-06-07T08:49:52.558Z",
"driver": "34546646",
"_id": "454545",
"type": "RETURNCONTAINER",
"customerId": "4545454",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07302",
"company_name": "TEST_ADDRESS"
}
]
},
"paymentType": "Profile Payment",
"profilePaymentStatus": "Driver Pay",
"startDate": "2022-06-05T04:00:00.000Z",
"time": "2022-06-07T08:49:58.482Z",
"truck": {
"_id": "345466",
"updatedAt": "2022-06-08T06:13:39.629Z",
"createdAt": "2020-04-01T19:46:19.547Z",
"equipment_type": "TRUCK",
"equipmentID": "747",
"year": 2018,
"make": "Peterbilt",
"model": "386 ",
"vin": "???",
"reg_expiration": "2020-08-25T04:00:00.000Z",
"licence_plate_state": "California",
"licence_plate_number": "7v5441",
"inspection_exp": "2020-07-31T04:00:00.000Z",
"carrier": "545454",
"documents": [],
"isDeleted": false,
"__v": 0,
"fleetTruckOwner": "545454",
"annual_inspection": "2020-09-15T04:00:00.000Z",
"driver": "545464"
},
"updatedAt": "2022-06-07T08:50:01.941Z",
"userId": "54544",
"glCode": "123-456"
}
}
]
}
This endpoint retrieves driver settlement.
HTTP Request
GET https://api1.app.portpro.io/v1/driver-settlement
Query Parameters
Parameter | Type | Description |
---|---|---|
terminal | array | Array of terminal id. |
startDate | datetime | Driver settlement start date. |
endDate | datetime | Driver settlement end date. |
homeTerminalTimezone | string | Home terminal timezone. |
terminal | array | Array of terminal id. |
fromDate | date | Driver settlement start date e.g. MM/DD/YYYY. |
toDate | date | Driver settlement end date e.g. MM/DD/YYYY. |
Vendor Pays
Vendor Pay Object
Demo Vendor Pay Response
{
"loadDetails": {
"loadReferenceNumber": "HDDHA_NES_E100439",
"typeOfLoad": "EXPORT",
"loadStatus": "PENDING"
},
"vendorChargeSetNumber": "HDDHA_NES_M100451_1",
"vendorChargeSetId": "2eb794b2-e119-424d-9323-27faed778f3d",
"vendorChargeSetType": "ADDITIONAL",
"pricing": [
{
"amount": 0,
"chargePerDay": 0,
"labelName": "FUEL",
"labelValue": "Fuel",
"chargePerMinute": 0,
"finalAmount": 0,
"unit": "0.00",
"freeDays": 0,
"perType": "fixed",
"name": "Fuel",
"description": "This is description",
"chargeType": "MANUALLY_CHANGED",
"type": "percentage",
"chargeName": "FUEL",
"percentageOf": [],
"_id": "67fdda3ce2e8400c36c94f23"
}
],
"totalAmount": 0,
"taxAmount": 0,
"totalAmountWithTax": 0,
"billingNote": "This is Billing Note",
"approvedDate": "2025-04-15T04:02:04.280Z",
"createdAt": "2025-04-14T12:06:24.588Z",
"updatedAt": "2025-04-15T04:02:04.280Z",
"status": "DRAFT",
"vendor": {
"vendorName": "DKK vendor",
"vendorId": "667a9b93411080640c447644"
},
"currency": {
"currencyCode": "DKK",
"symbol": "kr.",
"name": "Danish Krone"
},
"branch": "Neshua",
"bill": {
"billDate": "2025-04-14T12:06:24.588Z",
"billDueDate": "2025-04-29T12:06:24.588Z",
"billNumber": "000091"
}
}
Here is vendor pay response object for parameter reference.
Parameter | Type | Description |
---|---|---|
loadDetails | object | Reference Number, type and status of Load |
vendorChargeSetNumber | string | Charge Set Number |
vendorChargeSetId | string | Unique Charge Set Id |
vendorChargeSetType | string | Type of charge set 'ADDITIONAL' only |
pricing | array | Array of pricing object |
totalAmount | int32 | Total amount of Vendor Pay |
taxAmount | int32 | Total tax amount of Vendor Pay |
totalAmountWithTax | int32 | Total amount with tax of Vendor Pay |
billingNote | string | Billing Note |
approvedDate | datetime | Approved datetime(UTC). e.g. 2025-04-06T08:40:47.772Z |
createdAt | datetime | Vendor pay created at datetime(UTC). e.g. 2025-03-26T08:40:47.772Z |
updatedAt | datetime | Vendor pay updated at datetime(UTC). e.g. 2025-03-16T08:40:47.772Z |
status | string | Status of Vendor Pay. One of: [DRAFT, APPROVED, REJECTED] |
vendor | object | Name and unique Id of Vendor |
currency | object | Currency Code, Symbol and Name of Currency |
branch | string | Branch of Vendor Pay Charge |
bill | object | Bill number, Bill Date and Due Date of Bill |
CREATE Vendor Pay
200 OK
{
"_object": "/api/response",
"self": "/v1/vendor-pay",
"version": "1.0.0",
"data": [<vendor pay object>],
"error":null
}
This endpoint create new vendor pay
Example of vendor pay object you can find here
HTTP Request
POST https://api1.app.portpro.io/v1/vendor-pay
Request Body
Parameter | Type | Description |
---|---|---|
loadReferenceNumber* | string | Reference Number of Load |
vendorId* | string | Unique Id of Vendor |
pricing | array | Pricing array of load |
UPDATE Vendor Pay
200 OK
{
"_object": "/api/response",
"self": "/v1/vendor-pay/2eb794b2-e119-424d-9323-27faed778f3d",
"version": "1.0.0",
"data": [<vendor pay object>],
"error":null
}
This endpoint update existing vendor pay
Example of vendor pay object you can find here
HTTP Request
PUT https://api1.app.portpro.io/v1/vendor-pay/<vendorChargeSetId>
Request Parameters
Parameter | Type | Description |
---|---|---|
vendorChargeSetId* | string | Unique Id of Vendor Pay |
Request Body
Parameter | Type | Description |
---|---|---|
vendorId | string | Unique Id of Vendor |
pricing | array | Pricing array of load |
Vendors
Vendor Object
Demo Vendor object
{
"id": "67ee3df9759aeh7e053322e3",
"companyName": "Bello Company",
"email": "TEST@MAIL.COM",
"mobile": "4536463534",
"branches": [
{
"branchId": "667a88482835993f819b1102",
"name": "Neshua",
"address": {
"city": "Nashua",
"state": "PA",
"country": "US",
"zipCode": "16116",
"latitude": 41.0786704,
"longitude": -80.3989555
}
}
],
"address": {
"street": "Main St",
"city": "Newark",
"state": "NJ",
"country": "US",
"zipCode": "07105",
"latitude": 40.727728,
"longitude": -74.1473936
},
"defaultAddress": "Main St",
"scac": "TEST",
"contactName": "John Doe",
"createdAt": "2025-04-03T07:51:21.401Z",
"updatedAt": "2025-04-03T07:51:23.834Z",
"vendorType": "CARRIER",
"externalId": "123456"
}
Here is vendor response object for parameter reference.
Parameter | Type | Description |
---|---|---|
id | string | Unique Id of Vendor |
companyName | string | Name of Company |
string | Email id of Vendor | |
mobile | string | Mobile number of Vendor |
branches | array | Array of object with branch information |
address | object | Object of address |
defaultAddress | string | Default address of Vendor |
scac | string | SCAC code of Vendor |
contactName | string | Name of contact for Vendor |
createdAt | date/string | Created timestring of vendor |
updatedAt | date/string | Updated timestring of vendor |
vendorType | string | Type of Vendor, One of : [ CARRIER, RAIL, BARGE ], default : CARRIER |
externalId | string | External system id. |
Retrieve Vendors
200 OK
{
"_object": "/api/response",
"self": "/v1/vendor",
"version": "1.0.0",
"count": 16,
"data": [<vendor object>],
"error": null
}
This endpoint retrieves Vendors.
Example of vendor object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/vendor
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Number of vendors to skip in response |
limit | int32 | Count of vendors in each page. Should be between 1 and 50 (inclusive) |
branchIds | array | Array of unique branch ids |
searchText | string | Vendor search string |
vendorType | string | Type of Vendor, One of : [ CARRIER, RAIL, BARGE ], default : CARRIER |
createdAtFrom | datetime | Vendor created from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
createdAtTo | datetime | Vendor created to datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Vendor updated from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
updatedAtTo | datetime | Vendor updated to datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
sortBy | string | Sort by field. Available options: vendorName , vendorType , createdAt , updatedAt |
direction | number | Sort direction. Use 1 for ascending or -1 for descending |
Drivers
Driver Object
Demo driver object
{
"_id": "12345",
"updatedAt": "2022-04-27T09:53:53.375Z",
"createdAt": "2022-04-27T09:24:26.694Z",
"name": "Alex",
"lastName": "Lee",
"mobile": "7111111111",
"country_code": "+91",
"liquor": "",
"reefer": "",
"__v": 0,
"permissions": [],
"isDayDriver": true,
"disableDriverPay": false,
"overweight": false,
"hazmat": false,
"preferredDistance": [],
"preferredTypesOfLoad": [],
"preferredStates": [],
"owerWeightStates": [],
"profileType": [
"PORT",
"DELIVERY",
"TRAILER",
"COMPANY DRIVER",
"INDEPENDENT CONTRACTOR",
"OWNER OPERATOR",
"3rd PARTY DRIVER",
"TEMPORARY",
"SUBCONTRACTOR",
"AGENT - COMPANY",
"All"
],
"newTerminal": [],
"pickup_prefferred": [],
"delivery_prefferred": [],
"elogStatus": "OFF",
"usersRated": 0,
"totalRating": 0,
"isDeleted": false,
"isActive": true,
"currentDriverLocation": {
"coordinates": [
0,
0
],
"type": "Point"
},
"accountHold": false,
"driverHoldStartDt": "2022-06-08T13:27:28.561Z",
"driverHoldEndDt":"2022-06-09T13:27:28.561Z",
"truckType": [],
"authorityLetter": null,
"w9": null,
"certificateOfInsurance": null,
"image": null,
"company_name": null,
"customId": "MEH257",
"carrier": "1234"
}
Here is driver response object for parameter reference.
You can find driver object in driver object
Create Driver
200 OK
{
"_object": "/api/response",
"self": "/v1/driver/",
"version": "1.0.0",
"data": {
"statusCode": 200,
"message": "Success",
"data": {
"user": {
"__v": 0,
"updatedAt": "2022-04-27T09:24:27.585Z",
"createdAt": "2022-04-27T09:24:27.585Z",
"driver": {
"__v": 0,
"updatedAt": "2022-04-27T09:24:26.694Z",
"createdAt": "2022-04-27T09:24:26.694Z",
"name": "Alex",
"lastName": "Lee",
"mobile": "7867546874",
"country_code": "+91",
"liquor": "",
"reefer": "",
"_id": "1234",
"isDayDriver": true,
"disableDriverPay": false,
"overweight": false,
"hazmat": false,
"preferredDistance": [],
"preferredTypesOfLoad": [],
"preferredStates": [],
"owerWeightStates": [],
"profileType": [
"PORT",
"DELIVERY",
"TRAILER",
"COMPANY DRIVER",
"INDEPENDENT CONTRACTOR",
"OWNER OPERATOR",
"3rd PARTY DRIVER",
"TEMPORARY",
"SUBCONTRACTOR",
"AGENT - COMPANY",
"All"
],
"newTerminal": [],
"pickup_prefferred": [],
"delivery_prefferred": [],
"elogStatus": "OFF",
"usersRated": 0,
"totalRating": 0,
"isDeleted": false,
"isActive": true,
"currentDriverLocation": {
"coordinates": [
0,
0
],
"type": "Point"
},
"accountHold": false,
"driverHoldStartDt": "2022-06-08T13:27:28.561Z",
"driverHoldEndDt":"2022-06-09T13:27:28.561Z",
"truckType": [],
"authorityLetter": null,
"w9": null,
"certificateOfInsurance": null,
"image": null,
"company_name": null,
"customId": "MEH257",
"carrier": "1234"
},
"email": "alexlee@gmail.com",
"role": "driver",
"defaultAddressId": {
"__v": 0,
"updatedAt": "2022-04-27T09:24:26.929Z",
"createdAt": "2022-04-27T09:24:26.929Z",
"driver": "1234",
"_id": "1234",
"isDeleted": false,
"longitude": null,
"latitude": null
},
"_id": "1234",
"qboCustomFields": [],
"qbBillingDateStatus": "APPROVED",
"isInvoiceWithShortName": false,
"isTerminalClass": false,
"isCanada": false,
"groupedCities": [],
"itineraryColumnSorting": [],
"isChassisTrackingEnabled": false,
"isExtraDataFromTracer": false,
"rowColorPreferences": [],
"ftpConnections": [],
"isAllowSystem": false,
"driverAccountHold": false,
"accountHoldEnabled": false,
"equipmentParameters": [],
"requireReference": false,
"isDefaultSSLAdded": true,
"isOnBoardingDone": false,
"driverPreferences": false,
"isMailConnected": false,
"reports": [],
"groupChats": [],
"groupedProfiles": [],
"groupedCustomers": [],
"defaultPayCustomers": [],
"doubleDispatch": [],
"permissions": [],
"qbConnection": false,
"isPickupNotificationShow": false,
"isStatusNotificationShow": true,
"documents": [],
"acl": [
"eld"
],
"newDeduction": [],
"deduction": [],
"deviceToken": "",
"buildNo": 0,
"os": "",
"vApp": "",
"work_number": "",
"uniqueId": null,
"policy": "",
"isDelinquet": false,
"isTrialUser": false,
"isExpired": false,
"isMobileVerified": true,
"isEmailVerified": false,
"isDeleted": false,
"isAdminVerified": true,
"isAdminRejected": false,
"isBlocked": false,
"permissionRoles": [],
"notifyBy": [],
"approvedBy": [],
"fleetCustomers": [],
"passwordResetToken": "1",
"referralCreditAmount": 0,
"referralCode": "YK0000043",
"lastName": "Lee",
"name": "ALex"
},
"token": "eyJhbGciOiJIUzI1NiIsInR5cCXVCJ9.eyJfaWQiOiI2MjY5MGJsngklfhfllbnsdnvkdjnggdjh9.sGoxGaKzkF6hAyRNs8mX-IrVh9mZi269bG-miHrdj90"
}
},
"error": null
}
This endpoint create driver.
HTTP Request
POST https://api1.app.portpro.io/v1/driver
Request Body Parameters
Parameter | Type | Description |
---|---|---|
name* | string | Name of a driver |
password | string | Password no of driver. |
lastName | string | Last name of a driver. |
email* | string | Email no of driver. |
mobile* | string | Mobile no of driver. |
company_name | string | Company name of driver. |
country_code* | string | Country code of driver. |
truckType* | array | Array of truck types of driver ex. ["REEFER","DRY VAN, FLATBED"] |
image | file/base64 | Image of driver. |
licence* | string | Licence state of driver. |
licenceNumber* | string | Licence number of driver. |
homeTerminalTimezone* | string | Home terminal zone of driver. |
odometer | string | Odo meter of driver. |
logIncrements | string | Log increments of driver. |
primaryCycle | string | Primary cycle of driver. |
secondaryCycle | string | Secondary cycle of driver. |
selectedOdometer | string | Selected odometer of driver. |
cargoType | string | Cargo type of driver. |
cycleRestart | string | Cycle restart of driver. |
cycleRestBreak | string | Cycle rest break of driver. |
cycleShortHaulException | string | Cycle short haul exception of driver. |
isELDMode | boolean | Is ELD mode of driver or not. |
isSettlementHide | boolean | Is settlement hidden or not. |
dlExp | date/string | DL exp of driver. |
medicalExp | date/string | Medical exp of driver. |
seaLinkExp | date/string | Seal link exp of driver. |
doh | date/string | DOH date of driver. |
dob | date/string | DOB date of driver. |
termination | date/string | Termination date of driver. |
twicExp | date/string | Twice exp date of driver. |
sealLinkNuber | string | Seal link number of driver. |
document | file/base64 | Document of driver. |
accountHold | boolean | Is driver account on hold or not. |
scheduledHold | object | An object containing startDate and endDate in UTC format. |
fileType | string | File type of file of driver. |
filename | string | File name of file of driver. |
carrierId | string | Carrier id for driver. |
billingEmail | string | Billing email of driver. |
profileType | array | Array of profile types of driver ex. ["PORT", "DELIVERY", "TRAILER", "COMPANY DRIVER", "INDEPENDENT CONTRACTOR", "OWNER OPERATOR", "3rd PARTY DRIVER", "TEMPORARY", "SUBCONTRACTOR", "AGENT - COMPANY", "All"] |
EmergencyContactName | string | Emergency contact name of driver. |
EmergencyContactNumber | string | Emergency contact number of driver. |
EmergencyRelation | string | Emergency contact relation of driver. |
newTerminal | array | Array of new terminals of driver. |
preferredDistance | array | Array of preferred distance of driver. |
preferredTypesOfLoad | array | Array of preferred load types of driver. |
preferredStates | array | Array of preferred states of driver. |
owerWeightStates | array | Array of over wright states of driver. |
hazmat | boolean | Hazmat driver or not. |
liquor | string | Liquor of driver. |
overweight | boolean | Over weight driver or not. |
reefer | string | Reefer of driver. |
notes | string | Notes of driver. |
socialSecurity | string | Social security of driver. |
tablet | string | Tablet of driver. |
eld | string | ELD of driver. |
fuelCard | string | Fuel card of driver. |
ezPass | string | Ez pass of driver. |
driverPreferences | boolean | Driver preference or not. |
bankAccount | string | Bank account of driver. |
routing | string | Routing of driver. |
tShirtSizes | string | T-shirt sizes of driver. |
settlementNote | string | Settlement notes for driver. |
hst | string | HST for driver. |
hstPercentage | number | HST percentage for driver. |
registerBusinessName | string | Register business name for driver. |
isDayDriver | boolean | Is day driver or not. |
disableDriverPay | boolean | Disable driver pay or not. |
externalSystemID | string | External system id. |
Update Driver
200 OK
{
"_object": "/api/response",
"self": "/v1/driver/12345",
"version": "1.0.0",
"data": {
"statusCode": 200,
"message": "Success",
"data": {
"user": {
"_id": "12345",
"updatedAt": "2022-04-27T09:53:53.149Z",
"createdAt": "2022-04-27T09:24:27.585Z",
"driver": {
"_id": "12345",
"updatedAt": "2022-04-27T09:53:53.375Z",
"createdAt": "2022-04-27T09:24:26.694Z",
"name": "ALex K",
"lastName": "Lee",
"mobile": "7111111111",
"country_code": "+91",
"liquor": "",
"reefer": "",
"__v": 0,
"permissions": [],
"isDayDriver": true,
"disableDriverPay": false,
"overweight": false,
"hazmat": false,
"preferredDistance": [],
"preferredTypesOfLoad": [],
"preferredStates": [],
"owerWeightStates": [],
"profileType": [
"PORT",
"DELIVERY",
"TRAILER",
"COMPANY DRIVER",
"INDEPENDENT CONTRACTOR",
"OWNER OPERATOR",
"3rd PARTY DRIVER",
"TEMPORARY",
"SUBCONTRACTOR",
"AGENT - COMPANY",
"All"
],
"newTerminal": [],
"pickup_prefferred": [],
"delivery_prefferred": [],
"elogStatus": "OFF",
"usersRated": 0,
"totalRating": 0,
"isDeleted": false,
"isActive": true,
"currentDriverLocation": {
"coordinates": [
0,
0
],
"type": "Point"
},
"accountHold": false,
"driverHoldStartDt": "2022-06-08T13:27:28.561Z",
"driverHoldEndDt":"2022-06-09T13:27:28.561Z",
"truckType": [],
"authorityLetter": null,
"w9": null,
"certificateOfInsurance": null,
"image": null,
"company_name": null,
"customId": "MEH257",
"carrier": "1234"
},
"email": "alexlee@gmail.com",
"role": "driver",
"defaultAddressId": {
"_id": "1234",
"updatedAt": "2022-04-27T09:53:53.677Z",
"createdAt": "2022-04-27T09:24:26.929Z",
"driver": "1234",
"__v": 0,
"company_address": null,
"isDeleted": false,
"longitude": null,
"latitude": null
},
"__v": 0,
"edi210Callers": [],
"qboCustomFields": [],
"qbBillingDateStatus": "APPROVED",
"isInvoiceWithShortName": false,
"isTerminalClass": false,
"isCanada": false,
"groupedCities": [],
"itineraryColumnSorting": [],
"isChassisTrackingEnabled": false,
"isExtraDataFromTracer": false,
"rowColorPreferences": [],
"ftpConnections": [],
"isAllowSystem": false,
"driverAccountHold": false,
"accountHoldEnabled": false,
"equipmentParameters": [],
"requireReference": false,
"isDefaultSSLAdded": true,
"isOnBoardingDone": false,
"driverPreferences": false,
"isMailConnected": false,
"reports": [],
"groupChats": [],
"groupedProfiles": [],
"groupedCustomers": [],
"defaultPayCustomers": [],
"doubleDispatch": [],
"permissions": [],
"qbConnection": false,
"isPickupNotificationShow": false,
"isStatusNotificationShow": true,
"documents": [],
"acl": [],
"newDeduction": [],
"deduction": [],
"deviceToken": "",
"buildNo": 0,
"os": "",
"vApp": "",
"work_number": "",
"uniqueId": null,
"policy": "",
"isDelinquet": false,
"isTrialUser": false,
"isExpired": false,
"isMobileVerified": true,
"isEmailVerified": false,
"isDeleted": false,
"isAdminVerified": true,
"isAdminRejected": false,
"isBlocked": false,
"permissionRoles": [],
"notifyBy": [],
"approvedBy": [],
"fleetCustomers": [],
"passwordResetToken": "1",
"referralCreditAmount": 0,
"referralCode": "YK0000043",
"lastName": "leee",
"name": "Alex"
}
}
},
"error": null
}
This endpoint update driver.
HTTP Request
PUT https://api1.app.portpro.io/v1/driver/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the driver object. |
Request Body Parameters
Parameter | Type | Description |
---|---|---|
name | string | Name of a driver. |
lastName | string | Last name of a driver. |
string | Email no of driver. | |
isActive | boolean | Is active driver or not. |
truckType | array | Array of truck types of driver ex. ["REEFER","DRY VAN, FLATBED"] |
image | file/base64 | Image of driver. |
isELDMode | boolean | Is ELD mode of driver or not. |
licence | string | Licence state of driver. |
licenceNumber | string | Licence number of driver. |
homeTerminalTimezone | string | Home terminal zone of driver. |
logIncrements | string | Log increments of driver. |
primaryCycle | string | Primary cycle of driver. |
mobile | string | Mobile no of driver. |
secondaryCycle | string | Secondary cycle of driver. |
odometer | string | Odo meter of driver. |
cargoType | string | Cargo type of driver. |
cycleRestart | string | Cycle restart of driver. |
cycleRestBreak | string | Cycle rest break of driver. |
cycleShortHaulException | string | Cycle short haul exception of driver. |
dlExp | date/string | DL exp of driver. |
medicalExp | date/string | Medical exp of driver. |
seaLinkExp | date/string | Seal link exp of driver. |
doh | date/string | DOH date of driver. |
dob | date/string | DOB date of driver. |
termination | date/string | Termination date of driver. |
twicExp | date/string | Twice exp date of driver. |
deduction | string | Deduction |
sealLinkNuber | string | Seal link number of driver. |
document | file/base64 | Document of driver. |
accountHold | boolean | Is driver account on hold or not. |
scheduledHold | object | An object containing startDate and endDate in UTC format. Passing an empty string ("") for a field will remove its value. Omitting a field will leave the existing value unchanged. |
fileType | string | File type of file of driver. |
filename | string | File name of file of driver. |
billingEmail | string | Billing email of driver. |
profileType | array | Array of profile types of driver ex. ["PORT", "DELIVERY", "TRAILER", "COMPANY DRIVER", "INDEPENDENT CONTRACTOR", "OWNER OPERATOR", "3rd PARTY DRIVER", "TEMPORARY", "SUBCONTRACTOR", "AGENT - COMPANY", "All"] |
base64Content | string | base64 content of file of driver. |
EmergencyContactName | string | Emergency contact name of driver. |
EmergencyContactNumber | string | Emergency contact number of driver. |
EmergencyRelation | string | Emergency contact relation of driver. |
newTerminal | array | Array of new terminals of driver. |
preferredDistance | array | Array of preferred distance of driver. |
preferredTypesOfLoad | array | Array of preferred load types of driver. |
preferredStates | array | Array of preferred states of driver. |
owerWeightStates | array | Array of over wright states of driver. |
hazmat | boolean | Hazmat driver or not. |
liquor | string | Liquor of driver. |
overweight | boolean | Over weight driver or not. |
reefer | string | Reefer of driver. |
notes | string | Notes of driver. |
socialSecurity | string | Social security of driver. |
tablet | string | Tablet of driver. |
eld | string | ELD of driver. |
fuelCard | string | Fuel card of driver. |
ezPass | string | Ez pass of driver. |
driverPreferences | boolean | Driver preference or not. |
isSettlementHide | boolean | Is settlement hidden or not. |
bankAccount | string | Bank account of driver. |
routing | string | Routing of driver. |
tShirtSizes | string | T-shirt sizes of driver. |
settlementNote | string | Settlement notes for driver. |
hst | string | HST for driver. |
hstPercentage | number | HST percentage for driver. |
registerBusinessName | string | Register business name for driver. |
disableDriverPay | boolean | Disable driver pay or not. |
isDayDriver | boolean | Is day driver or not. |
externalSystemID | string | External system id. |
Upload Driver Document
The above command returns JSON structured like this:
{
"_object": "/api/response",
"self": "/document/",
"version": "1.0.0",
"data": {
"documentType": "Driver Application",
"url": "https://demo-logistics.s3.amazonaws.com/documents/shipment_AA1LGj20125.png"
},
"error":null
}
This endpoint upload a document Customer.
HTTP Request
POST https://api1.app.portpro.io/v1/driver/document
Request Parameters
Parameter | Type | Description |
---|---|---|
driverId* | string | The unique driver id. |
documentType* | string | Document type of driver, One of: ["Driver Application", "CDL", "Social Security Card", "TWIC Card", "Pre Employment Drug Test", "Medical Card", "Sealink", "Detention Pictures", "Lease Agreement", "Motor Vehicle Records", "Other"] |
file* | file | Customer document. |
Retrieve All Driver
200 OK
{
"_object": "/api/response",
"self": "/v1/driver",
"version": "1.0.0",
"count": 1,
"data": [
{
"_id": "12345",
"updatedAt": "2022-06-08T13:27:28.627Z",
"createdAt": "2022-06-08T13:27:28.627Z",
"driver": {
"_id": "1234",
"updatedAt": "2022-06-08T13:27:28.542Z",
"createdAt": "2022-06-08T13:27:28.542Z",
"name": "dell",
"lastName": "lname",
"mobile": "1234567890",
"licence": "AK",
"licenceNumber": "1234567",
"homeTerminalTimezone": "America/New_York",
"sealLinkNumber": "",
"billingEmail": "",
"liquor": "false",
"reefer": "",
"socialSecurity": "",
"tablet": "",
"eld": "",
"fuelCard": "",
"ezPass": "",
"driverPreferences": false,
"bankAccount": "",
"routing": "",
"tShirtSizes": "",
"notes": "",
"isSettlementHide": false,
"termination": null,
"country_code": "+1",
"__v": 0,
"permissions": [
"ALLOW_DRIVER_TO_REJECT_LOADS",
"ALLOW_CHAT_FOR_DRIVER",
"ALLOW_GROUP_CHAT_FOR_DRIVER",
"ALLOW_DRIVER_TO_UPDATE_TRUCK_INFORMATION_IN_PORT_PRO",
"ALLOW_DRIVER_TO_UPDATE_CHASSIS_INFORMATION_IN_PORT_PRO",
"ALLOW_DRIVER_TO_UPDATE_TRAILER_INFORMATION_IN_PORT_PRO",
"ALLOW_DRIVER_TO_UPDATE_DRIVER_DOCS_AND_EXPIRATIONS_IN_PORT_PRO"
],
"isDayDriver": true,
"disableDriverPay": false,
"overweight": false,
"hazmat": false,
"preferredDistance": [],
"preferredTypesOfLoad": [],
"preferredStates": [],
"owerWeightStates": [],
"profileType": [
"PORT",
"DELIVERY",
"TRAILER",
"COMPANY DRIVER",
"INDEPENDENT CONTRACTOR",
"OWNER OPERATOR",
"3rd PARTY DRIVER",
"TEMPORARY",
"SUBCONTRACTOR",
"AGENT - COMPANY",
"All"
],
"newTerminal": [
"1234"
],
"pickup_prefferred": [],
"delivery_prefferred": [],
"elogStatus": "OFF",
"usersRated": 0,
"totalRating": 0,
"isDeleted": false,
"isActive": true,
"currentDriverLocation": {
"coordinates": [
0,
0
],
"type": "Point"
},
"accountHold": false,
"driverHoldStartDt": "2022-06-08T13:27:28.561Z",
"driverHoldEndDt":"2022-06-09T13:27:28.561Z",
"truckType": [
"REEFER",
"DRY VAN, FLATBED"
],
"authorityLetter": null,
"w9": null,
"certificateOfInsurance": null,
"image": null,
"company_name": null,
"customId": "DEL677",
"carrier": "1234",
"externalSystemID": "000019"
},
"email": "1250@gmail.com",
"role": "driver",
"username": "asdqweem",
"defaultAddressId": {
"_id": "1234",
"updatedAt": "2022-06-08T13:27:28.561Z",
"createdAt": "2022-06-08T13:27:28.561Z",
"driver": "1234",
"__v": 0,
"isDeleted": false,
"longitude": null,
"latitude": null
},
"isDefaultExtraDataForQbDescription": false,
"__v": 0,
"edi210Callers": [],
"qboCustomFields": [],
"qbBillingDateStatus": "APPROVED",
"isInvoiceWithShortName": false,
"isTerminalClass": false,
"isCanada": false,
"groupedCities": [],
"itineraryColumnSorting": [],
"isChassisTrackingEnabled": false,
"isExtraDataFromTracer": false,
"rowColorPreferences": [],
"ftpConnections": [],
"isAllowSystem": false,
"driverAccountHold": false,
"accountHoldEnabled": false,
"equipmentParameters": [],
"requireReference": false,
"isDefaultSSLAdded": true,
"isOnBoardingDone": false,
"driverPreferences": false,
"isMailConnected": false,
"reports": [],
"groupChats": [],
"groupedProfiles": [],
"groupedCustomers": [],
"defaultPayCustomers": [],
"doubleDispatch": [],
"permissions": [],
"qbConnection": false,
"isPickupNotificationShow": false,
"isStatusNotificationShow": true,
"documents": [],
"acl": [],
"newDeduction": [],
"deduction": [],
"deviceToken": "",
"buildNo": 0,
"os": "",
"vApp": "",
"work_number": "",
"uniqueId": null,
"policy": "",
"isDelinquet": false,
"isTrialUser": false,
"isExpired": false,
"isMobileVerified": true,
"isEmailVerified": false,
"isDeleted": false,
"isAdminVerified": true,
"isAdminRejected": false,
"isBlocked": false,
"permissionRoles": [],
"notifyBy": [],
"approvedBy": [],
"fleetCustomers": [],
"referralCreditAmount": 0,
"referralCode": "GEO0000560",
"lastName": "lname",
"name": "dell",
"loads": [],
"bobTails": []
}
],
"error": null
}
This endpoint retrieves all drivers.
HTTP Request
GET https://api1.app.portpro.io/v1/driver/?limit=30&&skip=10
Query Parameters
Parameter | Type | Description |
---|---|---|
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
skip | int32 | Skip number of the terminal to retrieve |
name | string | Name of a driver |
string | Email no of driver. | |
mobile | string | Mobile no of driver. |
elogStatus | string | E-log status ON or OFF. |
searchTerm | string | Search term for search driver |
status | string | Status of driver like active, all, offline etc |
carrierId | string | Carrier id for driver. |
terminals | string | Terminal id of terminal. |
isIncludeDeleted | boolean | Include deleted driver or not |
loadAssignedStartDate | date/string | Load assigned start date of driver. |
loadAssignedEndDate | date/string | Load assigned end date of driver. |
containerSize | string | Container size of container. |
emptyOrigin | string | Empty origin. |
preferredStates | array | Array of preferred states of driver. |
owerWeightStates | array | Array of over wright states of driver. |
preferredTypesOfLoad | array | Array of preferred load types of driver. |
hazmat | boolean | Hazmat driver or not. |
liquor | string | Liquor of driver. |
reefer | string | Reefer of driver. |
overweight | boolean | Over weight driver or not. |
createdFrom | date | Driver created from date |
createdTo | date | Driver created to date |
updatedFrom | date | Driver updated from date |
updatedTo | date | Driver updated to date |
createdAtFrom | datetime | Driver created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Driver created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Driver updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Driver updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
Retrieve a Single Driver
200 OK
{
"_object": "/api/response",
"self": "/driver/2345",
"version": "1.0.0",
"data": <Driver objects>,
"error":null
}
This endpoint retrieves a specific driver.
Example of driver object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/driver/:_id
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the driver object to be retrieved |
Retrieve Driver's Location
200 OK
{
"_object": "/api/response",
"self": "/driver/get-driver-location",
"version": "1.0.0",
"data": {
"refNo": "REFR_Z236972",
"status": "DELIVERLOAD_DEPARTED",
"type": "DELIVERLOAD",
"location": {
"lat": -74.05453709999999,
"lng": 40.7173673
},
"time": "2023-04-25T08:56:35.000Z",
"driverName": "Driver Name"
},
"error": null
}
This endpoint retrieves a current location for a specific driver.
HTTP Request
GET https://api1.app.portpro.io/v1/driver/get-driver-location
Query Parameters
Parameter | Type | Description |
---|---|---|
driverId* | string | The unique id of the driver whose location is to be requested |
Delete Driver
200 OK
{
"_object": "/api/response",
"self": "/driver/2345",
"version": "1.0.0",
"data": <Driver objects>,
"error":null
}
This endpoint delete a specific driver.
Example of driver object you can find here.
HTTP Request
DELETE https://api1.app.portpro.io/v1/driver/:_id
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the driver object to be delete |
Get Static option for Driver
200 OK
When Option = "state"
you've to use values in create payload of driver.
{
"_object": "/api/response",
"self": "/driver/payload/option",
"version": "1.0.0",
"data": [
{
"value": "GU",
"label": "Guam"
},
{
"value": "HI",
"label": "Hawaii"
},
{
"value": "ID",
"label": "Idaho"
},
{
"value": "IL",
"label": "Illinois"
}
],
"error":null
}
When Option = "distance"
you've to use values in create payload of driver.
{
"_object": "/api/response",
"self": "/driver/payload/option",
"version": "1.0.0",
"data": [
{
"value": {
"min": 0,
"max": 50
},
"label": "0-50"
},
{
"value": {
"min": 51,
"max": 100
},
"label": "51-100"
},
{
"value": {
"min": 101,
"max": 150
},
"label": "101-150"
},
{
"value": {
"min": 151,
"max": 200
},
"label": "151-200"
},
{
"value": {
"min": 201,
"max": 250
},
"label": "201-250"
},
{
"value": {
"min": 251,
"max": 300
},
"label": "251-300"
},
{
"value": {
"min": 301,
"max": 350
},
"label": "301-350"
},
{
"value": {
"min": 351,
"max": 400
},
"label": "351-400"
},
{
"value": {
"min": 401,
"max": 450
},
"label": "401-450"
},
{
"value": {
"min": 451,
"max": 500
},
"label": "451-500"
},
{
"value": {
"min": 501,
"max": 550
},
"label": "501-550"
},
{
"value": {
"min": 551,
"max": 600
},
"label": "551-600"
},
],
"error":null
}
When Option = "terminal"
you've to use values in create payload of driver.
{
"_object": "/api/response",
"self": "/driver/payload/option",
"version": "1.0.0",
"data": [
{
"value": "America/New_York",
"label": "Eastern Time (US & Canada)"
},
{
"value": "America/Indiana/Indianapolis",
"label": "Indiana (East)"
},
{
"value": "America/Chicago",
"label": "Central Time (US & Canada)"
},
{
"value": "America/Regina",
"label": "Saskatchewan"
},
{
"value": "America/Denver",
"label": "Mountain Time (US & Canada)"
},
{
"value": "America/Phoenix",
"label": "Arizona"
},
{
"value": "America/Juneau",
"label": "Alaska"
},
{
"value": "America/Los_Angeles",
"label": "Pacific Time (US & Canada)"
},
{
"value": "America/Halifax",
"label": "Atlantic Time (Canada)"
}
],
"error":null
}
This endpoint retrieve static payload data for driver APIs.
HTTP Request
GET https://api1.app.portpro.io/v1/driver/payload/option?option=<value>
option should be state, distance or terminal.
Query Parameters
Parameter | Type | Description |
---|---|---|
option* | string | Option should be one of them distance, state, terminal |
Retrieve Driver Pay Rules
200 OK
{
"_object": "/api/response",
"self": "/v1/driver-pay-rules",
"version": "1.0.0",
"data": {
"_id": "1234",
"carrier": "1234",
"__v": 0,
"createdAt": "2021-10-08T20:08:32.550Z",
"rules": [
{
"index": 1,
"_id": "1234",
"paymentType": "1234",
"load_type": [
"IMPORT"
],
"name": "pier_congestion",
"type": "fixed",
"query": [
{
"children": [
{
"field": "caller",
"value": [
"{\"label\":\"OEC Group, 13100 Alondra Blvd, Cerritos, CA 90703, USA\",\"value\":\"5fb550a1a52b2a0a8740300b\"}"
],
"operator": "ANY_IN"
}
],
"type": "GROUP",
"value": "AND",
"isNegated": false
}
],
"amount": null,
"freeDays": 0,
"terminals": []
},
{
"index": 2,
"_id": "1234",
"paymentType": "1234",
"load_type": [
"IMPORT"
],
"name": "pier_congestion",
"type": "fixed",
"query": [
{
"type": "GROUP",
"value": "AND",
"isNegated": false,
"children": [
{
"field": "type_of_load",
"value": [
"{\"label\":\"IMPORT\",\"value\":\"IMPORT\"}"
],
"operator": "ANY_IN"
}
]
}
],
"amount": null,
"freeDays": 0,
"terminals": []
},
],
"updatedAt": "2022-12-07T11:16:59.470Z"
},
"error": null
}
This endpoint retrieves driver pay rules.
HTTP Request
GET https://api1.app.portpro.io/v1/driver-pay-rules
Retrieve Driver Audits
200 OK
{
"_object": "/api/response",
"self": "/v1/audit/driver",
"version": "1.0.0",
"count": "82",
"data": [
{
"oldData": {},
"newData": {
"doh": "2025-07-07T22:00:00.000Z"
},
"action": "UPDATE",
"entityId": "685bc0f54d7dd5******",
"actorId": "5c8a3aa697661*******",
"actorDetail": {
"name": "HaulsPoul"
},
"createdAt": "2025-07-18T05:51:00.880Z"
}
],
"error": null,
"other": {
"pageToken": "U2FsdGVkX18IdZlLG31VcE8v3H4OX%2*******"
}
}
This endpoint retrieves audit history for driver records.
HTTP Request
GET https://api1.app.portpro.io/v1/audit/driver
Query Parameters
Parameter | Type | Description |
---|---|---|
createdAtFrom | datetime | Filter audit records created from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
createdAtTo | datetime | Filter audit records created to datetime(UTC). e.g. 2025-06-06T08:40:47.772Z |
action | string | Filter by action type (e.g., "ADD", "DOCUMENT_UPLOAD", "DL_EXPIRY_UPDATED", "MEDICAL_EXPIRY_UPDATED", "TWIC_EXPIRY_UPDATED", "SEALINK_EXPIRY_UPDATED", "DRIVER_HOLD", "DRIVER_UNHOLD", "UPDATE", "MOBILE_PERMISSION", "HOLD_UPDATED", "UNHOLD_UPDATED", "REMOVE", "DOCUMENT_REMOVE", "ELD_UPDATE", "DRIVER_CLOCK_IN_OUT") |
entityId | string | Filter by specific entity ID(Driver Id) |
actorIds | array | Filter audit records by specific user IDs who made the changes |
limit | number | Number of records to fetch per request. Default is 50, maximum is 50 records per request |
pageToken | string | Token for pagination to get next set of results |
Equipment
Retrieve Trucks
200 OK
{
"_object": "/api/response",
"self": "/v1/equipment/truck",
"version": "1.0.0",
"count": 30,
"data":[
{
"_id": "1234",
"updatedAt": "2023-04-26T07:51:46.076Z",
"createdAt": "2023-03-24T06:24:36.451Z",
"equipment_type": "TRUCK",
"equipmentID": "TEST Truck",
"model": "1212",
"vin": "vin56",
"licence_plate_state": "st",
"licence_plate_number": "lp#23232",
"odometer": "120",
"enginefamily": "efam#121212",
"fleetTruckOwner": "641d4017de26d7effbbfcb4",
"transmission": "Automatic",
"carrier": "1234",
"__v": 0,
"AID": "2023-03-08T07:00:00.000Z",
"ITD": "2023-03-09T07:00:00.000Z",
"annual_inspection": "2023-03-04T07:00:00.000Z",
"bobtail_insurance": "2023-03-05T07:00:00.000Z",
"diesel_emission": "2023-03-07T07:00:00.000Z",
"gps": "gps2345",
"hut_exp": "2023-03-03T07:00:00.000Z",
"ifta": "2023-03-06T07:00:00.000Z",
"inspection_exp": "2023-03-02T07:00:00.000Z",
"maintenanceDue": "2023-03-11T07:00:00.000Z",
"maintenanceReceived": "2023-03-10T07:00:00.000Z",
"make": "make12",
"reg_expiration": "2023-03-01T07:00:00.000Z",
"rfid": "rfid353",
"year": 2035,
"notes": "TEST NOTES",
"driver": "22222",
"load": {
"_id": "643d90abf3b6ccb948f95a",
"type_of_load": "IMPORT",
"status": "DISPATCHED",
"reference_number": "TES_M102037",
"driver": {
"_id": "22222",
"lastName": "Driver",
"name": "TEST"
},
"driverOrder": [
{
"_id": "1111",
"moveId": "3333",
"company_name": "MAHER",
"zip_code": "08358",
"country": "US",
"state": "NJ",
"city": "CHERRY HILL",
"customerId": "4444",
"type": "PULLCONTAINER",
"driver": "22222",
"loadAssignedDate": "2023-04-26T07:51:44.929Z",
"priority": 0,
"isGrayPool": false,
"isBobtail": false,
"address": {
"address": "1",
"lat": 12,
"lng": 12
},
"distance": 0,
"isVoidOut": false
},
{
"_id": "65565",
"company_name": "MAHER",
"zip_code": "08358",
"country": "US",
"state": "NJ",
"city": "CHERRY HILL",
"moveId": "77777",
"loadAssignedDate": "2023-04-26T07:51:44.929Z",
"driver": "22222",
"customerId": "4444",
"type": "DELIVERLOAD",
"priority": 0,
"isGrayPool": false,
"isBobtail": false,
"address": {
"address": "1",
"lat": 12,
"lng": 12
},
"distance": 0,
"isVoidOut": false
},
{
"_id": "909909",
"company_name": "ABCRC ST.ALBERT",
"zip_code": "T5V",
"country": "CA",
"state": "AB",
"city": "St. Albert",
"moveId": "2323232",
"loadAssignedDate": "2023-04-26T07:51:44.929Z",
"driver": "22222",
"customerId": "4444",
"type": "DELIVERLOAD",
"priority": 0,
"isGrayPool": false,
"isBobtail": false,
"address": {
"address": "14 Richardson Drive, St. Albert, AB T5V, Canada",
"lat": 53.6029624,
"lng": -113.6456298
},
"distance": 0,
"isVoidOut": false
},
{
"type": "RETURNCONTAINER",
"driver": "22222",
"loadAssignedDate": "2023-04-26T07:51:44.929Z",
"moveId": "44544",
"_id": "9999",
"priority": 0,
"isGrayPool": false,
"isBobtail": false,
"distance": 0,
"isVoidOut": false
}
],
"statusOrder": []
},
"documents": [
{
"description": "",
"userId": {
"_id": "232323",
"lastName": "Brown",
"name": "Drake Ltle"
},
"date": "2023-03-24T06:32:02.171Z",
"url": "https://test-bucket.s3.amazonaws.com//test.jpg",
"type": "Registration",
"_id": "1234",
"checked": false
}
],
"newTerminal": [
"1234"
],
"isDeleted": false
}
],
"error":null
}
This endpoint retrieves all trucks.
HTTP Request
GET https://api1.app.portpro.io/v1/equipment/truck
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the truck to retrieve |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
searchTerm | string | Search term for search trucks. Fields supports: equipmentID, make |
terminals | array | Terminals of trucks. |
isIncludeDeleted | boolean | Is include deleted trucks. |
createdAtFrom | datetime | Truck created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Truck created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Truck updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Truck updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
Retrieve Truck Audits
200 OK
{
"_object": "/api/response",
"self": "/v1/audit/truck",
"version": "1.0.0",
"count": "21",
"data": [
{
"oldData": {
"hut_exp": null
},
"newData": {
"hut_exp": "2025-07-08T22:00:00.000Z"
},
"action": "UPDATE",
"entityId": "6719f06d03e6394******",
"actorId": "5c8a3aa697661*******",
"actorDetail": {
"name": "AlexCorry"
},
"createdAt": "2025-07-08T13:45:26.253Z"
}
],
"error": null,
"other": {
"pageToken": "U2FsdGVkX1%2FBwr%2BLyGUgxdg******"
}
}
This endpoint retrieves audit history for truck records.
HTTP Request
GET https://api1.app.portpro.io/v1/audit/truck
Query Parameters
Parameter | Type | Description |
---|---|---|
createdAtFrom | datetime | Filter audit records created from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
createdAtTo | datetime | Filter audit records created to datetime(UTC). e.g. 2025-06-06T08:40:47.772Z |
action | string | Filter by action type (e.g., "ADD", "UPDATE", "REMOVE", "DOCUMENT_UPLOAD", "DOCUMENT_REMOVE", "ELD_UPDATE", "API_ADD", "API_UPDATE") |
entityId | string | Filter by specific entity ID(Truck Id) |
actorIds | array | Filter audit records by specific user IDs who made the changes |
limit | number | Number of records to fetch per request. Default is 50, maximum is 50 records per request |
pageToken | string | Token for pagination to get next set of results |
Retrieve Chassis
200 OK
{
"_object": "/api/response",
"self": "/v1/equipment/chassis",
"version": "1.0.0",
"count": 30,
"data":[
{
"_id": "1111",
"updatedAt": "2023-04-28T06:10:02.114Z",
"createdAt": "2023-04-27T10:09:21.549Z",
"chassisNo": "TEST",
"chassisType": {
"_id": "1233",
"updatedAt": "2023-04-21T12:11:36.472Z",
"createdAt": "2023-04-21T12:11:36.472Z",
"name": "TEST TYPE",
"isDeleted": false,
"__v": 0
},
"chassisSize": {
"_id": "2345",
"updatedAt": "2018-10-09T04:48:17.974Z",
"createdAt": "2018-10-09T04:48:17.974Z",
"name": "53'",
"isDeleted": false,
"__v": 0
},
"chassisOwner": {
"_id": "12345",
"updatedAt": "2023-03-24T06:17:36.505Z",
"createdAt": "2023-03-24T06:17:36.505Z",
"__v": 0,
"mobile": "3423131224",
"address": "The Bronx",
"state": "NY",
"city": "The Bronx",
"zip_code": "10461",
"carrier": "56565",
"isDeleted": false,
"contact_name": "TEST CONTACT",
"company_name": "TEST COMPANY"
},
"licenceState": "NY",
"licenceNumber": "458963",
"carrier": "12233",
"documents": [
{
"type": "NEW",
"url": "https://test-bucket.s3.amazonaws.com//test.jpg",
"date": "2023-03-24T06:47:22.937Z",
"userId": {
"_id": "2334",
"lastName": "Brown",
"name": "Drake Ltle"
},
"description": "",
"_id": "222",
"checked": true
},
],
"newTerminal": [
"1111"
],
"isDeleted": false,
"__v": 0,
"load": {
"_id": "1234",
"reference_number": "TEST_M101426",
"type_of_load": "IMPORT",
"status": "PULLCONTAINER_DEPARTED",
"driverOrder": [
{
"isVoidOut": false,
"distance": 0,
"address": {
"lng": -113.6846387,
"lat": 53.5625833,
"address": "21216 113 Ave NW, Edmonton, AB T5S 1Y6, Canada"
},
"isBobtail": false,
"isGrayPool": false,
"priority": 0,
"departed": "2023-04-27T11:42:44.524Z",
"arrived": "2023-04-27T11:42:44.524Z",
"loadAssignedDate": "2023-04-27T10:10:32.390Z",
"driver": "11111",
"type": "PULLCONTAINER",
"customerId": "22222",
"city": "Edmonton",
"state": "AB",
"country": "CA",
"zip_code": "T5S 1Y6",
"company_name": "PROFORMANCE EDM",
"_id": "23332",
"moveId": "323234"
},
{
"isVoidOut": false,
"distance": 0,
"address": {
"lng": 12,
"lat": 12,
"address": "#1 FAKE STREET"
},
"isBobtail": false,
"isGrayPool": false,
"priority": 0,
"loadAssignedDate": "2023-04-27T10:10:32.390Z",
"driver": "1111",
"type": "DELIVERLOAD",
"customerId": "44444",
"city": "Calgary",
"state": "AB",
"country": "CA",
"zip_code": "A1A1A1",
"company_name": "RONA",
"_id": "32324",
"moveId": "42424"
},
{
"isVoidOut": false,
"distance": 0,
"isBobtail": false,
"isGrayPool": false,
"priority": 0,
"loadAssignedDate": "2023-04-27T10:10:32.390Z",
"driver": "11111",
"type": "RETURNCONTAINER",
"_id": "323232",
"moveId": "3232323"
}
],
"driver": {
"_id": "11111",
"lastName": "DRIVER",
"name": "TEST"
},
"driverOrderId": {
"isVoidOut": false,
"distance": 0,
"address": {
"address": "21216 113 Ave NW, Edmonton, AB T5S 1Y6, Canada",
"lat": 53.5625833,
"lng": -113.6846387
},
"isBobtail": false,
"isGrayPool": false,
"priority": 0,
"moveId": "434344",
"_id": "43434",
"company_name": "PROFORMANCE EDM",
"zip_code": "T5S 1Y6",
"country": "CA",
"state": "AB",
"city": "Edmonton",
"customerId": "33333",
"type": "PULLCONTAINER",
"driver": "11111",
"loadAssignedDate": "2023-04-27T10:10:32.390Z",
"arrived": "2023-04-27T11:42:44.524Z",
"departed": "2023-04-27T11:42:44.524Z"
}
},
"lastDroppedStatus": {
"chassis": "644a49d117c171390f02a",
"customer": "618c5a1d94814ffc307ee",
"load": "62fb6cb5feafae63f52a8",
"driver": "6405bc1935785b6686b09",
"status": "PULLCONTAINER",
"address": "21216 113 Ave NW, Edmonton, AB T5S 1Y6, Canada",
"date": "2023-04-27T11:42:44.524Z"
}
}
],
"error":null
}
This endpoint retrieves all chassis.
HTTP Request
GET https://api1.app.portpro.io/v1/equipment/chassis
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the chassis to retrieve |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
searchTerm | string | Search term for search chassis. Fields supports: chassisNo |
terminals | array | Terminals of chassis. |
isIncludeDeleted | boolean | Is include deleted chassis. |
createdAtFrom | datetime | Chassis created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Chassis created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Chassis updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Chassis updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
Retrieve Chassis Audits
200 OK
{
"_object": "/api/response",
"self": "/v1/audit/chassis",
"version": "1.0.0",
"count": "122",
"data": [
{
"oldData": {
"chassisNo": "",
"chassisSize": "",
"chassisOwner": "",
"licenceState": "",
"licenceNumber": ""
},
"newData": {
"chassisNo": "CHASSIS001",
"chassisSize": "2345",
"chassisOwner": "12345",
"licenceState": "NY",
"licenceNumber": "458963"
},
"action": "UPDATE",
"entityId": "6792081f4b62e******",
"actorId": "6631ecfc51a7be0*******",
"actorDetail": {
"name": "DanishKrone"
},
"createdAt": "2025-07-17T12:49:00.615Z"
}
],
"error": null,
"other": {
"pageToken": "U2FsdGVkX18CqZFUTt3WHiT******"
}
}
This endpoint retrieves audit history for chassis records.
HTTP Request
GET https://api1.app.portpro.io/v1/audit/chassis
Query Parameters
Parameter | Type | Description |
---|---|---|
createdAtFrom | datetime | Filter audit records created from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
createdAtTo | datetime | Filter audit records created to datetime(UTC). e.g. 2025-06-06T08:40:47.772Z |
action | string | Filter by action type (e.g., "ADD", "UPDATE", "REMOVE", "DOCUMENT_UPLOAD", "DOCUMENT_REMOVE", "ELD_UPDATE", "API_ADD", "API_UPDATE") |
entityId | string | Filter by specific entity ID(Chassis Id) |
actorIds | array | Filter audit records by specific user IDs who made the changes |
limit | number | Number of records to fetch per request. Default is 50, maximum is 50 records per request |
pageToken | string | Token for pagination to get next set of results |
Retrieve Trailers
200 OK
{
"_object": "/api/response",
"self": "/v1/equipment/trailer",
"version": "1.0.0",
"count": 30,
"data":[
{
"_id": "212112",
"updatedAt": "2023-04-25T04:21:39.253Z",
"createdAt": "2023-03-24T06:36:10.716Z",
"__v": 0,
"equipmentID": "TEST Trailer",
"year": 2012,
"equipment_type": "TRAILER",
"carrier": "6058a1f9af214ec2fab2b",
"licence_plate_number": "",
"licence_plate_state": "",
"make": "",
"model": "2021",
"size": "48'",
"vin": "vin123",
"documents": [
{
"userId": {
"_id": "121212",
"lastName": "Dhakals",
"name": "Alex"
},
"date": "2023-04-25T04:21:39.252Z",
"type": "Ic Agreement",
"url": "https://test-bucket.s3.amazonaws.com//test.jpg",
"_id": "6447555344b5f87d60d4bcd3",
"checked": true
}
],
"newTerminal": [
"641d2b33dd06de94ff0f5",
"6328506c4d442911950ad"
],
"isDeleted": false
}
],
"error":null
}
This endpoint retrieves all trailers.
HTTP Request
GET https://api1.app.portpro.io/v1/equipment/trailer
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the trailer to retrieve |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
searchTerm | string | Search term for search trailer. Fields supports: chassisNo |
terminals | array | Terminals of trailer. |
isIncludeDeleted | boolean | Is include deleted trailer. |
createdAtFrom | datetime | Trailer created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdAtTo | datetime | Trailer created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Trailer updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Trailer updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
Retrieve Trailer Audits
200 OK
{
"_object": "/api/response",
"self": "/v1/audit/trailer",
"version": "1.0.0",
"count": "20",
"data": [
{
"oldData": {
"inspection_exp": "2023-07-01T22:00:00.000Z"
},
"newData": {
"inspection_exp": "2023-07-12T22:00:00.000Z"
},
"action": "UPDATE",
"entityId": "6867b095f962a9******",
"actorId": "5c8a3aa6976610******",
"actorDetail": {
"name": "MarkDell"
},
"createdAt": "2025-07-04T11:10:23.368Z"
}
],
"error": null,
"other": {
"pageToken": "U2FsdGVkX19qQXKrxPBupg%2F3AAR2Y77Ax******"
}
}
This endpoint retrieves audit history for trailer records.
HTTP Request
GET https://api1.app.portpro.io/v1/audit/trailer
Query Parameters
Parameter | Type | Description |
---|---|---|
createdAtFrom | datetime | Filter audit records created from datetime(UTC). e.g. 2025-02-06T08:40:47.772Z |
createdAtTo | datetime | Filter audit records created to datetime(UTC). e.g. 2025-06-06T08:40:47.772Z |
action | string | Filter by action type (e.g., "ADD", "UPDATE", "REMOVE", "DOCUMENT_UPLOAD", "DOCUMENT_REMOVE", "ELD_UPDATE", "API_ADD", "API_UPDATE") |
entityId | string | Filter by specific entity ID(Trailer Id) |
actorIds | array | Filter audit records by specific user IDs who made the changes |
limit | number | Number of records to fetch per request. Default is 50, maximum is 50 records per request |
pageToken | string | Token for pagination to get next set of results |
Credit Memo
Credit Memo Object
Demo Credit Memo Response
{
"credit_memo_number": "D5X77_T000019",
"carrier": "Eirmon Trucking",
"customerName": "TRAIL2",
"taxType": "APPLICABLE",
"taxAmount": 150,
"taxRate": 0.1,
"date": "2023-03-28T11:33:23.170Z",
"documents": [],
"isDeleted": true,
"mcNumber": "1111",
"invoiceBillingDate": "2023-05-12T04:00:00.000Z",
"currency": {
"currencyCode": "EUR",
"decimal": ".",
"name": "Euro",
"negativePattern": "-!#",
"pattern": "!#",
"precision": 2,
"separator": ".",
"symbol": "€",
"useVedic": true
},
"customerDetail": {
"_id": "12345",
"companyID": "USER123",
"externalSystemID": "1234"
},
"charges": [
{
"description": "Demo description",
"name": "BASE PRICE",
"amount": 4000,
"glCode": "GL-001",
"glCodeName": "First"
},
{
"description": "Demo description",
"name": "FUEL",
"amount": 6000,
"glCode": "GL-001",
"glCodeName": "First"
},
{
"description": "Demo description",
"name": "CHASSIS",
"amount": 2000,
"glCode": "GL-001",
"glCodeName": "First"
}
]
}
Here is the Credit Memo response object for parameter reference.
Parameter | Type | Description |
---|---|---|
credit_memo_number | string | The credit_memo_number is Unique identifier which indicates number of credit memo. |
carrier | string | Name of the trucking company. |
customerName | string | Customer name of credit memo. |
taxType | string | Type of tax it can only be APPLICABLE or EXEMPT. |
taxAmount | int32 | Tax amount of credit memo. |
taxRate | int32 | Tax rate for that load. e.g. For 10% it is 0.1 |
isDeleted | boolean | Indicates with true or false if creditmemo is deleted or not |
charges | array | Array of charge which contains name (name should be same as charge code), amount and desciption for each charge. |
mcNumber | string | mcNumber of customer. |
invoiceBillingDate | string | Billing date of credit memo reference invoice. |
currency | object | Currency of credit memo which will be same as reference invoice. |
customerDetail | object | Customer detail which includes _id, companyID and externalSystemID. |
Credit Memo Statuses
Status | Description |
---|---|
DRAFTED | By default status of credit memo at the time of creation. |
APPROVED | Memo is approved but mail is not sent to the customer, *Credit memo is editable. |
UNAPPROVED | Memo is unapproved for certain reason, *Credit memo is editable. |
INVOICED | Credit memo is approved and sent to the customer, *Credit memo is not editable. |
PARTIALLY_PAID | Some credit amount has been used to pay one or more invoices, *Credit memo is not editable. |
FULLY_PAID | Credit amount has been used to pay fully one or more invoices, *Credit memo is not editable. |
Create Credit Memo
200 OK
{
"_object": "/api/response",
"self": "/v1/credit-memo",
"version": "1.0.0",
"data": {
"credit_memo_number": "ABCD_T000041",
"customerName": "DEMO CUSTOMER",
"taxType": "APPLICABLE",
"taxNote": "Example Tax Note",
"taxAmount": 0,
"taxRate": 0,
"date": "2023-03-30T03:47:15.675Z",
"documents": [],
"isDeleted": false,
"applied_credits": 0,
"remain_credits": 359,
"total_credits": 359,
"status": "DRAFTED",
"reference_number": "ABCD_12345",
"title": "Demo title",
"description": "Demo description",
"appliedCreditToInvoices": [],
"updatedAt": "2023-03-30T03:47:15.675Z",
"createdAt": "2023-03-30T03:47:15.675Z",
"mcNumber": "1111",
"invoiceBillingDate": "2023-05-12T04:00:00.000Z",
"currency": {
"currencyCode": "EUR",
"decimal": ".",
"name": "Euro",
"negativePattern": "-!#",
"pattern": "!#",
"precision": 2,
"separator": ".",
"symbol": "€",
"useVedic": true
},
"customerDetail": {
"_id": "12345",
"companyID": "USER123",
"externalSystemID": "1234"
},
"charges": [
{
"description": "Example description",
"amount": 23,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 123,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 213,
"name": "CHASSIS"
}
]
},
"error": null
}
This endpoint creates new Credit Memo.
Example of credit memo object you can find here.
HTTP Request
POST https://api1.app.portpro.io/v1/credit-memo
Request BODY
Parameter | Type | Description |
---|---|---|
charges* | array | Array of charge which contains name (name should be same as charge code), amount and description for each charge. |
reference_number* | string | reference number of the load. e.g. ABCD_12345. |
customer* | string | Customer Id or Email. |
status | string | One of: [APPROVED, UNAPPROVED, INVOICED]. By default it will set to DRAFTED. |
title | string | Title of the credit memo. |
description | string | Description of credit memo. |
taxName | string | Tax name of credit memo. e.g. VAT. |
taxNote | string | Tax note of credit memo |
taxType | string | It can be APPLICABLE or EXEMPT. |
taxAmount | int32 | Tax amount of credit memo. |
taxRate | int32 | Tax rate for that load. e.g. For 10% it is 0.1 |
date | string | Date of credit memo e.g. 2023-03-30T03:47:15.675Z. |
sub_reference_number | string | Sub reference Number of the load. e.g. M_12345. |
documents | array | Array of document. |
notes | string | Notes of credit memo. |
Retrieve Single Credit Memo
200 OK
{
"_object": "/api/response",
"self": "/v1/credit-memo/",
"version": "1.0.0",
"data": {
"credit_memo_number": "ABCD_T000041",
"customerName": "DEMO CUSTOMER",
"taxType": "APPLICABLE",
"taxNote": "Example Tax Note",
"taxAmount": 0,
"taxRate": 0,
"date": "2023-03-30T03:47:15.675Z",
"documents": [],
"isDeleted": false,
"applied_credits": 0,
"remain_credits": 359,
"total_credits": 359,
"status": "DRAFTED",
"reference_number": "ABCD_12345",
"title": "Demo title",
"description": "Demo description",
"appliedCreditToInvoices": [],
"updatedAt": "2023-03-30T03:47:15.675Z",
"createdAt": "2023-03-30T03:47:15.675Z",
"mcNumber": "1111",
"invoiceBillingDate": "2023-05-12T04:00:00.000Z",
"currency": {
"currencyCode": "EUR",
"decimal": ".",
"name": "Euro",
"negativePattern": "-!#",
"pattern": "!#",
"precision": 2,
"separator": ".",
"symbol": "€",
"useVedic": true
},
"customerDetail": {
"_id": "12345",
"companyID": "USER123",
"externalSystemID": "1234"
},
"charges": [
{
"description": "Example description",
"amount": 23,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 123,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 213,
"name": "CHASSIS"
}
]
},
"error":null,
}
This endpoint retrieves a specified Credit Memo .
Example of credit memo object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/credit-memo/<credit_memo_number>
Request Query Parameters
Parameter | Type | Description |
---|---|---|
credit_memo_number* | string | The credit_memo_number is Unique identifier which indicates number of credit memo. |
Retrieve All Credit Memos
200 OK
{
"_object": "/api/response",
"self": "/v1/credit-memo",
"version": "1.0.0",
"count": 1,
"data": [{
"credit_memo_number": "ABCD_T000041",
"customerName": "DEMO CUSTOMER",
"taxType": "APPLICABLE",
"taxNote": "Example Tax Note",
"taxAmount": 0,
"taxRate": 0,
"date": "2023-03-30T03:47:15.675Z",
"documents": [],
"isDeleted": false,
"applied_credits": 0,
"remain_credits": 359,
"total_credits": 359,
"status": "DRAFTED",
"reference_number": "ABCD_12345",
"title": "Demo title",
"description": "Demo description",
"appliedCreditToInvoices": [],
"updatedAt": "2023-03-30T03:47:15.675Z",
"createdAt": "2023-03-30T03:47:15.675Z",
"mcNumber": "1111",
"invoiceBillingDate": "2023-05-12T04:00:00.000Z",
"currency": {
"currencyCode": "EUR",
"decimal": ".",
"name": "Euro",
"negativePattern": "-!#",
"pattern": "!#",
"precision": 2,
"separator": ".",
"symbol": "€",
"useVedic": true
},
"customerDetail": {
"_id": "12345",
"companyID": "USER123",
"externalSystemID": "1234"
},
"charges": [
{
"description": "Example description",
"amount": 23,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 123,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 213,
"name": "CHASSIS"
}
]
}],
"error": null
}
This endpoint retrieves all Credit Memos.
Example of credit memo object you can find here.
HTTP Request
GET https://api1.app.portpro.io/v1/credit-memo
Request BODY
Parameter | Type | Description |
---|---|---|
createdAtTo | datetime | Credit memo created to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtFrom | datetime | Credit memo updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAtTo | datetime | Credit memo updated to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
createdFrom | datetime | Credit memo created from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
memoDateFrom | datetime | Credit memo updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
memoDateTo | datetime | Credit memo updated from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
status | Array | Status of the invoice. Any of: [DRAFTED, APPROVED, UNAPPROVED, INVOICED, PARTIAL_PAID, FULL_PAID] |
customer | string | Id of Customer |
skip | int32 | Skip number of the credit memo to retrieve. |
limit | int32 | Number of records to fetch per request. when not set will use the default value of 50 records. maximum you can retrieves 50 records per request. |
Update Credit Memo
200 OK
{
"_object": "/api/response",
"self": "/v1/credit-memo/",
"version": "1.0.0",
"data": {
"memo": {
"credit_memo_number": "ABCD_T000041",
"customerName": "DEMO CUSTOMER",
"taxType": "APPLICABLE",
"taxNote": "Example Tax Note",
"taxAmount": 0,
"taxRate": 0,
"date": "2023-03-30T03:47:15.675Z",
"documents": [],
"isDeleted": false,
"applied_credits": 0,
"remain_credits": 359,
"total_credits": 359,
"status": "DRAFTED",
"reference_number": "ABCD_12345",
"title": "Demo title",
"description": "Demo description",
"appliedCreditToInvoices": [],
"updatedAt": "2023-03-30T03:47:15.675Z",
"createdAt": "2023-03-30T03:47:15.675Z",
"mcNumber": "1111",
"invoiceBillingDate": "2023-05-12T04:00:00.000Z",
"currency": {
"currencyCode": "EUR",
"decimal": ".",
"name": "Euro",
"negativePattern": "-!#",
"pattern": "!#",
"precision": 2,
"separator": ".",
"symbol": "€",
"useVedic": true
},
"charges": [
{
"description": "Example description",
"amount": 23,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 123,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 213,
"name": "CHASSIS"
}
]
},
"message": "Updated successfully"
},
"error": null
}
This endpoint updates a specified Credit Memo.
HTTP Request
PUT https://api1.app.portpro.io/v1/credit-memo/
Parameter | Type | Description |
---|---|---|
credit_memo_number* | string | The credit_memo_number is Unique identifier which indicates number of credit memo. |
status | string | One of: [APPROVED, UNAPPROVED, INVOICED]. By default it will set to DRAFTED. |
charges | array | Array of charge which contains name (name should be same as charge code), amount and desciption for each charge. |
taxName | string | Tax name of credit memo. e.g. VAT. |
taxNote | string | Tax note of credit memo. |
taxType | string | It can be APPLICABLE or EXEMPT. |
taxAmount | int32 | Tax amount of credit memo. |
taxRate | int32 | Tax rate for that load. e.g. For 10% it is 0.1 |
documents | array | Array of document. |
notes | string | Notes of credit memo. |
Delete Credit Memo
200 OK
{
"_object": "/api/response",
"self": "/v1/credit-memo/",
"version": "1.0.0",
"data": {
"credit_memo_number": "ABCD_T000007",
"message": "Deleted successfully"
},
"error": null
}
This endpoint deletes a specified Credit Memo.
HTTP Request
DELETE https://api1.app.portpro.io/v1/credit-memo/
Query Parameters
Parameter | Type | Description |
---|---|---|
credit_memo_number* | string | The credit_memo_number is Unique identifier which indicates number of credit memo. |
Apply Credit Memo
200 OK
{
"_object": "/api/response",
"self": "/v1/credit-memo/apply/",
"version": "1.0.0",
"data": {
"memo": {
"credit_memo_number": "ABCD_T000041",
"customerName": "DEMO CUSTOMER",
"taxType": "APPLICABLE",
"taxNote": "Example Tax Note",
"taxAmount": 0,
"taxRate": 0,
"date": "2023-03-30T03:47:15.675Z",
"documents": [],
"isDeleted": false,
"applied_credits": 359,
"remain_credits": 0,
"total_credits": 359,
"status": "FULL_PAID",
"reference_number": "ABCD_12345",
"title": "Demo title",
"description": "Demo description",
"appliedCreditToInvoices": [
{
"invoiceAmount": 220,
"billingDate": "2023-04-26T05:42:52.482Z",
"reference_number": "ABCD_SMI_B100619",
"amount": 220
},
{
"invoiceAmount": 220,
"billingDate": "2023-04-13T09:44:21.649Z",
"reference_number": "ABCD_SMI_R100583",
"sub_reference_number": "M_12345",
"amount": 220
}
],
"mcNumber": "1111",
"invoiceBillingDate": "2023-05-12T04:00:00.000Z",
"currency": {
"currencyCode": "EUR",
"decimal": ".",
"name": "Euro",
"negativePattern": "-!#",
"pattern": "!#",
"precision": 2,
"separator": ".",
"symbol": "€",
"useVedic": true
},
"charges": [
{
"description": "Example description",
"amount": 23,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 123,
"name": "BASE PRICE"
},
{
"description": "Example description",
"amount": 213,
"name": "CHASSIS"
}
]
},
"error":null
}
This endpoint applies a specified Credit Memo to Invoices.
*Credit memo can only be applied if Credit Memo is INVOICED or PARTIALLY_PAID
Example of credit memo object you can find here.
HTTP Request
PUT https://api1.app.portpro.io/v1/credit-memo/apply
Request Body Parameters
Parameter | Type | Description |
---|---|---|
memo | object | A memo is an object which contains credit_memo_number* and amount* of the creditMemo. |
invoice | array | A invoice is an array of object which includes invoice_number* and amount* of Invoice. |
Send Credit Email
200 OK
{
"_object": "/api/response",
"self": "/v1/credit-memo/email",
"version": "1.0.0",
"data": {
"message": "Success",
"statusCode": 200,
"data": [
null,
{
"accepted": [
"Ecustomer4@yopmail.com"
],
"rejected": [],
"response": "250 2.0.0 Ok: queued as 140EB2C04D7",
"envelope": {
"from": "do-not-reply@portpro.io",
"to": [
"Ecustomer4@yopmail.com"
]
},
"messageId": "1cd0c733-90fe-c67d-1cf8-1b9ad599db16@portpro.io"
}
]
},
"error": null
}
This endpoint enables to send credit email to customers.
HTTP Request
POST https://api1.app.portpro.io/v1/credit-memo/email
Request Body
Parameter | Type | Description |
---|---|---|
credit_memo_number* | string | The credit_memo_number is Unique identifier which indicates number of credit memo. |
subject | string | The subject about the email. |
body | string | The body of the email. |
email* | string | Email of the customer. |
cc | string | Carbon Copy. |
Currency and Exchange Rate
PortPro provides the ability to create/update custom exchange rate if required. To use this feature please contact PortPro support to enable this feature for the account.
List Available Currencies
200 OK
{
"_object": "/api/response",
"self": "/v1/currency",
"version": "1.0.0",
"data": [
{
"currencyCode": "USD",
"symbol": "$",
"name": "US Dollars"
},
{
"currencyCode": "EUR",
"symbol": "€",
"name": "Euro"
},
{
"currencyCode": "DKK",
"symbol": "kr.",
"name": "Danish Krone"
}
],
"error": null
}
This endpoint returns the list of available currencies in PortPro. If the required currency is not present in the list, please contact PortPro support.
HTTP Request
GET https://api1.app.portpro.io/v1/currency
Request Query Parameters
Parameter | Type | Description |
---|---|---|
limit | int32 | Count of items in each page. Should be between 1 and 100 |
List System Exchange Rates
200 OK
{
"_object": "/api/response",
"self": "/v1/currency/exchange-rate/system",
"version": "1.0.0",
"count": 26,
"data": [
{
"baseCurrencyCode": "DKK",
"targetCurrencyCode": "EUR",
"exchangeRate": 0.13,
"exchangeDate": "2023-02-15T01:31:00.000Z",
"createdAt": "2023-02-02T10:31:51.104Z",
"updatedAt": "2023-02-02T10:31:51.104Z"
},
{
"baseCurrencyCode": "EUR",
"targetCurrencyCode": "SEK",
"exchangeRate": 11.23,
"exchangeDate": "2023-02-15T20:39:00.000Z",
"createdAt": "2023-02-16T06:39:35.488Z",
"updatedAt": "2023-02-16T06:39:35.488Z"
}
],
"error": null
}
This endpoint returns the list of latest exchange rates provided by the system.
HTTP Request
GET https://api1.app.portpro.io/v1/currency/exchange-rate/system
Request Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of exchange rates to retrieve. |
limit | int32 | Count of items in each page. Should be between 1 and 100 |
List Custom Exchange Rates
200 OK
{
"_object": "/api/response",
"self": "/v1/currency/exchange-rate/custom",
"version": "1.0.0",
"count": 3,
"data": [
{
"baseCurrencyCode": "GBP",
"targetCurrencyCode": "USD",
"exchangeRate": 1.25,
"exchangeDate": "2023-05-11T00:57:15.000Z",
"createdAt": "2023-05-11T07:29:49.791Z",
"updatedAt": "2023-05-11T07:29:49.791Z",
"exchangeId": "0vqBXke5nsPvHl2XML4mX"
},
{
"baseCurrencyCode": "GBP",
"targetCurrencyCode": "GBP",
"exchangeRate": 1,
"exchangeDate": "2023-04-23T00:57:15.000Z",
"createdAt": "2023-05-02T06:16:45.783Z",
"updatedAt": "2023-05-11T07:28:03.047Z",
"exchangeId": "KkwpcV0_NrKj2_glYlX6O"
},
{
"baseCurrencyCode": "USD",
"targetCurrencyCode": "GBP",
"exchangeRate": 0.81,
"exchangeDate": "2023-05-01T00:57:15.000Z",
"createdAt": "2023-05-02T07:45:48.714Z",
"updatedAt": "2023-05-02T07:45:48.714Z",
"exchangeId": "TnrP9-cwDvIVXzDPU2B9Q"
}
],
"error": null
}
This endpoint returns the list of custom exchange rates uploaded through Add Custom Exchange Rate API.
HTTP Request
GET https://api1.app.portpro.io/v1/currency/exchange-rate/custom
Request Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of exchange rates to retrieve. |
limit | int32 | Count of items in each page. Should be between 1 and 100 |
Add Custom Exchange Rates
200 OK
{
"_object": "/api/response",
"self": "/v1/currency/exchange-rate/custom",
"version": "1.0.0",
"data": {
"exchangeId": "09uHXiC6Rc1QY_EBSudYl",
"baseCurrencyCode": "GBP",
"targetCurrencyCode": "USD",
"exchangeRate": 1.25,
"exchangeDate": "2023-05-11T00:57:15.000Z",
"createdAt": "2023-05-11T09:29:29.388Z",
"updatedAt": "2023-05-11T09:29:29.388Z"
},
"error": null
}
This endpoint adds new Custom Exchange Rate.
Note: Only currencies listed in Get Currencies API can be used to upload custom exchange rate. If the required Currency is missing in the list, please contact PortPro Support.
HTTP Request
PUT https://api1.app.portpro.io/v1/currency/exchange-rate/custom
Request Query Parameters
Parameter | Type | Description |
---|---|---|
baseCurrencyCode* | string | Currency code of base currency |
targetCurrencyCode* | string | Currency code to which base currency is being converted to |
exchangeRate* | float32 | Exchange Rate |
exchangeDate* | date | ISO Date String of when exchange rate was recorded. |
Edit Custom Exchange Rates
200 OK
{
"_object": "/api/response",
"self": "/v1/currency/exchange-rate/custom",
"version": "1.0.0",
"data": {
"exchangeId": "7jf9o94XvOh9bSur74CHL",
"baseCurrencyCode": "GBP",
"targetCurrencyCode": "USD",
"exchangeRate": 1.26,
"exchangeDate": "2023-05-11T00:57:15.000Z",
"createdAt": "2023-05-11T07:21:24.162Z",
"updatedAt": "2023-05-11T07:28:29.767Z"
},
"error": null
}
This endpoint adds new Custom Exchange Rate.
Note: This API return previous value as response.
HTTP Request
PATCH https://api1.app.portpro.io/v1/currency/exchange-rate/custom
Request Query Parameters
Parameter | Type | Description |
---|---|---|
exchangeId* | string | Unique identifier of custom exchange rate to update |
exchangeRate* | float32 | Exchange Rate |
exchangeDate* | date | ISO Date String of when exchange rate was recorded. |
Stop Off
Get Stop Off
200 OK
{
"_object": "/api/response",
"self": "/v1/stopoff",
"version": "1.0.0",
"count": 3,
"data": [
{
"name": "FUEL"
},
{
"name": "CLEANING"
},
{
"name": "LUNCH"
}
],
"error": null
}
This endpoint will get list of all stops.
HTTP Request
GET https://api1.app.portpro.io/v1/stopoff
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | Number | Number of records to skip per request. |
limit | Number | Number of records to fetch per request. |
Users
Get Users
200 OK
{
"_object": "/api/response",
"self": "/v1/users",
"version": "1.0.0",
"data": [
{
"_id": "****cdf70ed18226825e4f29",
"firstName": "Alex",
"lastName": "Parker",
"mobile": "2345456456",
"billingEmail": "test1@yopmail.com",
"terminals": [],
"customer": {
"id": "****6dcbd1c3f36c329dd8b9",
"name": "Samul"
},
"active": false,
"carrier": {
"id": "****3aa697661049c6db257f",
"name": "Dharmesh"
}
},
{
"_id": "****cec80ed18226825e4f35",
"firstName": "Alexp",
"lastName": "Gupta",
"mobile": "2315646546",
"billingEmail": "test2@yopmail.com",
"terminals": [],
"customer": {
"id": "****6dcbd1c3f36c329dd8b9",
"name": "Samul"
},
"active": false,
"carrier": {
"id": "****3aa697661049c6db257f",
"name": "Dharmesh"
}
},
{
"_id": "****cfb20ed18226825e4f4b",
"firstName": "Aprker",
"lastName": "Jhon",
"mobile": "2156465456",
"billingEmail": "test3@yopmail.com",
"terminals": [],
"customer": {
"id": "****6dcbd1c3f36c329dd8b9",
"name": "arsrfsfdfddw"
},
"active": false,
"carrier": {
"id": "****3aa697661049c6db257f",
"name": "Dharmesh"
}
}
],
"error": null
}
This endpoint will get list of users.
HTTP Request
GET https://api1.app.portpro.io/v1/users
Query Parameters
Parameter | Type | Description |
---|---|---|
userType | String | User type on of ["CUSTOMER", "CARRIER", "CSR"]. |
customers | Array | Array of userType's email/ids. |
searchTerm | String | Search term for users. |
skip | int32 | Skip number of users to retrieve. |
limit | int32 | Limit number of users to retrieve. |
createdAtFrom | date | Users created from date. |
createdAtTo | date | Users created till date. |
updatedAtFrom | date | Users updated till date. |
updatedAtTo | date | Users updated till date. |
Embedded Objects
Caller
Caller Object
{
"_id": "1234",
"companyID": "ABC!@#$ERT",
"city": "Jersey City",
"state": "NJ",
"country": "US",
"zip_code": "07302",
"mobile": "",
"email": "md.teli@portpro.io",
"billingEmail": "",
"extraEmail": "",
"payment_terms": 0,
"isEmailNeedToSend": true,
"main_contact_name": "as",
"address": {
"lng": -74.05453709999999,
"lat": 40.7173673,
"address": "450 Grand St, Jersey City, NJ 07302, USA"
},
"company_name": "SMITHSON WAREHOUSE",
"receiverEmail": null,
"currency": "",
"doc_all": true,
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"officeHoursEnd": null,
"officeHoursStart": null,
"mcNumber": "12345"
}
Parameter | Type | Description |
---|---|---|
_id | string | A non-editable, system generated, and unique database ID. |
companyID | string | A non-editable, system generated, and unique ID relative to a single specific instance of drayOS. |
city | string | City name of caller |
state | string | State name of caller |
country | string | Country name of caller |
zip_code | string | Zip code of caller |
mobile | string | Mobile number of caller |
string | Email of caller | |
billingEmail | string | Billing email of caller |
extraEmail | string | Extra email of caller |
payment_terms | int | Payment terms |
isEmailNeedToSend | boolean | Is email need to send or not |
main_contact_name | string | Main contact name of caller |
address | object | Address object of caller, where lng and lat belongs to longitude and latitude |
company_name | string | An editable, user generated ID relative to a single and specific instance of drayOS. |
receiverEmail | string | Receiver email of caller |
currency | string | Currency name of caller |
officeHoursStart | string | Office hour start time of caller company |
officeHoursEnd | string | Office hour end time of caller company |
doc_all | boolean | Is documents all or not |
doc_none | boolean | Is documents none or not |
doc_pod | boolean | Is documents pod or not |
doc_tir | boolean | Is documents tir or not |
mcNumber | string | MCNumber of customer. |
Carrier
Carrier Object
{
"_id": "123",
"carrier": {
"_id": "123",
"USDOTNumber": "2178221",
"mobile": 8000477510,
"company_name": "NEW JERSEY TRUCKER",
"homeTerminalTimezone": "America/Halifax",
"defaultAddress": "123",
"billingEmail": "undefined",
"distanceMeasure": "ml"
},
"email": "example@gmail.com",
"defaultAddressId": {
"_id": "123",
"updatedAt": "2019-03-14T11:27:31.953Z",
"createdAt": "2019-03-14T11:27:31.953Z",
"carrier": "123",
"company_address": "111, West Hartford, Connecticut 06119, United States",
"isDeleted": false,
"longitude": null,
"latitude": null,
"__v": 0
},
"lastName": "NEW JERSEY TRUCKER",
"name": "NEW JERSEY TRUCKER",
"invoiceLogo": "https://example.s3.amazonaws.com/production/tms/123web.png"
}
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object |
USDOTNumber | string | USD ot Number |
mobile | string | Mobile number of carrier |
string | Email of carrier | |
billingEmail | string | Billing email of carrier |
defaultAddress | object | Default address id |
company_name | string | Company name of carrier |
homeTerminalTimezone | string | Timezone of home terminal |
distanceMeasure | string | Distance measurement for carrier |
defaultAddressId | object | Default address object of carrier |
lastName | string | Last name of caller |
name | string | Name of carrier |
invoiceLogo | string | Invoice logo link for carrier |
Consignee
Consignee Object
{
"address": {
"address": "VIP Circle, Hirabag, Amroli -, Gujarat, India",
"lat": 21.2315432,
"lng": 72.8662072
}
"city": "Independence"
"companyID": "VIPCIRCLE2355"
"company_name": "VIP CIRCLE"
"country": "US"
"email": "vip@gggg.com"
"main_contact_name": "VIP CIRCLE"
"mobile": "2000000002"
"state": "KS"
"zip_code": "67301"
"_id": "123"
}
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object |
companyID | string | Company ID of consignee |
city | string | City name of consignee |
state | string | State name of consignee |
country | string | Country name of consignee |
zip_code | string | Zip code of consignee |
mobile | string | Mobile number of consignee |
main_contact_name | string | Main contact name of consignee |
address | object | Address object of consignee, where lng and lat belongs to longitude and latitude |
company_name | string | Company name of consignee |
Driver Order
Driver Order Object
{
"isVoidOut": false,
"distance": 0,
"address": {
"address": "1200 Corbin St, Elizabeth, NJ 07201, USA",
"lat": 40.6806736,
"lng": -74.1662324
},
"_id": "1234",
"departed": "2023-09-14T07:19:10.196Z",
"arrived": "2023-09-14T07:19:10.196Z",
"company_name": "MAHER",
"loadAssignedDate": "2021-11-30T08:54:29.637Z",
"prevType": "PULLCONTAINER",
"zip_code": "07201",
"country": "US",
"state": "NJ",
"city": "Elizabeth",
"customerId": {
"_id": "1234",
"city": "Elizabeth",
"state": "NJ",
"country": "US",
"zip_code": "07201",
"geofence": {
"polygon": [],
"zoom": 10.91,
"center": [
-74.0029393,
40.717718
]
},
"address": {
"lng": -74.1662324,
"lat": 40.6806736,
"address": "1200 Corbin St, Elizabeth, NJ 07201, USA"
},
"company_name": "MAHER",
"isTIROptional": true
},
"type": "PULLCONTAINER"
}
Parameter | Type | Description |
---|---|---|
isVoidOut | boolean | Is void out or not |
distance | int32 | distance of driver done |
address | object | Address objects |
_id | string | Unique identifier for the object |
customerId | object | Customer details object |
geofence | object | Geofence of customer |
isTIROptional | boolean | Is TIR optional or not |
type | string | Current type of driver load |
loadAssignedDate | date/string | Load assigned date |
prevType | string | Previous type of load |
arrived | date | Arrival timestamp |
departed | date | Departure timestamp |
Invoice Item
Invoice Item Object
{
"amount": "0.00",
"name": "Base Price",
"description": "WAM Import Load",
"type": "fixed",
"chargePerDay": 0,
"chargePerMinute": 0,
"freeMinutes": 0,
"freeDays": 0,
"discountValue": "0",
"discountAmount": 0,
"finalAmount": "500.00",
"unit": "0.00",
"perType": "perday"
}
Parameter | Type | Description |
---|---|---|
amount | int32 | Amount of item |
name | string | Name of charge |
description | string | Description of charge |
type | string | Type of charge |
chargePerDay | int32 | Charge per day of item |
chargePerMinute | int32 | Charge per minute of item |
freeMinutes | int32 | Free minutes of item |
freeDays | int32 | Free days of item |
discountValue | int32 | Discount value of item |
discountAmount | int32 | Discount amount of item |
finalAmount | int32 | Final amount amount of item |
unit | int32 | units of item |
perType | string | Per type of item |
Vendor Pay Pricing
Pricing Object
{
"chargeName": "Base Price",
"amount": "0.00",
"finalAmount": "500.00",
"description": "WAM Import Load",
"type": "fixed",
"chargePerDay": 0,
"chargePerMinute": 0,
"freeDays": 0,
"unit": "0.00",
"perType": "perday"
}
Parameter | Type | Description | Default |
---|---|---|---|
chargeName* | string | Name of charge | — (required) |
amount | int32 | Amount of item | 0 |
finalAmount* | int32 | Final amount amount of item | — (required) |
description | string | Description of charge | ""(empty) |
type | string | Type of charge. One of [fixed, percentage] | fixed |
chargePerDay | int32 | Charge per day of item | 0 |
chargePerMinute | int32 | Charge per minute of item | 0 |
freeDays | int32 | Free days of item | 0 |
unit | int32 | units of item | 0 |
perType | string | Per type of item | fixed |
Load Status
All Load status list.
Status | Description |
---|---|
PENDING | Load is Pending. |
AVAILABLE | Load is Available. |
DEPARTED | Load is Departed. |
DISPATCHED | Load is Dispatched. |
CHASSISPICK_DEPARTED | Enroute to Chassis Pick. |
CHASSISPICK_ARRIVED | Arrived at Chassis Pick. |
PULLCONTAINER_DEPARTED | Enroute to Pick Container. |
PULLCONTAINER_ARRIVED | Arrived at Pick Container. |
DROPCONTAINER_DEPARTED | Enroute To Drop Container. |
DROPCONTAINER_ARRIVED | Dropped-Loaded or Dropped-Empty. |
HOOKCONTAINER_DEPARTED | Enroute to Hook Container. |
HOOKCONTAINER_ARRIVED | Arrived Hook Container. |
DELIVERLOAD_DEPARTED | Enroute To Deliver Load. |
DELIVERLOAD_ARRIVED | Arrived At Deliver Load |
RETURNCONTAINER_DEPARTED | Enroute To Return Empty. |
RETURNCONTAINER_ARRIVED | Arrived At Return Empty. |
CHASSISTERMINATION_DEPARTED | Enroute To Return Chassis. |
CHASSISTERMINATION_ARRIVED | Arrived To Return Chassis. |
COMPLETED | Load is completed. |
APPROVED | Load is approved. |
UNAPPROVED | Load is unapproved. |
BILLING | Load is billed. |
REBILLING | Load is on rebilling. |
PARTIAL_PAID | Partial payment is done for Load. |
FULL_PAID | Load is fully paid. |
Load Sort By
Sample Object
{
"sortBy": {
"pickupFromTime": -1
}
}
All Load Sort By Fields
In field value -1 stands for DESC and 1 stands for ASC order.
Field | Description |
---|---|
createdAt | Value should be 1 or -1. |
updatedAt | Value should be 1 or -1. |
billingDate | Value should be 1 or -1. |
emptyDay | Value should be 1 or -1. |
pickupFromTime | Value should be 1 or -1. |
deliveryFromTime | Value should be 1 or -1. |
containerAvailableDay | Value should be 1 or -1. |
lastFreeDay | Value should be 1 or -1. |
cutOff | Value should be 1 or -1. |
freeReturnDate | Value should be 1 or -1. |
Invoice Charges
Invoice Charge Object
[
{
"name": "Base Price",
"description": "WAM Import Load",
"price": "500.00", //finalAmount
"unit": "0.00",
"perType": "perday", //chargeType
"freeUnit": 0, //freeDays
"perUnit": 0, //chargePerDay
"amount": "0.00" //amount
}
]
Parameter | Type | Description |
---|---|---|
name | string | Name of charge. |
description | string | Description for a charge. |
price | int32 | Total amount for a charge. |
unit | int32 | Units of a charge. |
chargeType | string | Type for a charge, One of ['perday', 'perhour', 'perpound', 'permile', 'fixed', 'percentage', 'per15min', 'per30min', 'per45min']. |
freeUnit | int32 | Free units for a charge. |
perUnit | int32 | Charge per unit. |
amount | int32 | Amount for fuel charge, in %. |
Document
Document Object
{
"checked": true
"date": "2021-11-30T08:31:10.198Z"
"type": "Other"
"url": "https://example.com/axle-logistics/scanner/1638261048874_1638261053774.pdf"
"userId": {
"_id": "1234",
"lastName": "NEW JERSEY TRUCKER",
"name": "NEW JERSEY TRUCKER"}
"_id": "1234"
}
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object |
checked | boolean | Document is checked or not |
date | date/string | Document upload date |
url | string | URL of document |
userId | object | Object if uploaded by user name, lastName |
Payment
Payment Object
{
"amount": 500
"checkNo": "yes"
"createdAt": "2021-11-30T08:39:33.935Z"
"createdBy": {
"_id": "123",
"lastName": "NEW JERSEY TRUCKER",
"name": "NEW JERSEY TRUCKER"
}
"document": "https://example.com/production/tms/shipment_DGqTdA1003.jpeg"
"documentType": "Other"
"notes": "Data check"
"paymentDate": "2021-11-30T05:00:00.000Z"
"_id": "123"
}
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object |
checkNo | string | Check no of payment |
createdAt | date/string | Payment create date |
document | string | URL of document |
createdBy | object | Object if created payment by user name, lastName |
documentype | string | Document type which uploaded |
notes | string | Payment note |
paymentDate | date/string | Payment date |
Terminal
Terminal Object
{
"isDeleted": true,
"_id": "1234",
"updatedAt": "2021-12-28T04:32:05.681Z",
"createdAt": "2021-12-09T07:15:16.063Z",
"userId": "2345",
"address": {
"state": "MH",
"city": "Pune",
"address": "Pune, Maharashtra, India",
"zip_code": "394210",
"_id": "1234"
},
"name": "dp123",
"__v": 0
}
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object |
userId | string | UserId of terminal. |
createdAt | date/string | Payment create date |
isDeleted | boolean | Terminal is deleted or not |
address | object | Object of address model which include state, city, address etc |
name | string | Name of terminal |
Driver
Driver Object
{
"_id": "1345",
"updatedAt": "2022-04-27T09:53:53.375Z",
"createdAt": "2022-04-27T09:24:26.694Z",
"name": "Alex K",
"lastName": "Lee",
"mobile": "7111111111",
"country_code": "+91",
"liquor": "",
"reefer": "",
"__v": 0,
"permissions": [],
"isDayDriver": true,
"disableDriverPay": false,
"overweight": false,
"hazmat": false,
"preferredDistance": [],
"preferredTypesOfLoad": [],
"preferredStates": [],
"owerWeightStates": [],
"profileType": [
"PORT",
"DELIVERY",
"TRAILER",
"COMPANY DRIVER",
"INDEPENDENT CONTRACTOR",
"OWNER OPERATOR",
"3rd PARTY DRIVER",
"TEMPORARY",
"SUBCONTRACTOR",
"AGENT - COMPANY",
"All"
],
"newTerminal": [],
"pickup_prefferred": [],
"delivery_prefferred": [],
"elogStatus": "OFF",
"usersRated": 0,
"totalRating": 0,
"isDeleted": false,
"isActive": true,
"currentDriverLocation": {
"coordinates": [
0,
0
],
"type": "Point"
},
"accountHold": false,
"driverHoldStartDt": "2022-06-08T13:27:28.561Z",
"driverHoldEndDt":"2022-06-09T13:27:28.561Z",
"truckType": [],
"authorityLetter": null,
"w9": null,
"certificateOfInsurance": null,
"image": null,
"company_name": null,
"customId": "MEH257",
"carrier": "13546",
"externalSystemID": "000019"
}
Parameter | Type | Description |
---|---|---|
name | string | Name of a driver |
lastName | string | Last name of a driver. |
licence | string | Licence state of driver. |
mobile | string | Mobile no of driver. |
country_code | string | Driver's country code. |
string | Email no of driver. | |
liquor | string | Liquor of driver. |
reefer | string | Reefer of driver. |
permissions | string | Permission of driver from Mobile App |
isDayDriver | boolean | Is day driver or not. |
disableDriverPay | boolean | Disable driver pay or not. |
overweight | boolean | Over weight driver or not. |
hazmat | boolean | Hazmat driver or not. |
preferredDistance | array | Array of preferred distance of driver. |
preferredTypesOfLoad | array | Array of preferred load types of driver. |
preferredStates | array | Array of preferred states of driver. |
owerWeightStates | array | Array of over wright states of driver. |
licenceNumber | string | Licence number of driver. |
homeTerminalTimezone | string | Home terminal zone of driver. |
sealLinkNuber | string | Seal link number of driver. |
billingEmail | string | Billing email of driver. |
socialSecurity | string | Social security of driver. |
tablet | string | Tablet of driver. |
eld | string | ELD of driver. |
fuelCard | string | Fuel card of driver. |
ezPass | string | Ez pass of driver. |
driverPreferences | boolean | Driver preference or not. |
bankAccount | string | Bank account of driver. |
routing | string | Routing of driver. |
tShirtSizes | string | T-shirt sizes of driver. |
country_code | string | Country code of driver. |
profileType | array | Array of profile types of driver ex. ["PORT", "DELIVERY", "TRAILER", "COMPANY DRIVER", "INDEPENDENT CONTRACTOR", "OWNER OPERATOR", "3rd PARTY DRIVER", "TEMPORARY", "SUBCONTRACTOR", "AGENT - COMPANY", "All"] |
newTerminal | array | Array of new terminals of driver. |
pickup_prefferred | array | Array of pickup preferred of driver. |
delivery_prefferred | array | Array of delivery preferred of driver. |
elogStatus | string | E-log status ON or OFF. |
usersRated | string | Users rating of driver. |
totalRating | string | Total rating of driver. |
isDeleted | boolean | Is deleted driver or not. |
isActive | boolean | Is active driver or not. |
driverHoldStartDt | date/string | representing the driver's hold start date. |
driverHoldEndDt | date/string | representing the driver's hold end date. |
currentDriverLocation | object | Object with a key of coordinates and type of driver. |
truckType | array | Array of truck types of driver. |
authorityLetter | string | Authority letter of driver. |
w9 | string | W9 of driver |
certificateOfInsurance | string | URL of certificate of insurance of a driver. |
company_name | string | Company name of driver. |
customId | string | Custom id of driver. |
carrier | string | carrier user id of driver. |
externalSystemID | string | External system id. |
Pricing
Pricing
{
"type": "",
"description": "bike",
"dynamicPricingId": null,
"customerRateId": null,
"chargeType": "MANUALLY_CHANGED",
"perType": "",
"freeDays": 0,
"unit": "1.00",
"finalAmount": "100.00",
"chargePerMinute": 0,
"chargePerDay": 0,
"amount": 0,
"name": "Base Price",
"glCode": "123-456"
}
Parameter | Type | Description |
---|---|---|
type | string | Type of charge |
description | string | Description of charge |
chargeType | string | |
perType | string | Per type of item |
freeDays | int32 | Free days of item |
unit | int32 | units of item |
finalAmount | int32 | Final amount amount of item |
chargePerMinute | int32 | Charge per minute of item |
chargePerDay | int32 | Charge per day of item |
amount | int32 | Amount of item |
name | string | Name of charge |
glCode | string | GlCode of Charge |
Charges
Charge Object
{
"name": "BASE PRICE",
"amount": 21113,
"description": "Example description",
"creditMemoGLCode": "GL-001"
},
{
"name": "BASE PRICE",
"amount": 123,
"description": "Example description"
},
{
"name": "CHASSIS",
"amount": 213,
"description": "Example description",
"creditMemoGLCode": "GL-005"
}
Parameter | Type | Description |
---|---|---|
name | string | Name of the charge |
amount | int32 | Price of charge |
description | string | Description of the charge |
creditMemoGLCode | string | This corresponds to the GL code selected within the Credit Memo |
Documents
Documents
{
"url": "https://example.com/scanner/1638261048874_1638261053774.pdf"
}
Parameter | Type | Description |
---|---|---|
url | string | URL of your document. |
Memo
Memos
{
"credit_memo_number": "ABCD_12345",
"amount": "1000"
}
Parameter | Type | Description |
---|---|---|
credit_memo_number | string | The credit_memo_number is Unique identifier which indicates number of credit memo. |
amount | int32 | Amount pay by credit. |
Invoice
Invoices
{
"invoiceNumber": "ABCD_12345",
"amount": "1"
}
Parameter | Type | Description |
---|---|---|
invoiceNumber | string | Unique invoice number for which credit is applying. |
amount | int32 | Amount to be pay by credit. |
Routing Order
Routing Order Object
"routingOrder": [
{
"type": "PULLCONTAINER",
"company_name": "DRAYOS PORT/SHIPPER",
"address": {
"address": "1304 38th St, San Diego, CA 92105, USA",
"address1": "1304 38th St",
"city": "San Diego",
"state": "CA",
"country": "US",
"zipCode": "92105",
"lat": 32.7191851,
"lng": -117.1125929
},
"isGrayPool": false,
"stopOffType": "LUNCH"
},
{
"type": "DROPCONTAINER",
"company_name": "DRAYOS DROP",
"address": {
"address": "1304 38th St, San Diego, CA 92105, USA",
"address1": "1304 38th St",
"city": "San Diego",
"state": "CA",
"country": "US",
"zipCode": "92105",
"lat": 32.7191851,
"lng": -117.1125929
},
"isGrayPool": false
},
{
"type": "HOOKCONTAINER",
"customerId": "5e4c6db21d5e56097a0e9ada",
"isGrayPool": false
},
{
"type": "DELIVERLOAD",
"customerId": "5e4c6db21d5e56097a0e9ada",
"isGrayPool": false
},
{
"type": "DROPCONTAINER",
"company_name": "DRAYOS DROP",
"address": {
"address": "1304 38th St, San Diego, CA 92105, USA",
"address1": "1304 38th St",
"city": "San Diego",
"state": "CA",
"country": "US",
"zipCode": "92105",
"lat": 32.7191851,
"lng": -117.1125929
},
"isGrayPool": false
},
{
"type": "HOOKCONTAINER",
"company_name": "DRAYOS HOOK",
"address": {
"address": "1304 38th St, San Diego, CA 92105, USA",
"address1": "1304 38th St",
"city": "San Diego",
"state": "CA",
"country": "US",
"zipCode": "92105",
"lat": 32.7191851,
"lng": -117.1125929
},
"isGrayPool": true
},
{
"type": "RETURNCONTAINER",
"company_name": "DRAYOS RETURN",
"address": {
"address": "1304 38th St, San Diego, CA 92105, USA",
"address1": "1304 38th St",
"city": "San Diego",
"state": "CA",
"country": "US",
"zipCode": "92105",
"lat": 32.7191851,
"lng": -117.1125929
},
"isGrayPool": true
}
]
Parameter | Type | Description |
---|---|---|
type* | string | Evnt type one of ["PULLCONTAINER","RETURNCONTAINER","DELIVERLOAD","DROPCONTAINER","HOOKCONTAINER","CHASSISPICK","CHASSISTERMINATION","STOPOFF","LIFTOFF","LIFTON"]. |
customerId | string | Customer/Company ID. |
company_name | string | Company Name / Contact Name of the location. |
address | object | Address of the event, Sub-Fields: {address*, address1*, city*, state, country*, zipCode*, lat, lng}. |
isGrayPool | boolean | Set it true if the event is Gray Pool. |
stopOffType | string | Type of Stop. |
Routing Events
Event | Description |
---|---|
PULLCONTAINER | Container's pull location. |
RETURNCONTAINER | Container's Return location. |
DELIVERLOAD | Delivery location. |
DROPCONTAINER | Container's drop location. |
HOOKCONTAINER | Container's hook location. |
CHASSISPICK | Chassis pickup location. |
CHASSISTERMINATION | Chassis termination location. |
STOPOFF | Stop location, eg: fuel stop location. |
LIFTOFF | Location where load/container is removed and places from the chassis. |
LIFTON | Location from where load/container will be mounted. |
ChargeSets
ChargeSets Object
{
"chargeSetNumber": "ABC_1234",
"chargeSetId": "024fb178-2f36-4679-826f",
"chargeSetType": "DEFAULT",
"pricing": [
<pricing object>
],
"totalAmount": 0,
"taxAmount": 0,
"totalAmountWithTax": 0,
"billingNote": "",
"approvedDate": "",
"createdAt": "2019-03-14T11:27:31.953Z",
"updatedAt": "2019-03-14T11:27:31.953Z",
"status": "APPROVED",
"vendor": {
"vendorName": "XYZ",
"vendorId": "66a9d444563c96eef75b0e3w"
},
"customer": {
"customerName": "ABC",
"customerId": "667a6bba629626db12f91eqw"
},
"currency": {
"currencyCode": "DKK",
"symbol": "kr.",
"name": "Danish Krone"
},
"terminal": "Neshua",
"bill":{
"billDate": "",
"billDueDate": "",
"billNumber": ""
}
}
Parameter | Type | Description |
---|---|---|
chargeSetNumber | string | Charge number of charge |
chargeSetId | string | Charge id of charge |
chargeSetType | string | Type of charge if its default then show DEFAULT otherwise ADDITIONAL |
pricing | array | Pricing array |
totalAmount | number | Total amount of charge |
taxAmount | number | Tax amount of charge |
totalAmountWithTax | number | Total amount with Tax of charge |
billingNote | string | BillingNote of charge |
approvedDate | datetime | Approved charge Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
updatedAt | date/string | Updated timestring of charge |
createdAt | date/string | Created timestring of charge |
status | string | Status of charge |
customer | object | Name of customer and unique id of customer |
vendor | object | Name of vendor and unique id of vendor |
currency | object | Currency details |
terminal | string | Terminal of charge |
bill | object | Bill of charge with billDate, billDueDate and billNumber |
Geofence
Geofence Object
{
"center": [
"-74.1531",
"40.6761"
],
"zoom": 13.62,
"polygon": [
[
[
-74.1615233651826,
40.68838582971685
],
[
-74.1662603055347,
40.67972253777518
],
[
-74.15868120097126,
40.67642596510615
],
]
],
}
Parameter | Type | Description |
---|---|---|
center | array | The geographical center of the geofence, specified as a two-element array: [longitude, latitude]. Used to set the default map view or for calculating proximity. |
zoom | number | Recommended default zoom level for map rendering centered on the center coordinate. Higher values represent a closer zoom. |
polygon | array | An array of coordinate arrays defining the geofence's polygon boundary. Each coordinate is a two-element array in the format [longitude, latitude] |
Release Notes
This section features the new and enhanced API features and updates to the PortPro Public API.
07/29/2025
- Enhanced driver information with new details including driver ID, total distance(totalDistance) with distance unit(distanceUnit), and chassis information.
07/25/2025
- Added comprehensive audit functionality with 5 new audit endpoints for complete change tracking:
- Chassis Audit - Track changes to chassis records including equipment details, documents, and status updates
- Customer Audit - Monitor customer data modifications, document uploads, and account changes
- Driver Audit - Follow driver record updates, document changes, and status modifications
- Truck Audit - Track truck equipment changes, maintenance updates, and document modifications
- Trailer Audit - Monitor trailer equipment updates, inspection changes, and document management
- All audit endpoints support filtering by date ranges, action types, and entity IDs with pagination support
- Audit records include detailed before/after data, actor information, and timestamps for complete transparency
07/01/2025
- Added sorting capabilities to the vendor API with
sortBy
anddirection
query parameters. Sort byvendorName
,vendorType
,createdAt
, orupdatedAt
in ascending (1) or descending (-1) order. - Enhanced vendor response to include
vendorType
andexternalId
fields for better vendor identification and categorization.
06/21/2025
- The GET Invoice endpoint now includes payment history details, providing comprehensive transaction records for each invoice.
05/27/2025
- Updated request body handling to properly support "chargeReferenceNumbers" and "chargeIds" as an array format, aligning with expected input specifications for the create invoice API.
05/04/2025
- A new parameter glCode is now available under the Credit Memo charges section in the API.
04/26/2025
- Retrieve vendors using the GET /vendors endpoint with support for various filters to narrow down your search results quickly and efficiently.
- PortPro APIs using POST /vendor-pay and PUT /vendor-pay/{vendorChargeSetId} now support creating and updating Vendor Pays
03/27/2025
- Retrieve Support Moves using the GET /support-move endpoint allows users to fetch Support Moves data with powerful filtering options for better visibility and integration.
12/14/2024
- The GET Charge Codes endpoint reflect the addition of "isAccountsPayable" and "isAccountsReceivable" based on the UI designation.
10/05/2024
- The Both GET Invoice by ID and GET All Invoices endpoints reflect the addition of "chargeSetNumber" and "billingNote" in the invoice array.
- The ChargeSets and vendorPay are included in the GET /loads/{id} and GET /loads responses when includeChargeSets and includeVendorPay are passed, respectively in payload.
- A new Bill API is available for hybrid users to manage and retrieve billing information.
10/18/2023
- The GET Customer, Consignee and Shipper/Port API supports wide range of search criteria for searchTerm which includes Address as well. Also you can pass array of profile email/ids.
- The Create Load API allows you to add employee.
- The PortPro API now supports GET Users api.
10/06/2023
- The PortPro API now supports update/delete consignee and shipper(port).
- The PortPro Create load API now allows you to add Routing Order and Customer Employee.
- The PortPro API now supports GET Stop off api.
09/20/2023
- PortPro Invoice API now provides tax details.
08/23/2023
- The PortPro Create Load API has been upgraded to incorporate the inclusion of a "Cut Off date" parameter. For a comprehensive understanding of this feature, kindly consult the revised documentation.
- The PortPro Create/Update Load APIs have been enhanced to include support for the "lat/lng" and "isValidAddress" parameters within the "consigneeDetails," "shipperDetails," and "emptyOriginDetails" sections. This allows for improved accuracy in specifying geographic coordinates and determining the validity of addresses when working with these sections of the API. For further details, please refer to the updated documentation.
08/16/2023
- PortPro GET Charge codes API now provides active and inactive details.
- PortPro Credit Memo APIs now provides customer detail like ID, companyID and externalSystemID.
08/09/2023
- PortPro Invoice API now provides payment terms.
08/04/2023
- Improvement in Retrieve a Single Driver API.
- PortPro Drivers, Customers, Shippers(Ports), Consignees APIs now supports externalSystemID field.
06/22/2023
- PortPro Retrieve Load API now supports more parameters in sortBy.
- Improvement in Create Load API.
06/16/2023
- PortPro Create Load API now supports Notes parameters.
- PortPro Load APIs now supports same dates for Pickup and Delivery times.
- Improvement in GET Equipment APIs count.
05/27/2023
- PortPro APIs now provides the ability to add Custom Exchange Rates.
05/10/2023
- PortPro Settlement APIs now support any date range for filter with new fromDate and toDate parameter.
05/02/2023
- PortPro Load Create API now supports more fields.
- PortPro APIs now provides driver's location from Retrieve Driver Location endpoint.
05/01/2023
- PortPro APIs now provides equipment information.
- Retrieve Trucks
- Retrieve Chassis
- Retrieve Trailers
- PortPro APIs now provides Description information in GET Chargecode endpoint.
- PortPro APIs now provides credit memo functionality ( it's flag based functionality ) which includes:
- Create Credit Memo
- Retrieve All Credit Memo
- Retrieve Single Credit Memo
- Update Credit Memo
- Delete Credit Memo
- Apply Credit Memo to invoice
- Send Credit Memo through email
04/21/2023
- PortPro Invoice APIs now provides MCNumber information of customer.
- PortPro Invoice APIs now provides Branch(Terminal) information.
- PortPro Settlement APIs now provides MCNumber information of FleetOwner.
- PortPro Loads APIs now provides Tax Exempt information.
04/14/2023
- PortPro APIs now supports createdAtFrom, createdAtTo, updatedAtFrom and updatedAtTo filter parameters in below retrieve apis.
- Retrieve All Loads
- Retrieve All Customers
- Retrieve All Consignees
- Retrieve All Shippers
- Retrieve All Terminals
- Retrieve Driver Pay
- Retrieve All Driver