Download OpenAPI specification:Download
Welcome to the OXNet developer docs. You'll find comprehensive guides and documentation to help you start working with OXNet as quickly as possible, as well as support if you get stuck. Let's jump right in!
The only option for integration into the system is after business negotiations and agreement on the parameters of the contract. You can contact our business via e-mail jakub.schwarz@oxpoint.cz. Then, you will be redirected to the communication with the technical team, which will set up the necessary data in the system according to the agreed contract and provide you with access. Development and testing take place compared to the staging environment, to which the technical team of the OX Point will send you access.
parcel = package; in some cases, you may encounter parcel and package terms that are interchangeable in our system. The preferred variant is the unification of terminology on parcels.
Most of the endpoints are secured by access token mechanism. Access token can be obtained via Authentication API. Credentials for authentication API are distributed individually according to discussion with technical team. Access token is authentication with limited time to live. Information about expiration period is returned in authentication endpoint response. After expiration access token is no longer valid and new access token needs to be requested.
Some API endpoints are protected with ETag validation against concurrent calls. Selected modification endpoints require HTTP Header “If-Match”. The value needs to exactly equal to latest version of ETag of related entity. ETag is value can be obtained via HTTP header by both read and write operations. Write operation returns ETag value of entity after successful applying the requested modifications. ETag value after successful modification can then be used for next modification call. In order to get latest possible ETag value read operation can be used and ETag value of latest version of entity is returned together with the entity content.
Callback is a notification from OXNet system to defined HTTP endpoint. Notifications are triggered on different type of events or are scheduled. Check specific notification type below to get more details about behavior. Each notification is sent via HTTPS as POST, it also contains a time stamp and a shared key signature. Timeout for individual call is 5 seconds. Retry mechanism is applied and takes at minimum 1 hours. Undelivered notifications are kept for several days in Dead Letter Queue for manual resending in case of solving technical issues with technical team. Callbacks are protected by API key signatures. Callbacks are also called webhooks in OXnet system. See webhook API definition.
According to contract type of registered party some endpoint restricts the view on reservation capacity entities (point and boxes) in OXNet system. Selected endpoints contains "allowForeign" or "boxVisibility" parameter to influence the view. Some contract types restrict the usage, the other can take advantage to use it in order to to prefer certain type of points and boxes.
Basic authentication is used for Authentication API endpoint. It is sent in HTTP header "Authorization" with value "Basic <base64(username:password)>". Username and password is documented in specific endpoint from Authentication API.
Security Scheme Type | HTTP |
---|---|
HTTP Authorization Scheme | basic |
Bearer type authentication is sent in HTTP header "Authorization" with value "Bearer <access_token>". Access token can be obtained via Authentication API. Most of API is secured with access token expected as Bearer authentication. Access token has limited life-time. After expiration access token needs to be requested again via Authentication API endpoint.
Security Scheme Type | HTTP |
---|---|
HTTP Authorization Scheme | bearer |
Bearer format | "JWT" |
Get access token which is restricted to vendor project. Username and password in request body is sensitive information specific for each vendor project.
Besides username and password in request body the endpoint is secured also with Basic authentication which uses hard-coded username "vendorapi" and password "" (empty password) which when base64-encoded is sent as HTTP header "Authorization" with value "Basic dmVuZG9yYXBpOg==".
Access token is of type JWT and has limited life-time. Expiration time is encoded in absolute time inside JWT body and relative expiration time is also returned in response body. After expiration all endpoints secured by it will return 401. New access token can be obtained by another call.
Vendor project API client credentials
grant_type | string Only "password" grant type is supported. |
username | string API client username |
password | string API client password |
{- "access_token": "string",
- "expires_in": 0,
- "token_type": "string"
}
Get list of points
allowForeign | boolean Default: false If true show all available boxes at points. If false show just exclusive boxes at points. |
search | string Provides full text search on items. |
lngMin | number <double> Minimal point location longitude |
lngMax | number <double> Maximal point location longitude |
latMin | number <double> Minimal point location latitude |
latMax | number <double> Maximal point location latitude |
status | Array of strings (PointStatusEnum) Deprecated Items Enum: "in_construction" "active" "maintenance" Filter by status |
paymentTerminal | Array of strings (PaymentTerminalStatusEnum) Items Enum: "none" "active" "in_construction" Filter by payment terminal status |
pageSize | integer [ 1 .. 1000 ] Default: 20 Number of items in a page, default page size is 20, maximum 1000 |
pageNumber | integer >= 0 Default: 0 Page number, default is 0 |
sort | string Sort criteria, format: '?sort=<propertyA>[,<propertyB>][,(asc|desc)]', sort parameter can be used several times in one query |
{- "results": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "businessId": "string",
- "summary": "string",
- "geolocation": {
- "lng": 0,
- "lat": 0
}, - "address": {
- "addressLine1": "Kolbenova 764/12",
- "addressLine2": "string",
- "city": "string",
- "street": "Kolbenova",
- "streetNumber": 764,
- "conscriptionNumber": 12,
- "postalCode": "string",
- "country": "string"
}, - "detailedDescription": "string",
- "openingHoursSpecification": "string",
- "openingHours": {
- "monday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "tuesday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "wednesday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "thursday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "friday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "saturday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "sunday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}
}, - "serialNumber": "string",
- "status": "in_construction",
- "paymentTerminal": "none",
- "images": [
- {
- "url": "string"
}
], - "boxQuantities": [
- {
- "quantity": 0,
- "boxType": "1U1D"
}
], - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "outageReason": "string",
- "timeZone": "string"
}
], - "paging": {
- "pageNumber": "0",
- "pageSize": "20",
- "pageCount": 5
}
}
Get list of points
allowForeign | boolean Default: false If true show all available boxes at points. If false show just exclusive boxes at points. |
search | string Provides full text search on items. |
lngMin | number <double> Minimal point location longitude |
lngMax | number <double> Maximal point location longitude |
latMin | number <double> Minimal point location latitude |
latMax | number <double> Maximal point location latitude |
status | Array of strings (PointStatusEnum) Items Enum: "in_construction" "active" "maintenance" Filter by status |
paymentTerminal | Array of strings (PaymentTerminalStatusEnum) Items Enum: "none" "active" "in_construction" Filter by payment terminal status |
pageSize | integer [ 1 .. 1000 ] Default: 20 Number of items in a page, default page size is 20, maximum 1000 |
pageNumber | integer >= 0 Default: 0 Page number, default is 0 |
sort | string Sort criteria, format: '?sort=<propertyA>[,<propertyB>][,(asc|desc)]', sort parameter can be used several times in one query |
{- "results": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "businessId": "string",
- "summary": "string",
- "geolocation": {
- "lng": 0,
- "lat": 0
}, - "address": {
- "addressLine1": "Kolbenova 764/12",
- "addressLine2": "string",
- "city": "string",
- "street": "Kolbenova",
- "streetNumber": 764,
- "conscriptionNumber": 12,
- "postalCode": "string",
- "country": "string"
}, - "detailedDescription": "string",
- "openingHoursSpecification": "string",
- "openingHours": {
- "monday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "tuesday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "wednesday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "thursday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "friday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "saturday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "sunday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}
}, - "serialNumber": "string",
- "status": "in_construction",
- "paymentTerminal": "none",
- "images": [
- {
- "url": "string"
}
], - "boxQuantities": [
- {
- "quantity": 0,
- "boxType": "1U1D"
}
], - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "outageReason": "string",
- "timeZone": "string"
}
], - "paging": {
- "pageNumber": "0",
- "pageSize": "20",
- "pageCount": 5
}
}
Get point detailed information
pointId required | string <uuid> Point ID |
allowForeign | boolean Default: false If true show all available boxes at points. If false show just exclusive boxes at points. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "businessId": "string",
- "summary": "string",
- "geolocation": {
- "lng": 0,
- "lat": 0
}, - "address": {
- "addressLine1": "Kolbenova 764/12",
- "addressLine2": "string",
- "city": "string",
- "street": "Kolbenova",
- "streetNumber": 764,
- "conscriptionNumber": 12,
- "postalCode": "string",
- "country": "string"
}, - "detailedDescription": "string",
- "openingHoursSpecification": "string",
- "openingHours": {
- "monday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "tuesday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "wednesday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "thursday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "friday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "saturday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}, - "sunday": {
- "type": "closed",
- "from": "07:00",
- "to": "23:00"
}
}, - "serialNumber": "string",
- "status": "in_construction",
- "paymentTerminal": "none",
- "images": [
- {
- "url": "string"
}
], - "boxQuantities": [
- {
- "quantity": 0,
- "boxType": "1U1D"
}
], - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "outageReason": "string",
- "timeZone": "string"
}
Get list of point outages
allowForeign required | boolean If true show outages of all available points. If false just show outages of exclusive points. |
search | string Provides full text search on items. |
pointId | string <uuid> Filter by point ID |
pageSize | integer [ 1 .. 1000 ] Default: 20 Number of items in a page, default page size is 20, maximum 1000 |
pageNumber | integer >= 0 Default: 0 Page number, default is 0 |
sort | string Sort criteria, format: '?sort=<propertyA>[,<propertyB>][,(asc|desc)]', sort parameter can be used several times in one query |
{- "results": [
- {
- "pointId": "20a7be04-0667-469f-8fa4-da6cf02369c8",
- "from": "2019-08-24T14:15:22Z",
- "until": "2019-08-24T14:15:22Z",
- "reason": "string",
- "type": "planned"
}
], - "paging": {
- "pageNumber": "0",
- "pageSize": "20",
- "pageCount": 5
}
}
Get a list of selected time windows with availability information, maximum time span (from to until) is one year
allowForeign | boolean Default: false If true try to place parcel into all available boxes with preferrence to reserved boxes. If false only reserved boxes are considered. |
carrierIdentifier | string Identifier of carrier, if pickup mode is not forbidden, protection periods will be ignored |
from required | string <date-time> Filter slots available from this time onward |
until required | string <date-time> Filter slots available up to this time |
slotSize | number [ 0.5 .. 72 ] Default: 1.5 Length of each slot in hours |
pointId required | string <uuid> ID of point to search in |
required | object How many boxes of which sizes are needed |
{- "carrierIdentifier": "string",
- "from": "2019-08-24T14:15:22Z",
- "until": "2019-08-24T14:15:22Z",
- "slotSize": 1.5,
- "pointId": "20a7be04-0667-469f-8fa4-da6cf02369c8",
- "requestedBoxes": {
- "property1": 1,
- "property2": 1
}
}
[- {
- "from": "2019-08-24T14:15:22Z",
- "until": "2019-08-24T14:15:22Z",
- "isAvailable": true
}
]