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 iframe UI for selecting a parcelshop from a map and list. It is intended for checkout or shipment forms where the customer chooses a delivery point.
The picker is not a JSON API endpoint. Render it in an iframe or open it with your own modal, then listen for window.postMessage events from the iframe.
Use https://app.neoship.sk for production and https://app.nshptest.sk for testing.
<iframe
src="https://app.neoship.sk/neoship/parcelshop-picker/?apiKey=XXXXXXXXXXXXX"
title="Výber parcelshopu"
allow="geolocation"
style="width: 100%; height: 700px; border: 0;"
></iframe>
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.
External iframe usage sends apiKey; Neoship uses the stored origins to decide where the iframe may be embedded.
If apiKey is omitted, the picker is only intended for Neoship's own origin.
const pickerOrigin = "https://app.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 EscapeThe neoship:parcelshop-picker:selected message contains the selected parcelshop in event.data.detail:
{
"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.
| apiKey | string Default: null Example: apiKey=XXXXXXXXXXXXX API key assigned to your Neoship account for this iframe 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. Default is |
| selected_shipper_id | integer or null Default: null Example: selected_shipper_id=1 Initially selected shipper. If |
| available_shipper_ids | string Default: "" Example: available_shipper_ids=1,3,5 Comma-separated list of shipper IDs available in the picker. Default is empty, which means all available parcelshop shippers are shown. |
| 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. Default is |