This API documentation describes the individual integration options with the Neoship
Production API: https://apiserver.neoship.sk/api
Test API: https://apiserver.nshptest.sk/api
Login to Neoship to obtain a token
| username | string non-empty Name of user for log into application (usually email) |
| password | string non-empty The user password used for login |
{- "username": "username@login.com",
- "password": "AC123456"
}{- "token": "eyjiioajsiodj...",
- "refresh_token": "23165c5..."
}Refresh JWT token after expriation
| refresh_token | string non-empty Refresh token returned in succesfull login action |
{- "refresh_token": "85fc4162fa3195bfa662b9bd759b3dae2e3a..."
}{- "token": "eyjiioajsiodj...",
- "refresh_token": "23165c5..."
}Create new package
| shipper_id required | integer The id of shipper: |
Echo payload
| reference_number | string non-empty Reference number of package |
| sender_name | string non-empty Full name of the sender |
| sender_company | string Company of the sender |
| sender_street | string non-empty Street of the sender (house number can be INCLUDED depends on situation) |
| sender_house_number | string House number of the sender |
| sender_city | string non-empty City of the sender |
| sender_zip | string non-empty Postal code of the sender |
| sender_state_code | string non-empty State code of the sender |
| sender_email | string non-empty Email of the sender |
| sender_phone | string non-empty Phone of the sender |
| receiver_name | string non-empty Full name of the receiver |
| receiver_company | string Company of the receiver |
| receiver_street | string non-empty Street of the receiver (house number can be INCLUDED depends of situation) |
| receiver_house_number | string House number of the receiver |
| receiver_city | string non-empty City of the receiver |
| receiver_zip | string non-empty Postal code of the receiver |
| receiver_state_code | string non-empty State code of the receiver |
| receiver_email | string non-empty Email of the receiver |
| receiver_phone | string non-empty Phone of the receiver |
| cod_price | number Amount of cash on delivery (In the currency of the destination country) |
| cod_currency_code | string Currency of cash on delivery |
| cod_reference | string Reference of cash on delivery (REQUIRED in DPD if defined, optional in GLS) |
| insurance | number Amount of insurance (EUR) |
| reverse | boolean non-empty Reverse shipment |
| parcelshop | string ID of parcelshop (Required for parcelshop package) |
| count_of_packages | number The number of packages to be created. |
| weight | number Weight of package in kilograms (for Packeta and DPD only). |
| carrier_type | number ID of carrier type for address delivery (for Packeta only). |
{- "reference_number": "AC123456",
- "sender_name": "John Doe",
- "sender_company": "John Doe",
- "sender_street": "Charles street",
- "sender_house_number": "3852/9",
- "sender_city": "Bratislava",
- "sender_zip": 81101,
- "sender_state_code": "SK",
- "sender_email": "test@neoship.sk",
- "sender_phone": 900123456,
- "receiver_name": "John Doe",
- "receiver_company": "John Doe",
- "receiver_street": "Charles street",
- "receiver_house_number": "3852/9",
- "receiver_city": "Bratislava",
- "receiver_zip": 81101,
- "receiver_state_code": "SK",
- "receiver_email": "test@neoship.sk",
- "receiver_phone": 900123456,
- "cod_price": 55.25,
- "cod_currency_code": "EUR",
- "cod_reference": 984686,
- "insurance": 230.2,
- "reverse": false,
- "parcelshop": "PS-BBMK0269",
- "count_of_packages": 2,
- "weight": 1,
- "carrier_type": 131
}{- "id": 42,
- "reference_number": "AC123456"
}Bulk action to create new packages. Packages are created only if all values are valid. If one package is invalid no one package is created
| shipper_id required | integer The id of shipper: |
Echo payload
| reference_number | string non-empty Reference number of package |
| sender_name | string non-empty Full name of the sender |
| sender_company | string Company of the sender |
| sender_street | string non-empty Street of the sender (house number can be INCLUDED depends on situation) |
| sender_house_number | string House number of the sender |
| sender_city | string non-empty City of the sender |
| sender_zip | string non-empty Postal code of the sender |
| sender_state_code | string non-empty State code of the sender |
| sender_email | string non-empty Email of the sender |
| sender_phone | string non-empty Phone of the sender |
| receiver_name | string non-empty Full name of the receiver |
| receiver_company | string Company of the receiver |
| receiver_street | string non-empty Street of the receiver (house number can be INCLUDED depends of situation) |
| receiver_house_number | string House number of the receiver |
| receiver_city | string non-empty City of the receiver |
| receiver_zip | string non-empty Postal code of the receiver |
| receiver_state_code | string non-empty State code of the receiver |
| receiver_email | string non-empty Email of the receiver |
| receiver_phone | string non-empty Phone of the receiver |
| cod_price | number Amount of cash on delivery (In the currency of the destination country) |
| cod_currency_code | string Currency of cash on delivery |
| cod_reference | string Reference of cash on delivery (REQUIRED in DPD if defined, optional in GLS) |
| insurance | number Amount of insurance (EUR) |
| reverse | boolean non-empty Reverse shipment |
| parcelshop | string ID of parcelshop (Required for parcelshop package) |
| count_of_packages | number The number of packages to be created. |
| weight | number Weight of package in kilograms (for Packeta and DPD only). |
| carrier_type | number ID of carrier type for address delivery (for Packeta only). |
[- {
- "reference_number": "AC123456",
- "sender_name": "John Doe",
- "sender_company": "John Doe",
- "sender_street": "Charles street",
- "sender_house_number": "3852/9",
- "sender_city": "Bratislava",
- "sender_zip": 81101,
- "sender_state_code": "SK",
- "sender_email": "test@neoship.sk",
- "sender_phone": 900123456,
- "receiver_name": "John Doe",
- "receiver_company": "John Doe",
- "receiver_street": "Charles street",
- "receiver_house_number": "3852/9",
- "receiver_city": "Bratislava",
- "receiver_zip": 81101,
- "receiver_state_code": "SK",
- "receiver_email": "test@neoship.sk",
- "receiver_phone": 900123456,
- "cod_price": 55.25,
- "cod_currency_code": "EUR",
- "cod_reference": 984686,
- "insurance": 230.2,
- "reverse": false,
- "parcelshop": "PS-BBMK0269",
- "count_of_packages": 2,
- "weight": 1,
- "carrier_type": 131
}
][- {
- "id": 42,
- "reference_number": "AC123456"
}
]Combined endpoint that creates packages and immediately prints stickers in a single call. The label PDF is saved to storage (accessible via GET /package/{id}/label) and is not returned in the response.
This endpoint combines the functionality of POST /package/bulk/{shipper_id} (package creation) and POST /package/bulk/ with action=send_print_sticker (sticker printing) into one atomic operation.
| shipper_id required | integer The id of shipper: |
Packages to create with printing options
required | Array of objects (Package_new) Array of packages to create and print |
object Sticker printing options |
{- "packages": [
- {
- "reference_number": "AC123456",
- "sender_name": "John Doe",
- "sender_company": "ACME s.r.o.",
- "sender_street": "Prievozská",
- "sender_house_number": "14",
- "sender_city": "Bratislava",
- "sender_zip": "82109",
- "sender_state_code": "SK",
- "sender_email": "sender@example.sk",
- "sender_phone": "0905123456",
- "receiver_name": "Jane Smith",
- "receiver_company": "",
- "receiver_street": "Hlavná",
- "receiver_house_number": "28/A",
- "receiver_city": "Košice",
- "receiver_zip": "04001",
- "receiver_state_code": "SK",
- "receiver_email": "receiver@example.sk",
- "receiver_phone": "0911234567",
- "cod_price": 89.9,
- "cod_currency_code": "EUR",
- "cod_reference": "COD-001",
- "insurance": 350,
- "reverse": false,
- "count_of_packages": 1,
- "weight": 2.5
}
], - "options": {
- "sticker_position": "1",
- "print_type": "A4_2x2"
}
}[- {
- "id": 42,
- "reference_number": "AC123456",
- "tracking_number": "TX87VKD5000002BL3Y"
}
]Info package
| package_id required | string Id of package |
{- "id": 42,
- "reference_number": "AC123456",
- "sender_name": "John Doe",
- "sender_company": "John Doe",
- "sender_street": "Charles street",
- "sender_house_number": "3852/9",
- "sender_city": "Bratislava",
- "sender_zip": 81101,
- "sender_state_code": "SK",
- "sender_email": "test@neoship.sk",
- "sender_phone": 900123456,
- "receiver_name": "John Doe",
- "receiver_company": "John Doe",
- "receiver_street": "Charles street",
- "receiver_house_number": "3852/9",
- "receiver_city": "Bratislava",
- "receiver_zip": 81101,
- "receiver_state_code": "SK",
- "receiver_email": "test@neoship.sk",
- "receiver_phone": 900123456,
- "cod_price": 55.25,
- "cod_currency_code": "EUR",
- "cod_reference": 984686,
- "insurance": 230.2,
- "reverse": false,
- "parcelshop": "PS-BBMK0269",
- "weight": 3.8,
- "tracking_number": "Z123654987",
- "cod_payment": 1,
- "shipper": {
- "id": 2,
- "name": "Slovak Parcel Service",
- "shortcut": "SPS"
}, - "statuses": [
- {
- "status_type": {
- "id": 251,
- "name": "Exportovaná"
}
}
], - "is_service": false,
- "price_vat": 4.59,
- "invoice_number": 4110075779,
- "invoice_date": "2021-08-04"
}Edit package which has not been exported
| package_id required | string Id of package |
Echo payload
| reference_number | string non-empty Reference number of package |
| sender_name | string non-empty Full name of the sender |
| sender_company | string Company of the sender |
| sender_street | string non-empty Street of the sender |
| sender_house_number | string House number of the sender |
| sender_city | string non-empty City of the sender |
| sender_zip | string non-empty Postal code of the sender |
| sender_state_code | string non-empty State code of the sender |
| sender_email | string non-empty Email of the sender |
| sender_phone | string non-empty Phone of the sender |
| receiver_name | string non-empty Full name of the receiver |
| receiver_company | string Company of the receiver |
| receiver_street | string non-empty Street of the receiver |
| receiver_house_number | string House number of the receiver |
| receiver_city | string non-empty City of the receiver |
| receiver_zip | string non-empty Postal code of the receiver |
| receiver_state_code | string non-empty State code of the receiver |
| receiver_email | string non-empty Email of the receiver |
| receiver_phone | string non-empty Phone of the receiver |
| cod_price | number Amount of cash on delivery (In the currency of the destination country) |
| cod_currency_code | string Currency of cash on delivery |
| cod_reference | string Reference of cash on delivery (REQUIRED in DPD if defined, optional in GLS) |
| insurance | number Amount of insurance (EUR) |
| reverse | boolean non-empty Reverse shipment |
| parcelshop | string ID of parcelshop (Required for parcelshop package) |
| count_of_packages | number The number of packages to be created. |
| weight | number Weight of package in kilograms (for Packeta and DPD only). |
| carrier_type | number ID of carrier type for address delivery (for Packeta only). |
{- "reference_number": "AC123456",
- "sender_name": "John Doe",
- "sender_company": "John Doe",
- "sender_street": "Charles street",
- "sender_house_number": "3852/9",
- "sender_city": "Bratislava",
- "sender_zip": 81101,
- "sender_state_code": "SK",
- "sender_email": "test@neoship.sk",
- "sender_phone": 900123456,
- "receiver_name": "John Doe",
- "receiver_company": "John Doe",
- "receiver_street": "Charles street",
- "receiver_house_number": "3852/9",
- "receiver_city": "Bratislava",
- "receiver_zip": 81101,
- "receiver_state_code": "SK",
- "receiver_email": "test@neoship.sk",
- "receiver_phone": 900123456,
- "cod_price": 55.25,
- "cod_currency_code": "EUR",
- "cod_reference": 984686,
- "insurance": 230.2,
- "reverse": false,
- "parcelshop": "PS-BBMK0269",
- "count_of_packages": 2,
- "weight": 1,
- "carrier_type": 131
}{- "cod_price": [
- "Cannot be blank"
], - "sender_zip": [
- "Not valid postal code"
], - "...": [ ]
}Downloads the label PDF for a package that has been exported (sticker printed). The label must have been previously generated via POST /package/bulk/ with action=send_print_sticker or via POST /package/bulk-create-and-print/{shipper_id}.
| package_id required | integer Example: 42 Id of the package |
{- "error": "Label not found"
}Cancel package. Cancels the shipment at the shipper and marks the package as cancelled. Reference number is prefixed with X. Only packages in shipping (not yet exported) or service packages can be cancelled.
| package_id required | integer Example: 42 Id of package |
| source | string Request source (e.g. WEB, API) |
{- "source": "API"
}{- "error": "string",
- "shipper": "string",
- "requestId": "string"
}List of packages
| page | integer The number of page |
| rows_per_page | integer The numbers of items to return |
| reference_number | string Packages with the specified reference number |
| tracking_number | string Packages with the specified tracking number |
{- "rows": [
- {
- "id": 42,
- "reference_number": "AC123456",
- "sender_name": "John Doe",
- "sender_company": "John Doe",
- "sender_street": "Charles street",
- "sender_house_number": "3852/9",
- "sender_city": "Bratislava",
- "sender_zip": 81101,
- "sender_state_code": "SK",
- "sender_email": "test@neoship.sk",
- "sender_phone": 900123456,
- "receiver_name": "John Doe",
- "receiver_company": "John Doe",
- "receiver_street": "Charles street",
- "receiver_house_number": "3852/9",
- "receiver_city": "Bratislava",
- "receiver_zip": 81101,
- "receiver_state_code": "SK",
- "receiver_email": "test@neoship.sk",
- "receiver_phone": 900123456,
- "cod_price": 55.25,
- "cod_currency_code": "EUR",
- "cod_reference": 984686,
- "insurance": 230.2,
- "reverse": false,
- "parcelshop": "PS-BBMK0269",
- "weight": 3.8,
- "tracking_number": "Z123654987",
- "cod_payment": 1,
- "shipper": {
- "id": 2,
- "name": "Slovak Parcel Service",
- "shortcut": "SPS"
}, - "statuses": [
- {
- "status_type": {
- "id": 251,
- "name": "Exportovaná"
}
}
], - "is_service": false
}
], - "count": 22
}List of packages by the list of reference numbers. If the list of reference numbers contains invalid reference numbers, the packages corresponding to invalid reference numbers are not included in response content.
Echo payload
| reference_numbers | Array of arrays List of reference numbers. |
{- "reference_numbers": [
- "AB123456",
- "BC987654",
- "..."
]
}[- {
- "id": 42,
- "reference_number": "AC123456",
- "sender_name": "John Doe",
- "sender_company": "John Doe",
- "sender_street": "Charles street",
- "sender_house_number": "3852/9",
- "sender_city": "Bratislava",
- "sender_zip": 81101,
- "sender_state_code": "SK",
- "sender_email": "test@neoship.sk",
- "sender_phone": 900123456,
- "receiver_name": "John Doe",
- "receiver_company": "John Doe",
- "receiver_street": "Charles street",
- "receiver_house_number": "3852/9",
- "receiver_city": "Bratislava",
- "receiver_zip": 81101,
- "receiver_state_code": "SK",
- "receiver_email": "test@neoship.sk",
- "receiver_phone": 900123456,
- "cod_price": 55.25,
- "cod_currency_code": "EUR",
- "cod_reference": 984686,
- "insurance": 230.2,
- "reverse": false,
- "parcelshop": "PS-BBMK0269",
- "weight": 3.8,
- "tracking_number": "Z123654987",
- "cod_payment": 1,
- "shipper": {
- "id": 2,
- "name": "Slovak Parcel Service",
- "shortcut": "SPS"
}, - "statuses": [
- {
- "status_type": {
- "id": 251,
- "name": "Exportovaná"
}
}
], - "is_service": false
}
]Bulk action for getting stickers or acceptance protocol.
Echo payload
| action | string non-empty
|
GLS (string) or SPS (string) or Packeta (string) or Packeta HD (string) or DPD (string) or Slovenská pošta (string) or SDS (string) Type of format sticker to print | |
| sticker_position | number or null Enum: 1 2 3 4 Sticker position if shipper support this option |
| reference_numbers | Array of arrays non-empty Array of packages reference numbers to print |
{- "action": "send_print_sticker",
- "print_type": "A4_2x2",
- "sticker_position": 1,
- "reference_numbers": [
- "ASD1354"
]
}{- "labels": "JVBERi0xLjUKJfLz9PX2CjEgMCBvYmoKPD...",
- "errors": [
- {
- "reference_number": "AC123456",
- "package_id": 42,
- "shipper_id": 1,
- "errors": [
- "Cod not allowed for 'Client Id'",
- "..."
]
}
], - "tracking": {
- "<package_id>": {
- "reference_number": "ASD1354",
- "tracking_number": "Z1234567890"
}
}
}Calculate available package shipping quotes for the authenticated user.
Quote calculation payload
| sender_state_code required | string State code of the sender. |
| receiver_state_code required | string State code of the receiver. |
| weight required | number >= 0 Package weight in kilograms. |
| cod_price | number >= 0 Default: 0 Amount of cash on delivery. |
| cod_currency_code | string Default: "EUR" Currency of cash on delivery. |
| payment_type | integer Default: 0 Enum: 0 1 Cash on delivery payment type. |
| insurance | number >= 0 Default: 0 Insurance amount. |
| parcelshop | boolean Default: false Whether to calculate parcelshop delivery quotes. |
| reverse | boolean Default: false Whether to calculate reverse shipment quotes. |
Array of integers or string Optional shipper IDs to limit quote calculation. Can be sent as an array or comma-separated string. |
{- "sender_state_code": "SK",
- "receiver_state_code": "CZ",
- "weight": 1.5,
- "cod_price": 55.25,
- "cod_currency_code": "EUR",
- "payment_type": 0,
- "insurance": 230.2,
- "parcelshop": false,
- "reverse": false,
- "shipper_ids": [
- 1,
- 3,
- 5
]
}{- "quotes": [
- {
- "carrier": {
- "shipper_id": "3",
- "shipper_shortcut": "Packeta",
- "shipper_name": "Packeta",
- "carrier_type": 131,
- "carrier_name": "Packeta Home HD"
}, - "price": {
- "currency": "EUR",
- "amount_without_vat": "4.20",
- "amount_with_vat": "5.17",
- "vat_rate": "0.23"
}, - "breakdown": [
- {
- "code": "shipping",
- "label": "Základná cena dopravy",
- "amount_without_vat": "3.50",
- "amount_with_vat": "4.31"
}
], - "purchase": {
- "price": {
- "currency": "EUR",
- "amount_without_vat": "4.20",
- "amount_with_vat": "5.17",
- "vat_rate": "0.23"
}, - "breakdown": [
- {
- "code": "shipping",
- "label": "Základná cena dopravy",
- "amount_without_vat": "3.50",
- "amount_with_vat": "4.31"
}
]
}, - "purchase_error": {
- "code": "missing_shipping_price",
- "message": "Chýba cena dopravy",
- "carrier": {
- "shipper_id": "3",
- "shipper_shortcut": "Packeta",
- "shipper_name": "Packeta",
- "carrier_type": 131,
- "carrier_name": "Packeta Home HD"
}
}
}
], - "errors": [
- {
- "code": "missing_shipping_price",
- "message": "Chýba cena dopravy",
- "carrier": {
- "shipper_id": "3",
- "shipper_shortcut": "Packeta",
- "shipper_name": "Packeta",
- "carrier_type": 131,
- "carrier_name": "Packeta Home HD"
}
}
]
}Calculate available package shipping quotes for a selected user. The response includes purchase prices when available.
| user_id required | integer User ID for quote calculation |
Quote calculation payload
| sender_state_code required | string State code of the sender. |
| receiver_state_code required | string State code of the receiver. |
| weight required | number >= 0 Package weight in kilograms. |
| cod_price | number >= 0 Default: 0 Amount of cash on delivery. |
| cod_currency_code | string Default: "EUR" Currency of cash on delivery. |
| payment_type | integer Default: 0 Enum: 0 1 Cash on delivery payment type. |
| insurance | number >= 0 Default: 0 Insurance amount. |
| parcelshop | boolean Default: false Whether to calculate parcelshop delivery quotes. |
| reverse | boolean Default: false Whether to calculate reverse shipment quotes. |
Array of integers or string Optional shipper IDs to limit quote calculation. Can be sent as an array or comma-separated string. |
{- "sender_state_code": "SK",
- "receiver_state_code": "CZ",
- "weight": 1.5,
- "cod_price": 55.25,
- "cod_currency_code": "EUR",
- "payment_type": 0,
- "insurance": 230.2,
- "parcelshop": false,
- "reverse": false,
- "shipper_ids": [
- 1,
- 3,
- 5
]
}{- "quotes": [
- {
- "carrier": {
- "shipper_id": "3",
- "shipper_shortcut": "Packeta",
- "shipper_name": "Packeta",
- "carrier_type": 131,
- "carrier_name": "Packeta Home HD"
}, - "price": {
- "currency": "EUR",
- "amount_without_vat": "4.20",
- "amount_with_vat": "5.17",
- "vat_rate": "0.23"
}, - "breakdown": [
- {
- "code": "shipping",
- "label": "Základná cena dopravy",
- "amount_without_vat": "3.50",
- "amount_with_vat": "4.31"
}
], - "purchase": {
- "price": {
- "currency": "EUR",
- "amount_without_vat": "4.20",
- "amount_with_vat": "5.17",
- "vat_rate": "0.23"
}, - "breakdown": [
- {
- "code": "shipping",
- "label": "Základná cena dopravy",
- "amount_without_vat": "3.50",
- "amount_with_vat": "4.31"
}
]
}, - "purchase_error": {
- "code": "missing_shipping_price",
- "message": "Chýba cena dopravy",
- "carrier": {
- "shipper_id": "3",
- "shipper_shortcut": "Packeta",
- "shipper_name": "Packeta",
- "carrier_type": 131,
- "carrier_name": "Packeta Home HD"
}
}
}
], - "errors": [
- {
- "code": "missing_shipping_price",
- "message": "Chýba cena dopravy",
- "carrier": {
- "shipper_id": "3",
- "shipper_shortcut": "Packeta",
- "shipper_name": "Packeta",
- "carrier_type": 131,
- "carrier_name": "Packeta Home HD"
}
}
]
}{- "id": 4,
- "username": "AC123456",
- "roles": [ ],
- "credit": 1234.95,
- "variable_number": 2236345,
- "address": {
- "name": "John Doe",
- "company": "John Doe",
- "street": "Charles street",
- "city": "Bratislava",
- "zip": 81101,
- "email": "test@neoship.sk",
- "phone": 900123456,
- "tin": 534353,
- "oin": 448164,
- "vatin": 146846
}, - "invoice_address": {
- "name": "John Doe",
- "company": "John Doe",
- "street": "Charles street",
- "city": "Bratislava",
- "zip": 81101,
- "email": "test@neoship.sk",
- "phone": 900123456,
- "tin": 534353,
- "oin": 448164,
- "vatin": 146846
}
}List of parcelshop
| shipper_id required | integer The id of shipper: |
[- {
- "id": 42,
- "parcelshop_id": "AC123456",
- "name": "Tesco Galanta (TABAK PRESS)",
- "street": "Galanta street",
- "city": "Galanta",
- "zip": 81101,
- "state_code": "SK",
- "shipper": "GLS",
- "shipper_id": 2
}
]Detail of parcelshop
| id required | integer Id of parcelshop |
{- "id": 42,
- "parcelshop_id": "AC123456",
- "name": "Tesco Galanta (TABAK PRESS)",
- "street": "Galanta street",
- "city": "Galanta",
- "zip": 81101,
- "state_code": "SK",
- "shipper": "GLS",
- "shipper_id": 2
}Tracking of packages by tracking number. This is usefull, if you want to show the information in your app.
| tracking_number required | string Tracking number of package |
{- "logo": "https:storage.cloud.com/app/logo.png",
- "weight": 2,
- "sender": "SK 02901 Martin",
- "receiver": "SK 03601 Martin",
- "reference_number": 2236345,
- "statuses": {
- "created_at": "2021-09-09",
- "center": "SPS Hub",
- "name": "Doruceny"
}
}Tracking of packages by reference number and user id. This tracking is returning the page with the styles, not needed parsing response or anything else.
| user_id required | number Id of user |
| reference_number required | string Reference number of package |
The parcelshop picker is an embeddable map UI for selecting a delivery point. It is intended for checkout or shipment forms where the customer chooses a parcelshop.
For usage on your own domain, create a parcelshop picker API key in Neoship and store the exact parent page origin
for that key, for example https://eshop.example. One key can have multiple allowed origins in Neoship.
Use https://aplikacia.neoship.sk for production and https://t-we-nshp-webapp-01-app.azurewebsites.net for testing.
Load the versioned JavaScript library on your page:
<script src="https://aplikacia.neoship.sk/parcelshop-picker/v1/library.js"></script>
Open the picker:
<button type="button" id="open-picker">Choose parcelshop</button>
<script>
const apiKey = "XXXXXXXXXXXXX";
document.getElementById("open-picker").addEventListener("click", () => {
window.NeoshipParcelshopPicker.pick(apiKey, (parcelshop) => {
if (parcelshop === null) {
// Picker was closed without selection.
return;
}
// Save parcelshop.parcelshopId into your order/package parcelshop field.
console.log(parcelshop);
});
});
</script>
pick() opens the picker in a full-screen iframe dialog, validates messages from the iframe origin,
dispatches the neoship:parcelshop-picker:selected browser event, and closes the previous picker before opening a new one.
The selected parcelshop payload has this shape:
{
"shipperId": "3",
"parcelshopId": "12345",
"name": "Parcelshop name",
"street": "Main street 1",
"zip": "81101",
"city": "Bratislava",
"stateCode": "SK",
"lat": 48.1486,
"lng": 17.1077,
"openingHours": null,
"boxType": null,
"occupancyStatus": null
}
Use parcelshopId as the parcelshop value when creating a parcelshop package.
window.NeoshipParcelshopPicker.pick(apiKey, callback, options);
window.NeoshipParcelshopPicker.close();
You can also use object-style arguments:
window.NeoshipParcelshopPicker.pick({
apiKey: "XXXXXXXXXXXXX",
selectedShipper: "GLS",
availableShippers: ["GLS", "Packeta"],
countries: ["SK", "CZ"],
language: "sk-SK",
autoZoomToUser: true,
onSelect: (parcelshop) => {},
onClose: () => {},
});
The callback receives the selected parcelshop payload. If the picker is closed without selection, the callback receives null.
close() closes the currently open picker, which is useful for single-page applications and host-page modal cleanup.
These options can be passed in the options object, or in the object-style pick({...}) call.
| Option | Description |
|---|---|
apiKey |
API key assigned to your Neoship account for this picker origin. Required when embedding the picker from an external origin. |
theme |
Visual theme. Allowed values are light and dark. When omitted, the library uses the host document data-theme or browser dark-mode preference. |
selectedShipper |
Initially selected shipper shortcut. If no shipper subset is provided, this also limits the picker to this shipper. |
availableShippers |
Array or comma-separated list of shipper shortcuts available in the picker. When omitted, all available parcelshop shippers are shown. |
countries |
Array or comma-separated list of ISO 3166-1 alpha-2 country codes used to limit parcelshops and location suggestions, for example ["SK", "CZ"]. |
language |
Preferred picker UI language and location suggestion language, for example sk-SK. Regional tags fall back to the supported base UI language, for example en-US renders the UI in English. |
autoZoomToUser |
Enables browser geolocation and automatic zoom to the customer's current position. Defaults to true in the JavaScript library. |
closeOnBackdrop |
Set to false to keep the picker open when the overlay backdrop is clicked. |
title |
Iframe/dialog title. |
zIndex, backdrop, padding |
Visual options for the full-screen dialog. |
onSelect, onClose, onReady, onError |
Lifecycle callbacks. |
When the library is loaded from https://aplikacia.neoship.sk/parcelshop-picker/v1/library.js,
the default picker iframe opens https://aplikacia.neoship.sk/neoship/parcelshop-picker/ even when the script
is embedded on another domain. You can override this only with url or pickerUrl in advanced integrations.
The JavaScript library is recommended. If you need to render the iframe manually, use the picker page directly
and handle window.postMessage yourself:
<iframe
src="https://aplikacia.neoship.sk/neoship/parcelshop-picker/?apiKey=XXXXXXXXXXXXX&selected_shipper=GLS&available_shippers=GLS,Packeta&countries=SK,CZ&language=sk-SK"
title="Výber parcelshopu"
allow="geolocation"
style="width: 100%; height: 700px; border: 0;"
></iframe>
const pickerOrigin = "https://aplikacia.neoship.sk";
window.addEventListener("message", (event) => {
if (event.origin !== pickerOrigin) {
return;
}
const message = event.data || {};
if (message.type === "neoship:parcelshop-picker:selected") {
const parcelshop = message.detail;
// Save parcelshop.parcelshopId into your order/package parcelshop field.
}
if (message.type === "neoship:parcelshop-picker:close") {
// Close your modal or hide the iframe.
}
});
The iframe sends these message types to the parent window:
neoship:parcelshop-picker:ready - picker loaded and initializedneoship:parcelshop-picker:selected - user selected a parcelshopneoship:parcelshop-picker:error - picker initialization or data loading failedneoship:parcelshop-picker:close - user clicked close or pressed Escape| apiKey | string Default: null Example: apiKey=XXXXXXXXXXXXX API key assigned to your Neoship account for this picker origin. Required when embedding the picker from an external origin. Default is no API key, which only allows same-origin Neoship usage. |
| theme | string Default: "light" Enum: "light" "dark" Example: theme=light Visual theme for the picker iframe. |
| selected_shipper | string or null Default: null Example: selected_shipper=GLS Initially selected shipper shortcut. If |
| available_shippers | Array of strings Default: "" Example: available_shippers=GLS,Packeta Comma-separated list of shipper shortcuts available in the picker. Default is empty, which means all available parcelshop shippers are shown. |
| countries | Array of strings[ items = 2 characters ] Default: "" Example: countries=SK,CZ Comma-separated list of ISO 3166-1 alpha-2 country codes used to limit parcelshops and location suggestions. Default is empty, which means no country filter. |
| language | string or null Default: null Example: language=sk-SK Preferred picker UI language and location suggestion language. Regional tags fall back to the supported base UI language, for example |
| auto_zoom_to_user | boolean Default: false Example: auto_zoom_to_user=true Enables browser geolocation and automatic zoom to the customer's current position when allowed by the browser. |