Download the PHP package m-michalis/boxnow-api without Composer
On this page you can find all versions of the php package m-michalis/boxnow-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download m-michalis/boxnow-api
More information about m-michalis/boxnow-api
Files in m-michalis/boxnow-api
Package boxnow-api
Short Description Document describes the API description for partners in order to create and track delivery requests. ## Revision history |Date|Author|Description|Version| |-|-|-|-| |2022-09-22|Šmolík, J.|Add accepted-to-locker parcel event |1.40| |2022-09-08|Šmolík J.| Add support for user to choose partner they want to work with |1.39| |2022-08-10|Šmolík J.| Add /labels:search to download PDF labels for defined criteria |1.38| |2022-08-08|Azizov. J.| Add `region` field to /destinations and /origins endpoints |1.37| |2022-07-27|Vala J.| Add EP for listing shipping label data of parcels order /api/v1/delivery-requests/{orderNumber}/label |1.36| |2022-07-27|Vala J.| Add EP for listing shipping label data of parcel /api/v1/parcels/{id}/label |1.35| |2022-07-22|Vala J.| Add destination_public_id column to csv export of parcels |1.34| |2022-07-08|Vala J.|
- Add exportCsvUrl to headers ['X-export-url-csv'] to response from /api/v1/parcels
- Add endpoint to export parcels to csv file /ui/v1/parcels.csv
- Add check address delivery endpoint
- Add /api/v1/simple-delivery-requests for simpler delivery creation
- Add CSV import endpoint
- Add JWT custom claims description
- Move 403 error codes to own section
- Add new endpoint to confirm AnyAPM delivery of a parcel
- Partition error codes by HTTP status response
- Update parcel state enum values
- Remove history event displayName, add type
- Add possibility to print labels for all parcels in order
- Make contact information of origin optional in delivery request
- Update Requesting a delivery text
- Add `name` filter to origins and destinations
- Rename delivery request code of description to plain description
- Add more specific info to value amount fields
- Update address country to match ISO Code
- Update address postal code formatting
- Update origin/destination for delivery request
- Remove height, length, width from order item
- Add events to parcel info
- Update delivery request response
- Update order number description
- Add parcel id filter to /parcels
- Add message to error
- Make contact name required
- Add delivery partner parcel ids
- Remove order items' code and status
- Add a todo to specify client notification type after accepting the order.
- Let the partner choose to receive an email when successful delivery request is made.
- Remove `typeOfOrder` from delivery request.
- Add option to select delivery partner for pickup
- Make item weight in the order optional
- Make origin contact email required
- Add support to add sender's name when making delivery request
- Remove landmark and code from address
- Add new error code or partners not eligible to create COD delivery requests
- Add support to filter destinations/origins by type
- Add support to send compartment size for order item, required for APM origin
- Make `typeOfService` optional
License unlicense
Homepage https://openapi-generator.tech
Informations about the package boxnow-api
OpenAPIClient-php
Document describes the API description for partners in order to create and track delivery requests.
Revision history
Date | Author | Description | Version |
---|---|---|---|
2022-09-22 | Šmolík, J. | Add accepted-to-locker parcel event | 1.40 |
2022-09-08 | Šmolík J. | Add support for user to choose partner they want to work with | 1.39 |
2022-08-10 | Šmolík J. | Add /labels:search to download PDF labels for defined criteria | 1.38 |
2022-08-08 | Azizov. J. | Add region field to /destinations and /origins endpoints |
1.37 |
2022-07-27 | Vala J. | Add EP for listing shipping label data of parcels order /api/v1/delivery-requests/{orderNumber}/label | 1.36 |
2022-07-27 | Vala J. | Add EP for listing shipping label data of parcel /api/v1/parcels/{id}/label | 1.35 |
2022-07-22 | Vala J. | Add destination_public_id column to csv export of parcels | 1.34 |
2022-07-08 | Vala J. |
|
1.33 |
2022-06-27 | Vala J. | Add width and printerModel query parameters for zpl shipping labels for /api/v1/delivery-requests/{orderNumber}/label.{type} and /api/v1/parcels/{id}/label.{type} | 1.32 |
2022-06-17 | Šmolík, J. | Allow to select return location for delivery request | 1.31 |
2022-05-25 | Vala, J. | Add single labelUrlPdf to headers ['X-labels-url-pdf'] in response from /api/v1/delivery-requests:fromCsv | 1.30 |
2022-05-25 | Vala, J. | Add EP to handle csv import orders printing of shipping label /ui/v1/delivery-requests/{orderImportsNumber}/label.pdf | 1.29 |
2022-05-20 | Vala, J. | Add possibility to overwrite 4 rows in shipping label sender info to /api/v1/delivery-requests endpoint | 1.28 |
2022-05-04 | Azizov, J. | Add state and created filters to to /api/v1/parcels endpoint | 1.27 |
2022-05-03 | Azizov, J. | Add possibility to search parcels to /api/v1/parcels endpoint | 1.26 |
2022-04-27 | Azizov, J. | Add /api/v1/delivery-requests:customerReturns for customer returns delivery requests | 1.25 |
2022-04-26 | Vala, J. | Add createTime, updateTime to parcel list response | 1.24 |
2022-04-21 | Šmolík, J. | Add payment info to parcels | 1.23 |
2022-02-22 | Azizov, J. | Add P408 and P409 error codes | 1.22 |
2022-02-22 | Azizov, J. | Add notifySMSOnAccepted to DeliveryRequest | 1.21 |
2022-02-01 | Šmolík, J. |
|
1.20 |
2022-01-20 | Šmolík, J. | Add P405, P406 and P407 error codes | 1.19 |
2022-01-10 | Šmolík, J. |
|
1.18 |
2021-12-23 | Šmolík, J. |
|
1.17 |
2021-12-16 | Šmolík, J. | Add new error code P403 | 1.16 |
2021-12-09 | Šmolík, J. | Add new error codes P401, P402 | 1.15 |
2021-11-30 | Šmolík, J. | Add delivery request origin, destination and items fields description | 1.14 |
2021-11-11 | Šmolík, J. | Add endpoint for parcel delivery cancellation | 1.13 |
2021-11-09 | Šmolík, J. | Add X403 error code spec | 1.12 |
2021-10-14 | Šmolík, J. | Add Accepted for return event | 1.11 |
2021-10-05 | Šmolík, J. | Make DeliveryRequest.items required | 1.10 |
2021-09-22 | Šmolík, J. | Add canceled event state and event | 1.9 |
2021-09-17 | Šmolík, J. | Add PDF label URLs to parcels response | 1.8 |
2021-09-13 | Šmolík, J. |
|
1.7 |
2021-08-25 | Azizov, J. |
|
1.6 |
2021-08-02 | Azizov, J. | Add items metadata to parcel | 1.5 |
2021-07-15 | Šmolík, J. | Add destination expected delivery time | 1.4 |
2021-06-23 | Šmolík, J. | Update money value fields description | 1.3 |
2021-06-21 | Šmolík, J. |
|
1.2 |
2021-06-14 | Šmolík, J. |
|
1.1 |
2021-06-09 | Šmolík, J. | Initial version | 1.0 |
Setup
Register your company through our support.
We are going to need
- Company name
- List of Phone numbers for SMS OTP authentication of people who'll you want to have access to the Partner CMS
- List of addresses for pickup points - where do we pickup your order for delivery
You will get in return
OAUTH_CLIENT_ID
- OAuth2 Client ID for authenticating with the Partner API. Keep it safe. Value may vary for each environment.OAUTH_CLIENT_SECRET
- OAuth2 Client Secret for authenticating with the Partner API. Keep it safe. Value may vary for each environment.API_URL
- Base URL for Partner API
Environments
Product offers multiple environments
- Sandbox - For you to test the integration. Limited functionality.
- Production - Connected to real end-users. Use with care.
Environment setting summary: | Value \ Env | Sandbox | Production |
---|---|---|---|
API_URL |
N/A | N/A | |
OAUTH_CLIENT_SECRET |
Contact Support | Contact Support | |
OAUTH_CLIENT_ID |
Contact Support | Contact Support |
API
Authentication
Authentication is based on OAuth2 standard, Client Credentials grant. Token endpoint /auth-sessions
, see examples below.
Client ID and Secret MUST be passed to you from BoxNow support in advance.
In order to use the API, you MUST attach the access token to Authorization header as a Bearer token.
Custom JWT claims
You can find additional user information in custom claims under namespace key https://boxnow.gr
. For example
Listing available destinations
You can skip this if you don't want to deliver your order to one of our APMs.
Use /destinations
to list available APM locations we can deliver the goods to. You will refer to these records by id
when requesting delivery later on.
Requesting a delivery
Create a delivery request to delivery your order to the client. Use /delivery-requests
endpoint for this operation.
Once a successful request delivery is made
- (optional) we send you an email notifying about successful delivery request creation, if you choose to receive this email
- you should fetch the PDF label for each of the parcel from
/parcels/{id}/label.pdf
, print it and stick it to the parcel/s - we send a courier to pick up the labeled parcel/s
- we notify the client via email that we have accepted the order from you and its being delivered by us
Modifying a delivery request
After a delivery request is successfully made, you can alter some parts of it later on. Use /delivery-requests/{id}
endpoint for these modifications.
Checking on the deliveries
You can list parcel related to your delivery requests via /parcels
endpoint.
Error codes
Description of codes for 400 Unprocessable entity
responses
P400
- Invalid request data. Make sure are sending the request according to this documentation.P401
- Invalid request origin location reference. Make sure you are referencing a valid location ID from Origins endpoint or valid address.P402
- Invalid request destination location reference. Make sure you are referencing a valid location ID from Destinations endpoint or valid address.P403
- You are not allowed to use AnyAPM-SameAPM delivery. Contact support if you believe this is a mistake.P404
- Invalid import CSV. See error contents for additional info.P405
- Invalid phone number. Make sure you are sending the phone number in full international format, e.g. +30 xx x xxx xxxx.P406
- Invalid compartment/parcel size. Make sure you are sending one of required sizes 1, 2 or 3. Size is required when sending from AnyAPM directly.P407
- Invalid country code. Make sure you are sending country code in ISO 3166-1 alpha-2 format, e.g. GR.P408
- Invalid amountToBeCollected amount. Make sure you are sending amount in the valid range of (0, 5000>P409
- Invalid delivery partner reference. Make sure you are referencing a valid delivery partner ID from Delivery partners endpoint.P410
- Order number conflict. You are trying to create a delivery request for order ID that has already been created. Choose another order id.P411
- You are not eligible to use Cash-on-delivery payment type. Use another payment type or contact our support.P412
- You are not allowed to create customer returns deliveries. Contact support if you believe this is a mistake.P413
- Invalid return location reference. Make sure you are referencing a valid location warehouse ID from Origins endpoint or valid address.P420
- Parcel not ready for cancel. You can cancel only new, undelivered, or parcels that are not returned or lost. Make sure parcel is in transit and try again.P430
- Parcel not ready for AnyAPM confirmation. Parcel is probably already confirmed or being delivered. Contact support if you believe this is a mistake.
Description of codes for 403 Forbidden
responses
X403
- Account disabled. Your account had been disabled, contact support.P414
- Unauthorized parcel access. You are trying to access information to parcel/s that don't belong to you. Make sure you are requesting information for parcels you have access to.
Description of codes for 503 Service Unavailable
responses
Code | Description |
---|---|
P600 |
Locker bridge communication failed. There has been some error when communicating with the locker bridge. Try again later or contact support. |
P610 |
Geolocation API failed. There has been some error when translating address to gps coordinates. Try again later or contact support. |
Installation & Usage
Requirements
PHP 7.4 and later. Should also work with PHP 8.0.
Composer
To install the bindings via Composer, add the following to composer.json
:
Then run composer install
Manual Installation
Download the files and include autoload.php
:
Getting Started
Please follow the installation procedure and then run the following:
API Endpoints
All URIs are relative to https://boxnow.gr/media/yaml/TBA
Class | Method | HTTP request | Description |
---|---|---|---|
AuthenticationApi | apiV1AuthSessionsPost | POST /api/v1/auth-sessions | Obtain authentication tokens |
DeliveryPartnersApi | apiV1DeliveryPartnersGet | GET /api/v1/delivery-partners | List of available delivery partners |
DeliveryRequestsApi | apiV1DeliveryRequestsOrderNumberPut | PUT /api/v1/delivery-requests/{orderNumber} | Update a created delivery request |
DeliveryRequestsApi | apiV1DeliveryRequestsPost | POST /api/v1/delivery-requests | Create a delivery request for your order |
DeliveryRequestsApi | apiV1DeliveryRequestscheckAddressDeliveryPost | POST /api/v1/delivery-requests:checkAddressDelivery | Check delivery for address is available |
DeliveryRequestsApi | apiV1DeliveryRequestscustomerReturnsPost | POST /api/v1/delivery-requests:customerReturns | Create a request delivery of parcel that customer would like to return |
DeliveryRequestsApi | apiV1DeliveryRequestsfromCsvPost | POST /api/v1/delivery-requests:fromCsv | Create delivery requests |
DeliveryRequestsApi | apiV1SimpleDeliveryRequestsPost | POST /api/v1/simple-delivery-requests | Create delivery request for order with minimal data |
LabelsApi | apiV1DeliveryRequestsOrderNumberLabelGet | GET /api/v1/delivery-requests/{orderNumber}/label | Get shipping label data of parcels order |
LabelsApi | apiV1DeliveryRequestsOrderNumberLabelTypeGet | GET /api/v1/delivery-requests/{orderNumber}/label.{type} | Get printable labels for all parcels in a delivery request. |
LabelsApi | apiV1LabelssearchPost | POST /api/v1/labels:search | Find labels as PDF |
LabelsApi | apiV1ParcelsIdLabelGet | GET /api/v1/parcels/{id}/label | Get shipping label data of parcel |
LabelsApi | apiV1ParcelsIdLabelTypeGet | GET /api/v1/parcels/{id}/label.{type} | Get printable label for parcel. |
LabelsApi | uiV1DeliveryRequestsOrderImportsNumberLabelPdfGet | GET /ui/v1/delivery-requests/{orderImportsNumber}/label.pdf | Get printable labels for all parcels in a delivery request. |
LocationsApi | apiV1DestinationsGet | GET /api/v1/destinations | List available destinations to deliver the order to |
LocationsApi | apiV1OriginsGet | GET /api/v1/origins | List available origins to pickup the order from |
ParcelsApi | apiV1ParcelsGet | GET /api/v1/parcels | List parcel info related to your delivery requests |
ParcelsApi | apiV1ParcelsIdcancelPost | POST /api/v1/parcels/{id}:cancel | Cancel parcel delivery |
ParcelsApi | apiV1ParcelsIdconfirmAnyapmDeliveryPost | POST /api/v1/parcels/{id}:confirm-anyapm-delivery | Confirm parcel has been delivered to AnyAPM |
ParcelsApi | uiV1ParcelsCsvGet | GET /ui/v1/parcels.csv | List parcels to csv file |
Models
- ApiV1AuthSessionsPost200Response
- ApiV1AuthSessionsPost400Response
- ApiV1AuthSessionsPost403Response
- ApiV1AuthSessionsPostRequest
- ApiV1DeliveryPartnersGet200Response
- ApiV1DeliveryPartnersGet200ResponseDataInner
- ApiV1DeliveryRequestsCheckAddressDeliveryPost200Response
- ApiV1DeliveryRequestsCheckAddressDeliveryPost200ResponseAllOf
- ApiV1DeliveryRequestsCheckAddressDeliveryPost400Response
- ApiV1DeliveryRequestsCheckAddressDeliveryPostRequest
- ApiV1DeliveryRequestsCustomerReturnsPost200Response
- ApiV1DeliveryRequestsCustomerReturnsPost400Response
- ApiV1DeliveryRequestsCustomerReturnsPostRequest
- ApiV1DeliveryRequestsCustomerReturnsPostRequestDestination
- ApiV1DeliveryRequestsCustomerReturnsPostRequestParcelsInner
- ApiV1DeliveryRequestsFromCsvPost200ResponseInner
- ApiV1DeliveryRequestsFromCsvPost200ResponseInnerDestination
- ApiV1DeliveryRequestsFromCsvPost200ResponseInnerParcelsInner
- ApiV1DeliveryRequestsFromCsvPost400Response
- ApiV1DeliveryRequestsOrderNumberLabelGet200Response
- ApiV1DeliveryRequestsOrderNumberPut200Response
- ApiV1DeliveryRequestsOrderNumberPutRequest
- ApiV1DeliveryRequestsPost200Response
- ApiV1DeliveryRequestsPost200ResponseParcelsInner
- ApiV1DeliveryRequestsPost400Response
- ApiV1DeliveryRequestsPost403Response
- ApiV1DestinationsGet200Response
- ApiV1LabelsSearchPost400Response
- ApiV1LabelsSearchPost403Response
- ApiV1LabelsSearchPostRequest
- ApiV1OriginsGet200Response
- ApiV1ParcelsGet200Response
- ApiV1ParcelsGet200ResponseDataInner
- ApiV1ParcelsGet200ResponsePagination
- ApiV1ParcelsIdConfirmAnyapmDeliveryPost400Response
- ApiV1ParcelsIdConfirmAnyapmDeliveryPost503Response
- ApiV1ParcelsIdLabelGet200Response
- ApiV1SimpleDeliveryRequestsPost200Response
- ApiV1SimpleDeliveryRequestsPost200ResponseParcelsInner
- ApiV1SimpleDeliveryRequestsPost400Response
- ApiV1SimpleDeliveryRequestsPost503Response
- ApiV1SimpleDeliveryRequestsPostRequest
- ApiV1SimpleDeliveryRequestsPostRequestDestination
- ApiV1SimpleDeliveryRequestsPostRequestDestinationAllOf
- ApiV1SimpleDeliveryRequestsPostRequestDestinationAllOf1
- ApiV1SimpleDeliveryRequestsPostRequestDestinationAllOf1OneOf
- ApiV1SimpleDeliveryRequestsPostRequestDestinationAllOf1OneOf1
- ApiV1SimpleDeliveryRequestsPostRequestOrigin
- ApiV1SimpleDeliveryRequestsPostRequestParcelsInner
- ApmDelivery
- DeliveryDeliveryPartnerInformation
- DeliveryLocationAddress
- DeliveryPartner
- DeliveryPartnerDelivery
- DeliveryPayment
- DeliveryRequest
- DeliveryRequestDestination
- DeliveryRequestDestinationAllOf
- DeliveryRequestDestinationAllOf1
- DeliveryRequestDestinationAllOf1AnyOf
- DeliveryRequestDestinationAllOf1AnyOfAllOf
- DeliveryRequestItemsInner
- DeliveryRequestOrigin
- DeliveryRequestOriginAllOf
- DeliveryRequestOriginAllOf1
- DeliveryRequestOriginAllOf1AnyOf
- DeliveryRequestOriginAllOf1AnyOf1
- DeliveryRequestOriginAllOf1AnyOfAllOf
- DeliveryRequestOverwriteSenderShippingLabelInfo
- DeliveryRequestReturnLocation
- DeliveryRequestReturnLocationAnyOf
- DeliveryRequestV2
- DeliveryRequestV2Destination
- DeliveryRequestV2DestinationAllOf
- DeliveryRequestV2DestinationAllOfAnyOf
- DeliveryRequestV2DestinationAllOfAnyOfAllOf
- DeliveryRequestV2Origin
- DeliveryRequestV2OriginAllOf
- DeliveryRequestV2OriginAllOfAnyOf
- DeliveryRequestV2OriginAllOfAnyOfAllOf
- DeliveryRequestV2ParcelsInner
- Destination
- DestinationAllOf
- EP400
- EP401
- EP402
- EP403
- EP404
- EP405
- EP406
- EP407
- EP408
- EP409
- EP410
- EP411
- EP412
- EP413
- EP414
- EP420
- EP430
- EP600
- EP610
- EX403
- EventsInner
- LabelType
- LabelsInner
- Location
- LocationAddress
- LocationAllOf
- LocationType
- Money
- ParcelLabelData
- ParcelLabelDataDelivery
- ParcelLabelDataParcel
- ParcelLabelDataPayment
- ParcelLabelDataRecipient
- ParcelLabelDataRecipientAllOf
- ParcelLabelDataSender
- ParcelLabelDataSenderAllOf
- ParcelState
- PaymentCOD
- PaymentMode
- PaymentPrepaid
- PaymentState
- PickupDeliveryPartnerInformation
- RecipientEshopOrP2P
- RecipientReturns
- SenderEshop
- SenderP2P
- SenderReturns
Authorization
Authentication schemes defined for the API:
bearer
- Type: Bearer authentication (JWT)
Tests
To run the tests, use:
Author
About this package
This PHP package is automatically generated by the OpenAPI Generator project:
- API version:
1.40
- Build package:
org.openapitools.codegen.languages.PhpClientCodegen
All versions of boxnow-api with dependencies
ext-curl Version *
ext-json Version *
ext-mbstring Version *
guzzlehttp/guzzle Version ^7.3
guzzlehttp/psr7 Version ^1.7 || ^2.0