{"openapi":"3.0.1","info":{"title":"Foxdeli Pickup Place Service API","description":"Foxdeli API documentation","version":"3.17.2"},"externalDocs":{"description":"Foxdeli API documentation","url":"https://apidoc.foxdeli.com/"},"servers":[{"url":"https://api.foxdeli.com/pickup-place","description":"Production API server for live data"},{"url":"https://api.sandbox.foxdeli.com/pickup-place","description":"Sandbox API server for integration testing"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"PickupPlace","description":"PickupPlaces operations"}],"paths":{"/api/v1/pickup-place":{"get":{"tags":["PickupPlace"],"summary":"Get eshop pickup places","description":"Find all existing pickup places for an e-shop","operationId":"getAllEshopPickupPlaces","parameters":[{"name":"eshopId","in":"query","description":"UUID of eshop","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"name":"size","in":"query","description":"The size of the page to be returned","schema":{"type":"integer","default":20}},{"name":"sort","in":"query","description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Input data validation error - constraint violation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Invalid API token","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Access denied (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"200":{"description":"Pickup place (paged) collection successfully returned - may be empty","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionResponsePickupPlaceResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/CollectionResponsePickupPlaceResponse"}}}}}},"post":{"tags":["PickupPlace"],"summary":"Create new pickup place","description":"Create new pickup place","operationId":"createPickupPlace","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PickupPlaceCreate"}}},"required":true},"responses":{"400":{"description":"Input data validation error - constraint violation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Invalid API token","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Access denied (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"201":{"description":"New pickup place successfully created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PickupPlaceResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/PickupPlaceResponse"}}}}}}},"/api/v1/pickup-place/{id}/image":{"post":{"tags":["PickupPlace"],"summary":"Upload a pickup place image","description":"Upload a pickup place image","operationId":"uploadPickupPlaceImage","parameters":[{"name":"id","in":"path","description":"UUID of the pickup place","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"400":{"description":"Input data validation error - constraint violation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Invalid API token","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Access denied (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"404":{"description":"Pickup place not found (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"201":{"description":"Pickup place image successfully uploaded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileInfo"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/FileInfo"}}}},"413":{"description":"Request payload (uploaded image) too large","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}},"/api/v1/pickup-place/{id}":{"get":{"tags":["PickupPlace"],"summary":"Get pickup place by id","description":"Get pickup place by id","operationId":"getPickupPlace","parameters":[{"name":"id","in":"path","description":"UUID of the pickup place","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Input data validation error - constraint violation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Invalid API token","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Access denied (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"404":{"description":"Pickup place not found (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"200":{"description":"Pickup place successfully returned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PickupPlaceResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/PickupPlaceResponse"}}}}}},"delete":{"tags":["PickupPlace"],"summary":"Delete a pickup place","description":"Delete a pickup place","operationId":"deletePickupPlace","parameters":[{"name":"id","in":"path","description":"UUID of the pickup place","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Input data validation error - constraint violation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Invalid API token","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Access denied (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"404":{"description":"Pickup place not found (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"204":{"description":"Pickup place successfully deleted"}}},"patch":{"tags":["PickupPlace"],"summary":"Update a pickup place","description":"Update a pickup place","operationId":"updatePickupPlace","parameters":[{"name":"id","in":"path","description":"UUID of the pickup place","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PickupPlaceUpdate"}}},"required":true},"responses":{"400":{"description":"Input data validation error - constraint violation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Invalid API token","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Access denied (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"200":{"description":"Pickup place successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PickupPlaceResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/PickupPlaceResponse"}}}},"404":{"description":"Pickup place not found (under the current user account)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"schemas":{"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{"type":"object"}}}},"CountryCode":{"type":"string","description":"Location country of the pickup place","example":"CZ","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"DestinationType":{"type":"string","description":"Type of destination","example":"HOUSE_ADDRESS","enum":["PARCEL_SHOP","PARCEL_BOX","HOUSE_ADDRESS"]},"ExceptionallyOpeningHoursRequest":{"required":["date"],"type":"object","properties":{"date":{"type":"string","example":"2024-10-28"},"hours":{"type":"array","items":{"$ref":"#/components/schemas/OpeningHoursIntervalRequest"}},"reason":{"type":"string","example":"Public holidays"}}},"Gps":{"required":["latitude","longitude"],"type":"object","properties":{"latitude":{"type":"string"},"longitude":{"type":"string"}}},"LocationRequest":{"required":["city","gps","line1","zipCode"],"type":"object","properties":{"line1":{"type":"string","example":"Krizikova 70"},"line2":{"type":"string"},"city":{"type":"string","example":"Praha 8"},"region":{"type":"string"},"state":{"type":"string","description":"State name - applicable for countries such as the US, Canada, etc.","example":"California"},"zipCode":{"type":"string","example":"158 00"},"gps":{"$ref":"#/components/schemas/Gps"}},"description":"Location (address) of the pickup place - except for country"},"OpeningHoursIntervalRequest":{"required":["from","to"],"type":"object","properties":{"from":{"type":"string","example":"09:00"},"to":{"type":"string","example":"17:00"}}},"OpeningHoursRequest":{"required":["regular"],"type":"object","properties":{"regular":{"$ref":"#/components/schemas/RegularOpeningHoursRequest"},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/ExceptionallyOpeningHoursRequest"}}},"description":"Opening hours of the pickup place"},"PickupPlaceCreate":{"required":["countryCode","email","eshopId","location","name","openingHours","originPickupPlaceId","phone","storageTimeInDays","type"],"type":"object","properties":{"eshopId":{"type":"string","description":"Id of the eshop this pickup place belongs to - required if originType != CARRIER","format":"uuid","example":"12345678-1234-1234-1234-1234567890ab"},"type":{"$ref":"#/components/schemas/DestinationType"},"originPickupPlaceId":{"type":"string","description":"Origin-specific id of the pickup place","example":"123456789"},"name":{"type":"string","description":"Name of the pickup place","example":"Pobocka Karlin"},"location":{"$ref":"#/components/schemas/LocationRequest"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"note":{"type":"string","description":"Optional note on the pickup place","example":"This pickup place is a really nice place"},"phone":{"type":"string","description":"Pickup place phone","example":"+420 987 654 321"},"email":{"type":"string","example":"karlin@mybriliantcompany.com"},"storageTimeInDays":{"type":"integer","format":"int32","example":3},"storageTimeType":{"$ref":"#/components/schemas/StorageTimeType"},"openingHours":{"$ref":"#/components/schemas/OpeningHoursRequest"}}},"RegularOpeningHoursRequest":{"type":"object","properties":{"monday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalRequest"}},"tuesday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalRequest"}},"wednesday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalRequest"}},"thursday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalRequest"}},"friday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalRequest"}},"saturday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalRequest"}},"sunday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalRequest"}}}},"StorageTimeType":{"type":"string","description":"Describes how are storage time days interpreted. CALENDAR_DAYS takes into account all days.\n BUSINESS_DAYS takes into account only days when is pickup place open.","example":"BUSINESS_DAYS","default":"CALENDAR_DAYS","enum":["BUSINESS_DAYS","CALENDAR_DAYS"]},"Carrier":{"type":"string","description":"carrier identifier","example":"GLS","enum":["BUDBEE","CZECH_POST","DB_SCHENKER","DHL","DIY","DPD","DPD_CZ","DPD_PL","DPD_SK","DODO","EU_SHIPMENTS","EXPRESS_ONE","FAN_COURIER","FHB_PACKETA","FEDEX","GEBRUDER_WEISS","GEIS","GLS","GLS_CZ","GLS_HR","GLS_HU","GLS_RO","GLS_SI","GLS_SK","GO_BALIK","INPOST","JAPO","KURIER_123","KURYR_123","LANDMARK","MESSENGER","PACKETA","PBH","POST_AG","POCZTA_POLSKA","PPL","PPL_CPL","SAMEDAY","SAMEDAY_RO","SLOVAKIA_POST","SPEEDY","SPRING_GDS","SPS","SWISS_POST","TAXYDROMIKI","TOP_TRANS","ULOZENKA","URGENT_CARGUS","UNKNOWN","UPS","WEDO","PERSONAL_PICKUP"]},"ExceptionallyOpeningHoursResponse":{"type":"object","properties":{"date":{"type":"string","format":"date","example":"2023-02-17"},"from":{"pattern":"HH:mm","type":"string","example":"08:00","deprecated":true},"to":{"pattern":"HH:mm","type":"string","example":"18:00","deprecated":true},"hours":{"type":"array","items":{"$ref":"#/components/schemas/OpeningHoursIntervalResponse"}},"reason":{"type":"string","example":"Reconstruction"}},"description":"Exceptional opening hours - e.g. public holidays"},"GPS":{"type":"object","properties":{"latitude":{"type":"number","description":"GPS latitude","format":"double","example":14.4542789},"longitude":{"type":"number","description":"GPS longitude","format":"double","example":50.0933864}},"description":"GPS of pickup place location"},"LocationResponse":{"type":"object","properties":{"line1":{"type":"string","description":"address line1","example":"Sesame street 11b"},"line2":{"type":"string","description":"address line2"},"city":{"type":"string","example":"MyCoolCity"},"region":{"type":"string","description":"optional address region","example":"Michigan"},"state":{"type":"string","description":"optional address state","example":"Michigan"},"zipCode":{"type":"string","example":"48228"},"gps":{"$ref":"#/components/schemas/GPS"}},"description":"Location of pickup place"},"OpeningHoursIntervalResponse":{"type":"object","properties":{"from":{"pattern":"HH:mm","type":"string","example":"08:00"},"to":{"pattern":"HH:mm","type":"string","example":"18:00"}}},"OpeningHoursResponse":{"required":["exceptions","regular"],"type":"object","properties":{"regular":{"$ref":"#/components/schemas/RegularOpeningHoursResponse"},"exceptions":{"type":"array","description":"Exceptional opening hours - e.g. public holidays","items":{"$ref":"#/components/schemas/ExceptionallyOpeningHoursResponse"}}},"description":"Opening Hours and exceptions"},"OriginType":{"type":"string","description":"Type of origin system","example":"SHOPTET","enum":["CARRIER","SHOPTET","SHOPTET_PREMIUM","SHOPIFY","UPGATES","API_USER"]},"PickupPlaceResponse":{"required":["carrier","countryCode","email","id","location","name","openingHours","origin","originPickupPlaceId","phone","type","zoneId"],"type":"object","properties":{"id":{"type":"string","description":"Identifier of pickup place","format":"uuid"},"eshopId":{"type":"string","description":"Id of the eshop this pickup place belongs to","format":"uuid","example":"edf4b2ec-c1fc-42da-ba86-eb3a236cd565"},"type":{"$ref":"#/components/schemas/DestinationType"},"carrier":{"$ref":"#/components/schemas/Carrier"},"originPickupPlaceId":{"type":"string","description":"Origin ID of parcelShop/Box","example":"FZ001"},"origin":{"$ref":"#/components/schemas/OriginType"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"zoneId":{"type":"string","example":"America/New_York"},"name":{"type":"string","example":"My cool pickup place"},"location":{"$ref":"#/components/schemas/LocationResponse"},"note":{"type":"string","example":"Amazing place"},"phone":{"type":"string","description":"Customer phone","example":"+420 123 456 789"},"email":{"type":"string","description":"email","example":"iboughtsomething@customer.com"},"image":{"type":"string","description":"Pickup place image link","example":"https://cdn.images/amazing.png"},"storageTime":{"type":"integer","description":"How long the shipment will be stored, in days. Deprecated in favor of storageTimeInDays.","format":"int32","example":4,"deprecated":true},"storageTimeInDays":{"type":"integer","description":"How many days will be the shipment stored","format":"int32","example":4},"storageTimeType":{"$ref":"#/components/schemas/StorageTimeType"},"openingHours":{"$ref":"#/components/schemas/OpeningHoursResponse"}},"description":"Pickup Place"},"RegularOpeningHoursResponse":{"type":"object","properties":{"monday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalResponse"}},"tuesday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalResponse"}},"wednesday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalResponse"}},"thursday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalResponse"}},"friday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalResponse"}},"saturday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalResponse"}},"sunday":{"type":"array","description":"Time interval(s) during the day when the place is open - null or empty means closed all day","items":{"$ref":"#/components/schemas/OpeningHoursIntervalResponse"}}},"description":"Regular opening hours"},"FileInfo":{"type":"object","properties":{"id":{"type":"string","description":"identifier of file - deprecated - kept for backwards compatibility","deprecated":true},"path":{"type":"string","description":"(unique) path of the file in storage"},"url":{"type":"string","description":"absolute url where to get file content"},"mediaLink":{"type":"string","description":"deprecated - use url instead","deprecated":true},"contentType":{"type":"string","description":"mime content type of file"},"size":{"type":"integer","description":"size of file in bytes","format":"int64"},"created":{"type":"string","description":"when was file created","format":"date-time"},"updated":{"type":"string","description":"when was file updated","format":"date-time"}}},"JsonNullableStorageTimeType":{"type":"object","properties":{"present":{"type":"boolean"}}},"PickupPlaceUpdate":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/DestinationType"},"originPickupPlaceId":{"type":"string","description":"Origin-specific id of the pickup place","example":"123456789"},"name":{"type":"string","description":"Name of the pickup place","example":"Pobocka Karlin"},"location":{"$ref":"#/components/schemas/LocationRequest"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"note":{"type":"string","description":"Optional note on the pickup place","example":"This pickup place is a really nice place"},"phone":{"type":"string","description":"Pickup place phone","example":"+420 987 654 321"},"email":{"type":"string","example":"karlin@mybriliantcompany.com"},"storageTimeInDays":{"type":"integer","format":"int32","example":3},"storageTimeType":{"$ref":"#/components/schemas/JsonNullableStorageTimeType"},"openingHours":{"$ref":"#/components/schemas/OpeningHoursRequest"}}},"CollectionPage":{"type":"object","properties":{"totalPages":{"type":"integer","description":"Total pages","format":"int32","example":100},"totalElements":{"type":"integer","description":"Total elements","format":"int64","example":2000},"size":{"type":"integer","description":"Number of elements per page","format":"int32","example":20},"number":{"type":"integer","description":"Current page number","format":"int32","example":1},"first":{"type":"boolean","description":"First page","example":true},"last":{"type":"boolean","description":"Last page","example":false}},"description":"Information about the position in list","nullable":true},"CollectionResponsePickupPlaceResponse":{"type":"object","properties":{"items":{"type":"array","description":"Collection response wrapper","items":{"$ref":"#/components/schemas/PickupPlaceResponse"}},"page":{"$ref":"#/components/schemas/CollectionPage"}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-API-Key","in":"header"}}}}