Excerpt | ||
---|---|---|
| ||
|
...
...
V2 Summary
To receive callbacks for particular container events, you need to create a subscription by POSTing to the subscriptions endpoint.
Subscriptions can be created by Container Number or Booking Number.
For version 2, a new subscription is created for every unique combination of:
PortCode
, Category
and FacilityCode
.
Callbacks can be sent as emails to multiple email addresses, or as HTTP requests. When creating the subscription you must pass either WebhookURI and WebhookToken or an EmailAddressList.
For the eventTypeCodes
we allow for more than 10 event types to be specified in the subscription request. Users can also use the "ALL" to subscribe to all event types.
V1 vs V2 differences
Version 1 allows a single container visit event type code per request, Version 2 supports multiple container visit event type codes in a single request. Version 2 also supports the use of “ALL” to subscribe to all events for one or more containers.
Event Types are applied to all containers associated to the subscription
V2 Subscriptions are created based on PortCode, Category and Facility Code. POSTs are an Add action rather than a Replace action and any event types included will be applied to all containers currently linked to the subscription i.e. if you send two subscription POSTs with the same Port/Category/Facility but with different containers and different event types then the event types from both POSTs will be linked to the subscription and all containers associated with the subscription will receive event callbacks for the full list of event types associated with the booking.
If you want to reduce the number of event types associated with a Subscription then there are two ways to do this:
Delete the whole subscription and re-add all containers.
Delete all individual containers from the subscription and re-add them.
If containers are subscribed using the same User Defined Refence then any previously sent events should not be resent.
Endpoint
Code Block |
---|
POST https://api.portconnect.io/v2/subscriptions |
Request Body with Container Numbers
Code Block | ||||
---|---|---|---|---|
| ||||
{ "containers": [ { "containerNumber": "MEDU3085895", "userDefinedReference" : "User ref 1"}, { "containerNumber": "APHU6303593", "userDefinedReference" : "User ref 2"}, { "containerNumber": "MEDU5129708", "userDefinedReference" : "User ref 3"} ], "webhookURI": "https://api.yourcompany.co.nz/webhooks/portconnect", // Optional if emailAddressList is present "webhookToken": "yoursecret", // Optional if emailAddressList is present "emailAddressList": ["me@test.com"], // Optional if webhookURI and webhookToken are present "portCode": "NZTRG", "category": "IMPORT", "eventTypeCodeeventTypeCodes": ["ALL", "Discharge"], "facilityCode": null } |
Response Body with containers:
Code Block | ||
---|---|---|
| ||
{ "subscriptionId": 32, "containers": [ { "expirationDatetime": "2023-06-20T14:50:30.3+12:00", "containerNumber": "TCNU8050683", "userDefinedReference": "Azure Test 2" } ] } |
Request example using Booking Numbers
When creating a subscription against a Booking Number, callbacks will be sent for any Export containers with the specified booking number.
Request Body with
...
Booking Numbers
Code Block | ||||
---|---|---|---|---|
| ||||
{ "bookings": [ { "bookingNumber": "MEDU3085895LOPReferenc1", "userDefinedReference" : "User ref 1"}, { "bookingNumber": "APHU6303593", "userDefinedReference" : "User ref 2"}, { "bookingNumber": "MEDU5129708", "userDefinedReference" : "User ref 3"} ], "webhookURI": "https://api.yourcompany.co.nz/webhooks/portconnect", // Optional if emailAddressList is present "webhookToken": "yoursecret", // Optional if emailAddressList is present "emailAddressList": ["me@test.com"], // Optional if webhookURI and webhookToken are present "portCode": "NZTRG", "category": "IMPORTEXPORT", "eventTypeCodeeventTypeCodes": ["ALL", "DischargeLoad"], "facilityCode": null } |
Response Body with bookings:
Code Block | ||
---|---|---|
| ||
{ "subscriptionId": 32, "bookings": [ { "expirationDatetime": "2023-06-20T14:50:30.3+12:00", "bookingNumber": "TCNU8050683LOPReferenc1", "userDefinedReference": "AzureUser Testref 212" } ] } |
...