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 and consignees.
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
For now, we provides two environments.
- Sandbox
- Production
Sandbox
The PortPro Sandbox APIs allow for concurrent testing and development to fast-track app development cycles and reduce time-to-market. simulate error scenarios with your API, like latency in the API's response time, error conditions or simulating a non-responsive API completely.
HTTP Endpoint
Coming soon
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.brokerage.portpro.io/v1
Setup APIs into Postman
Already using Postman? Simply download a Brokerage 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.brokerage.portpro.io/v1 |
Authentication
To authorize, use this method:
{
"Autherization" : "Bearer <Your Access Token>"
}
Make sure to replace
<Your Access Token>
with your Access Token.
PortPro uses two tokens which is access key and refresh key to allow access to the API. You can register a new PortPro Public Access Token at our PortPro Developer Portal.
When your access token is expired and you want to update your access and refresh token with api then Please refere below API.
API Setup
PortPro expects for the Access Token to be included in all API requests to the server in a header that looks like the following:
Authorization: Bearer <Your Access Token>
Content type of request payload should be multipart/form-data.
Content-Type: multipart/form-data
Generate new access 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
}
This endpoint refresh access token and refresh token or you can generate new from this link.
HTTP Request
GET https://api1.brokerage.portpro.io/v1/generate-new-token
Request Header
Authorization: Bearer <Your Refresh Token>
Retrieve access 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
}
This endpoint refresh access token and refresh token or you can generate new from this link.
HTTP Request
POST https://api1.brokerage.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. |
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"
}
],
"status": "BILLING",
"paidAmount": 0,
"totalAmount": 100,
"remainAmount": 100,
"billingDate": "2022-05-01T05:03:13.732Z",
"caller": {
"_id": "1234",
"company_name": "SMITHSON WAREHOUSE",
"currency": ""
},
"callerName": "SMITHSON WAREHOUSE",
"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 #"
}
}
]
}
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 |
customerDetails | object | Object of customer details |
loadDetails | object | Object of load details |
referenceFields | object | Object of all reference fields like Container no, Vessel_name and etc |
Retrieve All Invoices
200 OK
{
"_object":"/api/response"
"self":"/invoices/"
"version":1
"count":123
"data":[
{
"_id": "ABC_1234",
"total": 1,
"invoice": [
{
"load_reference_number": "ABC_1234",
"reference_number": "ABC_1234",
"pricing": [
{
"amount": "1500.00",
"chargePerDay": "1500",
"chargePerMinute": 0,
"discountAmount": 0,
"discountValue": 0,
"finalAmount": "50.00",
"unit": "0.00",
"freeDays": 1,
"perType": "perday",
"name": "Base Price",
"description": "",
"units": 1
},
{
"name": "Chassis",
"perType": "perhour",
"freeDays": 0,
"unit": "0.00",
"finalAmount": "20.00",
"discountValue": 0,
"discountAmount": 0,
"chargePerMinute": 0,
"chargePerDay": 0,
"amount": "0.00",
"description": "12/01 - 12/01"
}
],
"status": "BILLING",
"paidAmount": 0,
"totalAmount": 70,
"remainAmount": 70,
"billingDate": "2021-12-01T11:28:37.611Z",
"caller": {
"_id": "123",
"currency": "",
"company_name": "QCname"
},
"callerName": "QCname",
"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 #"
}
}
]
}
],
"error":null
}
This endpoint retrieves all Invoices.
HTTP Request
GET https://api1.brokerage.portpro.io/v1/invoices
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the invoice to retrieve |
limit | int32 | Count of items in each page. Should be between 1 and 100 (inclusive). |
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 of invoice for filter. |
billingTo | date/string | Billing to date of invoice for filter. |
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 | For sub customer invoices |
isShowCombinedInvoices | boolean | For show combine invoices |
sortBy | object | For get sorted invoices which include key like billingDate |
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.brokerage.portpro.io/v1/invoices/<reference_number>
URL Parameters
Parameter | Type | Description |
---|---|---|
reference_number | string | The reference number of load for the invoice to retrieve |
Loads
Load Object
Demo Load Response
{
"_id": "12345",
"updatedAt": "2023-02-17T10:10:48.768Z",
"createdAt": "2023-02-17T10:03:12.162Z",
"type_of_load": "IMPORT",
"status": "PENDING",
"preSetOrderStatus": "",
"caller": {
"_id": "12345",
"companyID": "Demo ID",
"city": "New York",
"state": "NY",
"country": "US",
"zip_code": "10017",
"mobile": "",
"email": "demo@portpro.io",
"billingEmail": "",
"extraEmail": "",
"payment_terms": 10,
"currency": "",
"officeHoursStart": null,
"officeHoursEnd": null,
"doc_none": false,
"doc_pod": false,
"doc_tir": false,
"doc_all": true,
"isEmailNeedToSend": true,
"main_contact_name": "",
"address": {
"zip_code": "10017",
"country": "US",
"state": "NY",
"city": "New York",
"address1": "27",
"lng": -73.9741415,
"lat": 40.75519,
"address": "27, New York, NY 10017, USA"
},
"company_name": "Demo Customer",
"receiverEmail": null
},
"terminal": {
"_id": "12345",
"updatedAt": "2023-02-02T11:08:29.220Z",
"createdAt": "2023-02-02T11:08:14.017Z",
"userId": "1234",
"address": {
"state": "NY",
"address": "987 4th Ave, Brooklyn, NY 11232, USA",
"zip_code": "11232",
"_id": "12345",
"lat": 40.6525066,
"lng": -74.0055414,
"country": "US"
},
"name": "Test Terminal",
"isDeleted": false,
"__v": 0
},
"addedBy": {
"_id": "12345",
"lastName": null,
"name": "DEMO"
},
"carrier": {
"_id": "12345",
"carrier": {
"_id": "12345",
"MCNumber": 123,
"homeTerminalTimezone": "America/Chicago",
"weightMeasure": "lbs",
"distanceMeasure": "ml",
"mobile": 0,
"company_name": "Khadga",
"defaultAddress": "12345"
},
"email": "demo1@portpro.io",
"defaultAddressId": {
"_id": "12345",
"updatedAt": "2023-02-14T09:12:25.680Z",
"createdAt": "2022-12-15T04:31:07.115Z",
"carrier": "639aa30a67347b2263def067",
"company_address": "New York, NY, USA",
"isDeleted": false,
"longitude": null,
"latitude": null,
"__v": 0
},
"lastName": null,
"name": "ShipOSQA",
"invoiceLogo": "https://s3.amazonaws.com/shipment_0G5I1B57352.png"
},
"reference_number": "ABCD_TES_M789",
"distance": 1490.8,
"callerName": "TRUCKING SG CUSTOMER",
"callerInfo": {
"zipcode": "10017",
"country": "US",
"state": "NY",
"city": "New York",
"address": {
"lng": -73.9741415,
"lat": 40.75519,
"address": "27, New York, NY 10017, USA"
},
"company_name": "TRUCKING SG CUSTOMER"
},
"shipperName": "Demo CUSTOMER",
"shipperAddress": "111 EAST LOOP N, HOUSTON, TX 77029, USA",
"shipperInfo": {
"zipcode": "77029",
"country": "US",
"state": "TX",
"city": "Houston",
"address": {
"lng": -95.272407,
"lat": 29.729997,
"address": "111 East Loop N, Houston, TX 77029, USA"
},
"company_name": "Demo"
},
"consigneeName": "DEMO CONSIGNEE",
"consigneeAddress": "8760 W PATRICK LN, LAS VEGAS, NV 89148, USA",
"consigneeInfo": {
"zipcode": "89148",
"country": "US",
"state": "NV",
"city": "Las Vegas",
"address": {
"lng": -115.2828725,
"lat": 36.0784436,
"address": "8760 W Patrick Ln, Las Vegas, NV 89148, USA"
},
"company_name": "DEMO CONSIGNEE"
},
"isUserEnteredbrokerHold": true,
"isUserEnteredcallerbillLandingNo": true,
"isUserEnteredsealNo": true,
"isUserEnteredoutgateDate": true,
"isUserEnteredingateDate": true,
"isUserEntereddeliveryOrderNo": true,
"isUserEnteredreleaseNo": true,
"isUserEnterdischargedDate": true,
"isUserEnteredcontainerOwner": true,
"isUserEnteredcontainerType": true,
"isUserEnteredcontainerSize": true,
"isUserEnteredvessel": true,
"isUserEnteredlastFreeDay": true,
"isUserEnteredcustom": true,
"isUserEnteredfreight": true,
"isUserEnteredStatus": true,
"isDrayosTrackosError": [],
"qboExportDates": [],
"qbExportDates": [],
"ediDateTime": [],
"isGrayPool": false,
"assignedCSR": [],
"isLastFreeDay": false,
"acceptRejectCode": "Default",
"isStatusOrderMigrated": false,
"isEdi": false,
"isMigrated": true,
"customerEmployee": [],
"consignee": [
{
"_id": "12345",
"companyID": "demo",
"city": "Las Vegas",
"state": "NV",
"country": "US",
"zip_code": "89148",
"mobile": "",
"email": "tn4yb8naso47e@portpro.io",
"officeHoursStart": null,
"officeHoursEnd": null,
"main_contact_name": "",
"address": {
"address": "8760 W Patrick Ln, Las Vegas, NV 89148, USA",
"lat": 36.0784436,
"lng": -115.2828725,
"address1": "8760 W Patrick Ln",
"city": "Las Vegas",
"state": "NV",
"country": "US",
"zip_code": "89148"
},
"company_name": "Demo Consignee"
}
],
"shipper": [
{
"_id": "12345",
"companyID": "DEMO!1359",
"city": "Houston",
"state": "TX",
"country": "US",
"zip_code": "77029",
"mobile": "",
"email": "zyrtwfrhf8iwu@portpro.io",
"officeHoursStart": null,
"officeHoursEnd": null,
"isTIROptional": false,
"main_contact_name": "",
"address": {
"address": "111 East Loop N, Houston, TX 77029, USA",
"lat": 29.729997,
"lng": -95.272407,
"address1": "111 East Loop N",
"city": "Houston",
"state": "TX",
"country": "US",
"zip_code": "77029"
},
"company_name": "DEMO"
}
],
"invoiceAutoEmailAudit": [],
"invoiceAutoEmailDate": [],
"carrierHold": false,
"brokerHold": false,
"overWeight": false,
"isConfirm": false,
"remainAmount": 0,
"totalAmount": 0,
"paidAmount": 0,
"totalWeight": 5,
"isLoadDropAtPull": false,
"isLoadDropAtYard": false,
"isHot": false,
"isReadyForPickup": false,
"isloadStartable": false,
"radio": 0,
"isNextContainerNeedToPickup": false,
"isPrePullCharge": false,
"isLive": false,
"isPaymentCompleted": false,
"documents": [],
"statusOrder": [],
"expenseHistory": [],
"paymentHistory": [],
"statusHistory": [],
"isDeleted": false,
"items": [
{
"_id": "12345",
"palletsUnits": "",
"pallets": 4,
"weightUnitType": "",
"weightKgs": 0.91,
"weight": 2,
"units": null,
"pieces": 1,
"description": "this is test",
"commodity": "com"
},
{
"_id": "12345",
"pallets": 6,
"weightKgs": 1.36,
"weight": 3,
"pieces": 4,
"description": "",
"commodity": "temp com"
}
],
"billing": [],
"expense": [],
"chargeConflicts": [],
"pricing": [],
"deliveryTimes": [
{
"customerId": "11",
"_id": "22"
}
],
"pickupTimes": [
{
"customerId": "33",
"_id": "44"
}
],
"hot": false,
"hazmat": false,
"__v": 0,
"totalMiles": 1490.8,
"routingOrder": [
{
"isVoidOut": false,
"distance": 0,
"address": {
"lng": -95.272407,
"lat": 29.729997,
"address": "111 East Loop N, Houston, TX 77029, USA"
},
"isBobtail": false,
"isGrayPool": false,
"priority": 0,
"_id": "1234",
"company_name": "DEMO CUSTOMER !",
"zip_code": "77029",
"country": "US",
"state": "TX",
"city": "Houston",
"customerId": {
"_id": "1234",
"city": "Houston",
"state": "TX",
"country": "US",
"zip_code": "77029",
"isTIROptional": false,
"geofence": {
"zoom": 10.91,
"polygon": [],
"center": [
-74.0029393,
40.717718
]
},
"address": {
"address": "111 East Loop N, Houston, TX 77029, USA",
"lat": 29.729997,
"lng": -95.272407,
"address1": "111 East Loop N",
"city": "Houston",
"state": "TX",
"country": "US",
"zip_code": "77029"
},
"company_name": "DEMO Customer !"
},
"type": "PULLCONTAINER"
},
{
"isVoidOut": false,
"distance": 1490.8,
"address": {
"lng": -115.2828725,
"lat": 36.0784436,
"address": "8760 W Patrick Ln, Las Vegas, NV 89148, USA"
},
"isBobtail": false,
"isGrayPool": false,
"priority": 0,
"_id": "12345",
"company_name": "DEMO CONSIGNEE",
"zip_code": "89148",
"country": "US",
"state": "NV",
"city": "Las Vegas",
"customerId": {
"_id": "12345",
"city": "Las Vegas",
"state": "NV",
"country": "US",
"zip_code": "89148",
"isTIROptional": false,
"geofence": {
"zoom": 10.91,
"polygon": [],
"center": [
-74.0029393,
40.717718
]
},
"address": {
"address": "8760 W Patrick Ln, Las Vegas, NV 89148, USA",
"lat": 36.0784436,
"lng": -115.2828725,
"address1": "8760 W Patrick Ln",
"city": "Las Vegas",
"state": "NV",
"country": "US",
"zip_code": "89148"
},
"company_name": "DEMO Consignee"
},
"type": "DELIVERLOAD"
},
{
"isVoidOut": false,
"distance": 0,
"isBobtail": false,
"isGrayPool": false,
"priority": 0,
"_id": "12345",
"type": "RETURNCONTAINER"
}
],
"allowCarrierCompletion": false,
"assignedCSR": [
{
"_id": "1234",
"isDeleted": false,
"isBlocked": false,
"lastName": "Alex",
"name": "new"
}
],
"milestoneStatus": "deliveredToUnloadDate"
}
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_DROP_DELIVER_DROP_RETURN, PULL_DROP_DELIVER_RETURN, PULL_DELIVER_DROP_RETURN, “”(Empty String) etc ] |
status | string | Current status of load |
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 |
items | array | Array of items of freight description. |
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 |
allowCarrierCompletion | boolean | Allow carrier for completion or not |
isMigrated | boolean | Is migrated or not |
customerEmployee | array | Array of customer employee |
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 hazat 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 |
routingOrder | array | Array of routing 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 |
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 |
carrierName | string | Carrier name of load |
nextRoutingOrderId | object | Next routing order object |
lastUpdatedStatusAt | string | Last status update datetime |
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.brokerage.portpro.io/v1/loads
Request Body
Parameter | Type | Description |
---|---|---|
type_of_load* | string | Types of the load. One of: [IMPORT, EXPORT, ROAD, BILL_ONLY] |
preSetOrderStatus* | string | Types of routing order. One of: [ PULL_DROP_DELIVER_DROP_RETURN, PULL_DROP_DELIVER_RETURN, PULL_DELIVER_DROP_RETURN and (Empty String) etc ] |
caller* | string | Customer id |
shipper* | array | Array of port id |
consignee* | array | Array of consignee id |
terminal | string | Id of terminal under which the load is created |
temperature | string | Temperature of a load |
deliveryOrderNo | string | Delivery order number |
callerbillLandingNo | string | Delivery time |
secondaryReferenceNo | string | Secondary reference number |
doNo | string | House Bill of Lading number |
bookingNo | string | Booking number |
sealNo | string | Seal number |
purchaseOrderNo | string | Purchase order number |
shipmentNo | string | Shipment number |
containerNo | string | Container number |
containerSize | string | Container size |
containerType | string | Container type |
containerOwner | string | Container owner |
items | array | Array of items of freight description. |
pricing | array | Pricing array |
instructionNote | string | Load instructions to be passed to the carrier. |
scac | string | Receiver SCAC name |
cutOff | string | Cut off date for export loads |
containerAvailableDay | string | ERD date for export loads |
lastFreeDay | string | Last free day date for import loads |
dischargedDate | string | Discharged date for import loads |
liquor | boolean | If load contains liquor, Accepts true/false for all types of load except roadl only loads |
releaseNo | string | Voyage for all load type but for road only load it's Order |
callerPONo | string | Pick up number |
appointmentNo | string | Appointment number for all load type except road only load |
returnNo | string | Return number for all load type except road only load |
reservationNo | string | Reservation number for all load type except road only load |
shipperDetails | array | Array of shipper details which includes company_name*, main_contact_name, ,address*, address1*, city*, state, country*, zip_code*. |
consigneeDetails | array | Array of consignee details which includes company_name*, main_contact_name, address*, address1*, city*, state, country*, zip_code*. |
emptyOriginDetails | object | Object of emptyOrigin details which includes company_name*, main_contact_name, ,address*, address1*, city*, state, country*, zip_code*. |
emptyOrigin | string | Id of container return location. |
secondaryReferenceNo | string | Reference # of load |
carrierHold | boolean | Is carrier hold on load or not |
brokerHold | boolean | Is broker hold on load |
deliveryTimes | array | Delivery time pf load, its object of array and in object customerId,deliveryFromTime, deliveryToTime etc |
pickupTimes | array | Array of object pickupFromTime(UTC String), pickupToTime(UTC String) and customerId. |
returnFromTime | datetime | Containter return from datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
returnToTime | datetime | Containter return to datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
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 |
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 |
loadTime | string | LoadTime of load |
return | datetime | Return Date datetime(UTC). e.g. 2015-02-06T08:40:47.772Z |
genset | string | Genset of load |
routeType | string | Route type of load. value should be Local or Highway |
bookingNo | string | Booking no of load |
trailer | string | Trailer No |
trailerType | string | Trailer Type |
trailerSize | string | Trailer Size |
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 |
hazmat | boolean | Hazmat |
hot | boolean | Hot |
overWeight | boolean | overWeight |
overHeight | boolean | overHeight |
isGenset | boolean | Genset |
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.brokerage.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 |
---|---|---|
caller | string | Customer id of a load |
consignee | array | Array of consignee id of load |
shipper | array | Array of port id of a load |
pickupTimes | array | Array of object containing customerId, pickupFromTime and pickupToTime as key for port pick up from and to date |
deliveryTimes | array | Array of object containing customerId, deliveryFromTime and deliveryToTime as key for consignee Delivery from and to date |
returnFromTime | date/string | Container Return from date |
returnToTime | date/string | Container Return to date |
hazmat | boolean | Is load Hazmat |
hot | boolean | Is load hot |
carrierHold | boolean | Is carrier hold on load |
brokerHold | boolean | Is broker hold on load |
overWeight | boolean | Is load over weight |
custom | string | One of: ["HOLD", "RELEASED"] |
freight | string | One of: ["HOLD", "RELEASED"] |
returnNo | string | Return number |
temperature | string | Temperature of a load |
liquor | boolean | Does load contains liquor |
routeType | string | Route type of a load |
scac | string | SCAC of equipment |
isHot | boolean | Is load hot |
emptyOrigin | string | Container return origin customer id |
emptyDay | date/string | Empty Date |
freeReturnDate | date/string | Return Day date |
lastFreeDay | date/string | Last Free DAY date |
dischargedDate | string | Discharged date for import loads |
vessel | date/string | Vessel ETA date |
outgateDate | date/string | Outgate date |
ingateDate | date/string | Ingate date |
bookingNo | string | Booking number |
callerPONo | string | Pick up number |
callerbillLandingNo | string | Master Bill of Lading number |
deliveryOrderNo | string | Vessel number |
doNo | string | House Bill of Lading number |
purchaseOrderNo | string | Purchase order number |
releaseNo | string | Release number |
sealNo | string | Seal number |
shipmentNo | string | Shipment number |
secondaryReferenceNo | string | Secondary reference number |
containerAvailableDay | date/string | ERD date for export loads |
cutOff | string | Cut Off date |
return | string | Return date |
instructionNote | string | Load instructions to be passed to the carrier. |
pickupFromTime | date/string | Pickup from time |
pickupToTime | date/string | Pickup to time |
deliveryFromTime | date/string | Delivery trom time |
deliveryToTime | date/string | Delivery to time |
pickupNo | string | Pickup Number |
sealBookingNo | string | Seal booking number |
shipperBookingNo | string | Shipper booking number |
callerBookingNo | string | Customer booking number |
terminal | string | Terminal id |
containerNo | string | Container number |
containerSize | string | Container size id |
containerType | string | Container type id |
containerOwner | string | Container owner id |
genset | string | Genset number |
items | array | Array of items of freight description. |
loadAssignedDate | date | Load assign date |
approvedDate | string | Approved date |
appointmentNo | string | Appointment number |
reservationNo | string | Reservation number |
grayContainerNo | string | Container number |
grayContainerSize | string | Container size id |
grayContainerType | string | Container type id |
grayContainerOwner | string | Container owner id |
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.brokerage.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/",
"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.brokerage.portpro.io/v1/load-status/
Request Parameters
Parameter | Type | Description |
---|---|---|
reference_number* | string | The reference_number of the load to update |
routingOrderId | string | Carrier order id |
arrivedOrDeparted | string | any one of this two: [arrived, departed] |
date | date | Date of load |
completeLoad | boolean | Is load completed or not |
strictChange | boolean | Strict change or not |
status | string | any one of this status: [PENDING, AVAILABLE, etc] |
chassisNo | string | Chassis no of chassis |
containerNo | string | Container no of container |
notes | string | notes for load |
timeOfStatus | date | date of status time changed |
isPrePullCharge | boolean | Is prepull charge need to add |
billingDate | string | Billing date of load |
isCombined | boolean | True if invoice needs to be combined for same customer |
loads | array | Array of loads with same customers |
isSubCustomer | boolean | True if combining loads invoices for subcustomer additionalPricing |
additionalIds | array | Array of additionalIds to be combined |
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.brokerage.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 | Limit on load count page |
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 | Chassic no of chassis |
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 |
carriers | Array[string] | Array of carrier 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 | string | Sorting type [ asc, desc] |
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 |
isLFDCard | boolean | Is lfd card or not |
isReturnCard | boolean | Is return card or not |
isDroppedCard | boolean | Is dropped card or not |
isCompletedCard | boolean | Is completed card or not |
is_PICKUP_TOTAL_Card | boolean | Is pickup total card or not |
is_PICKUP_LFD_Card | boolean | Is pickup lfd card or not |
is_PICKUP_Card | boolean | Is pickup card or not |
is_PICKUP_PREPULL_Card | boolean | Is pickup prepull card or not |
is_PICKUP_DELIVERY_Card | boolean | Is pickup delivery card or not |
is_DELIVERYAPPT_LFD_Card | boolean | Is deliveryappt lfd card or not |
is_DELIVERYAPPT_PENDING_Card | boolean | Is deliveryappt pending card or not |
is_DELIVERYAPPT_AVAILABLE_Card | boolean | Is deliveryappt available card or not |
is_DELIVERYAPPT_READY_Card | boolean | Is deliveryappt ready card or not |
is_DELIVERYAPPT_DROPPED_Card | boolean | Is deliveryappt dropped card or not |
is_RETURN_LFD_Card | boolean | Is return lfd card or not |
is_RETURN_Card | boolean | Is return card or not |
is_RETURN_READY_FOR_PICKUP_Card | boolean | Is return ready for pickup card or not |
is_RETURN_NOT_READY_FOR_PICKUP_Card | boolean | Is return not ready for pickup card or not |
is_APPLIED_PICKUP_COUNT_Card | boolean | Is applied pickup count card or not |
is_LFD_COUNT_Card | boolean | Is lfd count card or not |
is_PICKUP_APPT_COUNT_Card | boolean | Is pickup appt count card or not |
is_DELIVERY_COUNT_Card | boolean | Is delivery count card or not |
is_IN_PORT_DELIVERY_COUNT_Card | boolean | Is in port delivery count card or not |
is_IN_YARD_DELIVERY_COUNT_Card | boolean | Is in yad delivery count card or not |
is_RETURNS_COUNT_Card | boolean | Is return count card or not |
is_READY_FOR_PICKUP_COUNT_Card | boolean | Is ready for pickup card or not |
is_NOT_READY_FOR_PICKUP_COUNT_Card | boolean | Is not ready for pickup card or not |
is_DROPPED_COUNT_Card | boolean | Is dropped count card or not |
is_IN_YARD_DROPPED_COUNT_Card | boolean | Is in yard dropped count card or not |
is_AT_CUSTOMER_DROPPED_COUNT_Card | boolean | Is at customer dropped count card or not |
is_CONTAINERS_ON_VESSEL_COUNT_Card | boolean | Is containers on vessel count card or not |
is_CONTAINERS_ON_HOLD_Card | boolean | Is containers on hold card or not |
is_CONTAINERS_RELEASED_Card | boolean | Is containers released card 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 | boolean | Is temperature or not |
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 |
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.brokerage.portpro.io/v1/loads/<reference_number>
Request Parameters
Parameter | Type | Description |
---|---|---|
reference_number* | string | The reference_number of the load |
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.brokerage.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.brokerage.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.brokerage.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 |
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
{
"data": {
"changedValues": {Object of changed values},
"_id": {Database id},
"eventType": {Webhook Event Type},
"reference_number": {Reference Number of Load}
},
}
Milestone Event:
{
"data": {
"eventType": "load#milestone",
"reference_number": "test",
"timestamp": "2023-02-27T10:37:57.601Z",
"changedValues": {
"eventTime" : "2023-02-27T10:37:57.601Z",
"event": "outgated"
}
}
}
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 webook payload is a load event data object.
Name | Type | Description |
---|---|---|
Load Info Update | load#info_updated | Triggered when load info fields are updated. |
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. |
Load Milestones | load#milestone | Triggered when milestone dates are updated. |
Dispatcher Events
For all Load Status Events, the data field of the Event webook payload is a load status event data object.
We're managing below status for now.
Name | Type | Description |
---|---|---|
Load Status Update | load#status_updated | Triggered when load status is changed. |
Demo response Object
{
"data": {
"eventType": "load#status_updated",
"reference_number": "test",
"_id": "123",
"changedValues": {
"time" : "2023-02-27T10:37:57.601Z",
"status": "Enroute to Hook Container"
}
}
}
Load Status Details
You will receive load status change event for below statuses.
Import Load Status
Name | Description |
---|---|
Pending | The Load is Pending. |
Available | The Load is Available. |
Dispatched | The Load is Dispatched. |
Enroute to Chassis | Enroute to pick up the Chassis. |
Arrived to Chassis | Arrived at pick up the Chassis. |
Enroute to Pick Container | Enroute to Pick up the Container. |
Arrived at Pick Container | Arrived at pick up the Container. |
Enroute to Drop Container | Enroute to Drop the Container. |
Dropped | The container is Dropped. |
Dropped-Loaded | Dropped container is loaded. |
Dropped-Empty | Dropped container is empty. |
Enroute to Hook Container | Enroute to Hook the Container. |
Arrived to Hook Container | Arrived at Hook the Container. |
Enroute to Deliver Load | Enroute to Deliver the Load. |
Arrived at Deliver Load | Arrived at Deliver Load. |
Enroute to Return Empty | Enroute to Return the Empty Container. |
Arrived at Return Empty | Arrived at Return the Empty Container. |
Enroute to Return Chassis | Enroute to Return the Chassis. |
Arrived to Return Chassis | Arrived at Return the Chassis. |
Completed | The load is Completed. |
Billing | The load is in Billing Status. |
Export Load Status
Name | Description |
---|---|
Enroute to Chassis | Enroute to pick up the Chassis. |
Arrived to Chassis | Arrived at pick up the Chassis. |
Enroute to Pick Container | Enroute to Pick up the Container. |
Arrived at Pick Container | Arrived at pick up the Container. |
Enroute to Drop Container | Enroute to Drop the Container. |
Dropped | The container is Dropped. |
Dropped-Loaded | Dropped container is loaded. |
Dropped-Empty | Dropped container is empty. |
Enroute to Hook Container | Enroute to Hook the Container. |
Arrived to Hook Container | Arrived at Hook the Container. |
Enroute to Deliver Load | Enroute to Deliver the Load. |
Arrived at Deliver Load | Arrived at Deliver Load. |
Enroute to Return Empty | Enroute to Return the Empty Container. |
Arrived at Return Empty | Arrived at Return the Empty Container. |
Enroute to Return Chassis | Enroute to Return the Chassis. |
Arrived to Return Chassis | Arrived at Return the Chassis. |
Completed | The load is Completed. |
Billing | The load is in Billing Status. |
Road Load Status
Name | Description |
---|---|
Enroute to Pick Container | Enroute to Pick up the Container. |
Arrived at Pick Container | Arrived at pick up the Container. |
Enroute to Drop Container | Enroute to Drop the Container. |
Dropped | The container is Dropped. |
Dropped-Loaded | Dropped container is loaded. |
Dropped-Empty | Dropped container is empty. |
Enroute to Hook Container | Enroute to Hook the Container. |
Arrived to Hook Container | Arrived at Hook the Container. |
Enroute to Deliver Load | Enroute to Deliver the Load. |
Arrived at Deliver Load | Arrived at Deliver Load. |
Completed | The load is Completed. |
Billing | The load is in Billing Status. |
Demo Response Object for Tender Status
{
"data": {
"eventType": "tendor#status_changed",
"reference_number": "ABCD00001",
"tenderReferenceNumber": "TABC0236",
"carrierLoadReferenceNumber": "ABCD6589",
"changedValues": {
"status": "ACCEPTED"
}
}
}
Demo Response Object for Port Pickup
{
"data": {
"_id": "507f191e810c19729de860ea",
"eventType": "appointments#port_pickup",
"reference_number": "ABCD00001",
"changedValues": {
"pickupTimes": [
{
"customerId": {
"_id": "507f191e810c19729de860er",
"company_name": "XYZ Info tech",
"address": { "company_name": "xyz", "address": {} }
},
"pickupFromTime":"2023-02-08T10:15:00.000Z",
"pickupToTime":"2023-02-08T10:15:00.000Z"
}
]
}
}
}
Demo Response Object for Consignee
{
"data": {
"_id": "507f191e810c19729de860ea",
"eventType": "appointments#consignee",
"reference_number": "ABCD00001",
"changedValues": {
"deliveryTimes": [
{
"customerId": {
"_id": "507f191e810c19729de860er",
"company_name": "XYZ Info tech",
"address": { "company_name": "xyz", "address": {} }
},
"deliveryFromTime":"2023-02-08T10:15:00.000Z",
"deliveryToTime":"2023-02-08T10:15:00.000Z"
}
]
}
}
}
Demo Response Object for Port Return
{
"data": {
"_id": "507f191e810c19729de860ea",
"eventType": "appointments#port_return",
"reference_number": "ABCD00001",
"changedValues": {
"emptyOrigin": {
"_id": "507f191e810c19729de860er",
"company_name": "XYZ Info tech",
"address": { "company_name": "xyz", "address": {} }
},
"returnFromTime": "2023-02-16T11:45:00.000Z",
"returnToTime": "2023-02-16T11:45:00.000Z",
}
}
}
Demo Response Object for Document Add
{
"data": {
"changedValues": {
"type": "Proof of Delivery", // type will be change based on event.
"url": "www.aws.com/development/tms/shipment_WnyZ3495.pdf"
},
"_id": "1234",
"reference_number": "ABCD0_M1247",
"eventType": "document#pod_added" // event will be change based on document type.
}
}
Tender Events
For tenders Accept or Reject, the data field of the Event webook payload is a tender event object.
Name | Type | Description |
---|---|---|
Tender Status | appointments#port_pickup | Triggered when port pickup's location or time is updated. |
Appointment Events
For Load's appointment events, the data field of the Event webook payload is a load appointment event data object.
Name | Type | Description |
---|---|---|
Port Pickup | appointments#port_pickup | Triggered when port pickup's location or time is updated. |
Consignee | appointments#consignee | Triggered when when consignee's location or time is updated. |
Port Return | appointments#port_return | Triggered when port retun's location or time is updated. |
Invoice Events
For Invoice Events, the data field of the Event webook payload is a invoice event data object.
Name | Type | Description |
---|---|---|
Invoice Create | invoice#created | Triggered when invoice created for load. |
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 webook 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. |
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.brokerage.portpro.io/v1/webhook/
Query Parameters
Parameter | Type | Description |
---|---|---|
type | array | Filter by one of the type of the event, ["load", "invoice", "document"] |
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.brokerage.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.brokerage.portpro.io/v1/customer/
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the customer to retrieve. |
limit | int32 | Count of items in each page. Should be between 1 and 100 (inclusive). |
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 custoemrs. |
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 |
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,
"accountHoldEnabled": false,
"equipmentParameters": [],
"requireReference": false,
"isDefaultSSLAdded": true,
"isOnBoardingDone": 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.brokerage.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. |
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 | string | 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 accpeted or not to customer. |
isSendEmailContainerReadyForPickup | boolean | Send email for container ready for pickup or not to customer. |
currency | string | Currency of customer. |
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.brokerage.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. |
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. |
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 | string | 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 accpeted or not to customer. |
isSendEmailContainerReadyForPickup | boolean | Send email for container ready for pickup or not to customer. |
currency | string | Currency of customer. |
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.brokerage.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.brokerage.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.brokerage.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.brokerage.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.brokerage.portpro.io/v1/customer-rates
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the customer to retrieve. |
limit | int32 | Count of items in each page. Should be between 1 and 100 (inclusive). |
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.brokerage.portpro.io/v1/customer-dynamic-rates
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.brokerage.portpro.io/v1/consignee/
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the consignee to retrieve. |
limit | int32 | Count of items in each page. Should be between 1 and 100 (inclusive). |
createdFrom | date | Consignee created from date |
createdTo | date | Consignee created to date |
updatedFrom | date | Consignee updated from date |
updatedTo | date | Consignee updated to date |
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.brokerage.portpro.io/v1/shipper/
Query Parameters
Parameter | Type | Description |
---|---|---|
skip | int32 | Skip number of the shipper to retrieve. |
limit | int32 | Count of items in each page. Should be between 1 and 100 (inclusive). |
createdFrom | date | Port created from date |
createdTo | date | Port created to date |
updatedFrom | date | Port updated from date |
updatedTo | date | Port updated to date |
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.brokerage.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.brokerage.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.brokerage.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 |
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.brokerage.portpro.io/v1/terminal/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the terminal object to be retrieved |
Delete 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": true
}
},
"error": null
}
This endpoint delete a specific terminal.
Example of terminal object you can find here.
HTTP Request
DELETE https://api1.brokerage.portpro.io/v1/terminal/<id>
Request Parameters
Parameter | Type | Description |
---|---|---|
id* | string | The unique id for the terminal object to be delete |
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
}
Parameter | Type | Description |
---|---|---|
_id | string | Unique identifier for the object |
companyID | string | Company ID of caller |
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 | Company name of caller |
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 |
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 |
Routing Order
Routing Order Object
{
"isVoidOut": false,
"distance": 0,
"address": {
"address": "1200 Corbin St, Elizabeth, NJ 07201, USA",
"lat": 40.6806736,
"lng": -74.1662324
},
"_id": "1234",
"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 carrier done |
address | object | Address objects |
_id | string | Unique identifier for the object |
customerId | object | Customer details object |
geofence | object | Geofence object which has polygo and center array and zoom value |
isTIROptional | boolean | Is TIR optional or not |
type | string | Current type of carrier load |
loadAssignedDate | date/string | Load assigned date |
prevType | string | Previous type of load |
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 |
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 |
Items
Items Object
{
"commodity": "Shoes",
"description": "Nice Bulk Shoes",
"pieces": 50,
"weight": 100,
"weightKgs": 45.36,
"pallets": 5
}
Parameter | Type | Description |
---|---|---|
commodity | string | Commodity name. |
description | string | Description of commodity. |
pieces | int32 | Pieces of commodity. |
weight | int32 | Weight of commodity. |
weightKgs | int32 | Weight in kgs of commodity. |
pallets | int32 | Number of pallets. |