> For the complete documentation index, see [llms.txt](https://docs.packli.hu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.packli.hu/api-integracio/parcels.md).

# Parcels

Parcel management operations

## List parcels

> Retrieve a paginated list of parcels with filtering and sorting options

```json
{"openapi":"3.0.3","info":{"title":"Packli API","version":"3.0.0"},"tags":[{"name":"Parcels","description":"Parcel management operations"}],"servers":[{"url":"https://app.packli.hu/api","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Laravel Sanctum token authentication.\nInclude the token in the Authorization header: `Bearer {your-token}`\n"}},"schemas":{"ParcelList":{"type":"object","properties":{"id":{"type":"integer","description":"Parcel ID"},"order_id":{"type":"integer","nullable":true,"description":"Order ID if parcel is part of an order"},"custom_id":{"type":"string","nullable":true,"description":"Custom parcel identifier"},"account_id":{"type":"integer","description":"Account ID"},"warehouse_id":{"type":"integer","description":"Warehouse contact ID"},"contact_id":{"type":"integer","description":"Contact ID"},"place_id":{"type":"integer","nullable":true,"description":"Provider place ID"},"service_id":{"type":"integer","description":"Service ID"},"weight":{"type":"number","description":"Package weight in kg"},"size":{"type":"string","description":"Package size category"},"cod":{"type":"number","description":"Cash on delivery amount"},"cod_currency_id":{"type":"integer","description":"COD currency ID"},"cod_account_date":{"type":"string","nullable":true,"format":"date-time","description":"COD account date"},"cod_accounted_amount":{"type":"number","description":"COD accounted amount"},"insurance":{"type":"number","description":"Insurance amount"},"insurance_currency_id":{"type":"integer","description":"Insurance currency ID"},"is_fragile":{"type":"integer","description":"Whether package is fragile (1/0)"},"is_amorf":{"type":"integer","description":"Whether package is amorphous (1/0)"},"is_priority":{"type":"integer","description":"Whether package has priority (1/0)"},"service_fee":{"type":"number","nullable":true,"description":"Service fee"},"return_fee":{"type":"number","nullable":true,"description":"Return fee"},"fees_currency_id":{"type":"integer","nullable":true,"description":"Fees currency ID"},"fees_calculation":{"type":"string","nullable":true,"description":"JSON string with fee calculation details"},"fees_discount_percent":{"type":"number","nullable":true,"description":"Fee discount percentage"},"foreign_tracking_id":{"type":"string","nullable":true,"description":"External tracking ID"},"customer_note":{"type":"string","nullable":true,"description":"Customer note"},"upload_by":{"type":"string","nullable":true,"description":"Upload user"},"upload_from":{"type":"string","description":"Upload source"},"order_error":{"type":"string","nullable":true,"description":"Order error message"},"tracked_at":{"type":"string","nullable":true,"format":"date-time","description":"Tracking timestamp"},"created_at":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp"},"deleted_at":{"type":"string","nullable":true,"format":"date-time","description":"Deletion timestamp"},"is_deleteable":{"type":"boolean","description":"Whether parcel can be deleted"},"is_orderable":{"type":"boolean","description":"Whether parcel can be ordered"},"is_editable":{"type":"boolean","description":"Whether parcel can be edited"},"is_printable":{"type":"boolean","description":"Whether parcel can be printed"},"service":{"$ref":"#/components/schemas/ParcelService"},"contact":{"$ref":"#/components/schemas/ParcelContact"},"status":{"$ref":"#/components/schemas/ParcelStatus"},"cod_currency":{"$ref":"#/components/schemas/Currency"},"place":{"type":"object","nullable":true,"description":"Provider place (if applicable)"},"order":{"$ref":"#/components/schemas/ParcelOrder"},"warehouse":{"$ref":"#/components/schemas/ParcelContact"}}},"ParcelService":{"type":"object","properties":{"id":{"type":"integer"},"provider_id":{"type":"integer"},"country_id":{"type":"integer"},"slug":{"type":"string"},"is_default":{"type":"integer"},"full_address_required":{"type":"integer"},"maximum_weight":{"type":"number"},"supported_sizes":{"type":"string","description":"JSON array of supported sizes"},"is_support_amorf":{"type":"integer"},"is_support_fragile":{"type":"integer"},"is_support_priority":{"type":"integer"},"provider":{"$ref":"#/components/schemas/Provider"}}},"Provider":{"type":"object","properties":{"id":{"type":"integer","description":"Provider ID"},"name":{"type":"string","description":"Provider name"},"slug":{"type":"string","description":"Provider slug"},"tracking_link":{"type":"string","description":"Tracking link template with %foreign_tracking_id% placeholder"}}},"ParcelContact":{"type":"object","properties":{"id":{"type":"integer"},"account_id":{"type":"integer"},"country_id":{"type":"integer"},"is_warehouse":{"type":"integer"},"is_billing":{"type":"integer"},"zip":{"type":"string"},"city":{"type":"string"},"address":{"type":"string"},"position_lat":{"type":"number","nullable":true},"position_lng":{"type":"number","nullable":true},"phone":{"type":"string"},"email":{"type":"string"},"family_name":{"type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"company_name":{"type":"string","nullable":true},"dpd_buCode":{"type":"string","nullable":true},"dpd_customerId":{"type":"string","nullable":true},"dpd_addressId":{"type":"string","nullable":true},"deleted_at":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"country":{"$ref":"#/components/schemas/Country"}}},"Country":{"type":"object","properties":{"id":{"type":"integer","description":"Country ID"},"name":{"type":"string","description":"Country name"},"iso":{"type":"string","description":"ISO country code (lowercase)"},"currency_id":{"type":"integer","description":"Currency ID"},"cod_payout_limit":{"type":"number","description":"Cash on delivery payout limit"},"vat":{"type":"number","description":"VAT rate percentage"}}},"ParcelStatus":{"type":"object","properties":{"id":{"type":"integer"},"parcel_id":{"type":"integer"},"status_code":{"type":"integer"},"status_description":{"type":"string","nullable":true},"status_date":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Currency":{"type":"object","properties":{"id":{"type":"integer","description":"Currency ID"},"name":{"type":"string","description":"Currency name"},"short_text":{"type":"string","description":"Currency short code"},"symbol":{"type":"string","description":"Currency symbol"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"ParcelOrder":{"type":"object","properties":{"id":{"type":"integer"},"account_id":{"type":"integer"},"user_id":{"type":"integer"},"deleted_at":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"}}},"PaginationLinks":{"type":"object","properties":{"first":{"type":"string","description":"Link to first page"},"last":{"type":"string","description":"Link to last page"},"prev":{"type":"string","nullable":true,"description":"Link to previous page"},"next":{"type":"string","nullable":true,"description":"Link to next page"}}},"PaginationMeta":{"type":"object","properties":{"current_page":{"type":"integer","description":"Current page number"},"from":{"type":"integer","description":"First item number on current page"},"last_page":{"type":"integer","description":"Last page number"},"per_page":{"type":"integer","description":"Items per page"},"to":{"type":"integer","description":"Last item number on current page"},"total":{"type":"integer","description":"Total number of items"}}}},"responses":{"Unauthorized":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"ValidationError":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}}}},"paths":{"/v3/parcels":{"get":{"tags":["Parcels"],"summary":"List parcels","description":"Retrieve a paginated list of parcels with filtering and sorting options","parameters":[{"name":"page","in":"query","description":"Page number for pagination","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","description":"Number of items per page","required":false,"schema":{"type":"integer","enum":[5,10,25,50,100],"default":50}},{"name":"sort","in":"query","description":"Field to sort by","required":false,"schema":{"type":"string","enum":["id","created_at","contact","status_code","cod"],"default":"id"}},{"name":"order","in":"query","description":"Sort order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"search","in":"query","description":"Search term for parcels, contacts, or tracking IDs","required":false,"schema":{"type":"string"}},{"name":"providers[]","in":"query","description":"Filter by provider IDs","required":false,"schema":{"type":"array","items":{"type":"integer"}},"style":"form","explode":true},{"name":"statuses[]","in":"query","description":"Filter by status codes","required":false,"schema":{"type":"array","items":{"type":"integer","enum":[100,200,210,300,310,400,500,600]}},"style":"form","explode":true},{"name":"cods","in":"query","description":"Filter by COD status","required":false,"schema":{"type":"string","enum":["all","have","none"],"default":"all"}},{"name":"dates","in":"query","description":"Date range filter","required":false,"schema":{"type":"object","properties":{"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"}}}},{"name":"order_id","in":"query","description":"Filter by order ID","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"List of parcels","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ParcelList"}},"links":{"$ref":"#/components/schemas/PaginationLinks"},"meta":{"$ref":"#/components/schemas/PaginationMeta"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/ValidationError"}}}}}}
```

## Create a new parcel

> Create a new parcel with contact and shipping details

```json
{"openapi":"3.0.3","info":{"title":"Packli API","version":"3.0.0"},"tags":[{"name":"Parcels","description":"Parcel management operations"}],"servers":[{"url":"https://app.packli.hu/api","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Laravel Sanctum token authentication.\nInclude the token in the Authorization header: `Bearer {your-token}`\n"}},"schemas":{"ParcelCreateRequest":{"type":"object","required":["service_id","weight","size","cod","cod_currency_id","insurance","insurance_currency_id","is_fragile","is_amorf"],"properties":{"service_id":{"type":"integer","description":"Provider service ID"},"place_id":{"type":"integer","nullable":true,"description":"Provider place ID (required for some services)"},"custom_id":{"type":"string","nullable":true,"maxLength":255,"description":"Custom parcel identifier"},"contact_id":{"type":"integer","nullable":true,"description":"Existing contact ID (alternative to contact details)"},"contact_first_name":{"type":"string","nullable":true,"description":"Contact first name"},"contact_family_name":{"type":"string","nullable":true,"description":"Contact family name"},"contact_phone":{"type":"string","nullable":true,"description":"Contact phone number"},"contact_email":{"type":"string","nullable":true,"format":"email","description":"Contact email address"},"contact_country_id":{"type":"integer","nullable":true,"description":"Contact country ID"},"contact_zip":{"type":"string","nullable":true,"description":"Contact postal code"},"contact_city":{"type":"string","nullable":true,"description":"Contact city"},"contact_address":{"type":"string","nullable":true,"description":"Contact address"},"warehouse_id":{"type":"integer","nullable":true,"description":"Warehouse contact ID (alternative to warehouse details)"},"warehouse_zip":{"type":"string","nullable":true,"description":"Warehouse postal code"},"warehouse_city":{"type":"string","nullable":true,"description":"Warehouse city"},"warehouse_address":{"type":"string","nullable":true,"description":"Warehouse address"},"warehouse_email":{"type":"string","nullable":true,"format":"email","description":"Warehouse email"},"warehouse_phone":{"type":"string","nullable":true,"description":"Warehouse phone"},"weight":{"type":"number","minimum":0.1,"maximum":40,"description":"Package weight in kg"},"size":{"type":"string","enum":["xs","s","m","l","xl","xxl"],"description":"Package size category"},"cod":{"type":"number","minimum":0,"description":"Cash on delivery amount"},"cod_currency_id":{"type":"integer","description":"COD currency ID"},"insurance":{"type":"number","minimum":0,"description":"Insurance amount"},"insurance_currency_id":{"type":"integer","description":"Insurance currency ID"},"is_fragile":{"type":"boolean","description":"Whether package is fragile"},"is_amorf":{"type":"boolean","description":"Whether package is amorphous"},"customer_note":{"type":"string","nullable":true,"maxLength":50,"description":"Customer note"}}},"ParcelCreated":{"type":"object","properties":{"contact_id":{"type":"integer"},"warehouse_id":{"type":"integer"},"place_id":{"type":"integer","nullable":true},"service_id":{"type":"integer"},"account_id":{"type":"integer"},"custom_id":{"type":"string","nullable":true},"weight":{"type":"number"},"size":{"type":"string"},"cod":{"type":"number"},"cod_currency_id":{"type":"integer"},"insurance":{"type":"number"},"insurance_currency_id":{"type":"integer"},"is_fragile":{"type":"boolean"},"customer_note":{"type":"string","nullable":true},"is_priority":{"type":"boolean","nullable":true},"updated_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"id":{"type":"integer"},"is_deleteable":{"type":"boolean"},"is_orderable":{"type":"boolean"},"is_editable":{"type":"boolean"},"is_printable":{"type":"boolean"},"service":{"$ref":"#/components/schemas/ParcelService"},"status":{"$ref":"#/components/schemas/ParcelStatus"}}},"ParcelService":{"type":"object","properties":{"id":{"type":"integer"},"provider_id":{"type":"integer"},"country_id":{"type":"integer"},"slug":{"type":"string"},"is_default":{"type":"integer"},"full_address_required":{"type":"integer"},"maximum_weight":{"type":"number"},"supported_sizes":{"type":"string","description":"JSON array of supported sizes"},"is_support_amorf":{"type":"integer"},"is_support_fragile":{"type":"integer"},"is_support_priority":{"type":"integer"},"provider":{"$ref":"#/components/schemas/Provider"}}},"Provider":{"type":"object","properties":{"id":{"type":"integer","description":"Provider ID"},"name":{"type":"string","description":"Provider name"},"slug":{"type":"string","description":"Provider slug"},"tracking_link":{"type":"string","description":"Tracking link template with %foreign_tracking_id% placeholder"}}},"ParcelStatus":{"type":"object","properties":{"id":{"type":"integer"},"parcel_id":{"type":"integer"},"status_code":{"type":"integer"},"status_description":{"type":"string","nullable":true},"status_date":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"responses":{"Unauthorized":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"ValidationError":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}}}},"paths":{"/v3/parcels":{"post":{"tags":["Parcels"],"summary":"Create a new parcel","description":"Create a new parcel with contact and shipping details","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParcelCreateRequest"}}}},"responses":{"201":{"description":"Parcel created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ParcelCreated"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/ValidationError"}}}}}}
```

## Get parcel details

> Retrieve detailed information about a specific parcel

```json
{"openapi":"3.0.3","info":{"title":"Packli API","version":"3.0.0"},"tags":[{"name":"Parcels","description":"Parcel management operations"}],"servers":[{"url":"https://app.packli.hu/api","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Laravel Sanctum token authentication.\nInclude the token in the Authorization header: `Bearer {your-token}`\n"}},"schemas":{"ParcelList":{"type":"object","properties":{"id":{"type":"integer","description":"Parcel ID"},"order_id":{"type":"integer","nullable":true,"description":"Order ID if parcel is part of an order"},"custom_id":{"type":"string","nullable":true,"description":"Custom parcel identifier"},"account_id":{"type":"integer","description":"Account ID"},"warehouse_id":{"type":"integer","description":"Warehouse contact ID"},"contact_id":{"type":"integer","description":"Contact ID"},"place_id":{"type":"integer","nullable":true,"description":"Provider place ID"},"service_id":{"type":"integer","description":"Service ID"},"weight":{"type":"number","description":"Package weight in kg"},"size":{"type":"string","description":"Package size category"},"cod":{"type":"number","description":"Cash on delivery amount"},"cod_currency_id":{"type":"integer","description":"COD currency ID"},"cod_account_date":{"type":"string","nullable":true,"format":"date-time","description":"COD account date"},"cod_accounted_amount":{"type":"number","description":"COD accounted amount"},"insurance":{"type":"number","description":"Insurance amount"},"insurance_currency_id":{"type":"integer","description":"Insurance currency ID"},"is_fragile":{"type":"integer","description":"Whether package is fragile (1/0)"},"is_amorf":{"type":"integer","description":"Whether package is amorphous (1/0)"},"is_priority":{"type":"integer","description":"Whether package has priority (1/0)"},"service_fee":{"type":"number","nullable":true,"description":"Service fee"},"return_fee":{"type":"number","nullable":true,"description":"Return fee"},"fees_currency_id":{"type":"integer","nullable":true,"description":"Fees currency ID"},"fees_calculation":{"type":"string","nullable":true,"description":"JSON string with fee calculation details"},"fees_discount_percent":{"type":"number","nullable":true,"description":"Fee discount percentage"},"foreign_tracking_id":{"type":"string","nullable":true,"description":"External tracking ID"},"customer_note":{"type":"string","nullable":true,"description":"Customer note"},"upload_by":{"type":"string","nullable":true,"description":"Upload user"},"upload_from":{"type":"string","description":"Upload source"},"order_error":{"type":"string","nullable":true,"description":"Order error message"},"tracked_at":{"type":"string","nullable":true,"format":"date-time","description":"Tracking timestamp"},"created_at":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp"},"deleted_at":{"type":"string","nullable":true,"format":"date-time","description":"Deletion timestamp"},"is_deleteable":{"type":"boolean","description":"Whether parcel can be deleted"},"is_orderable":{"type":"boolean","description":"Whether parcel can be ordered"},"is_editable":{"type":"boolean","description":"Whether parcel can be edited"},"is_printable":{"type":"boolean","description":"Whether parcel can be printed"},"service":{"$ref":"#/components/schemas/ParcelService"},"contact":{"$ref":"#/components/schemas/ParcelContact"},"status":{"$ref":"#/components/schemas/ParcelStatus"},"cod_currency":{"$ref":"#/components/schemas/Currency"},"place":{"type":"object","nullable":true,"description":"Provider place (if applicable)"},"order":{"$ref":"#/components/schemas/ParcelOrder"},"warehouse":{"$ref":"#/components/schemas/ParcelContact"}}},"ParcelService":{"type":"object","properties":{"id":{"type":"integer"},"provider_id":{"type":"integer"},"country_id":{"type":"integer"},"slug":{"type":"string"},"is_default":{"type":"integer"},"full_address_required":{"type":"integer"},"maximum_weight":{"type":"number"},"supported_sizes":{"type":"string","description":"JSON array of supported sizes"},"is_support_amorf":{"type":"integer"},"is_support_fragile":{"type":"integer"},"is_support_priority":{"type":"integer"},"provider":{"$ref":"#/components/schemas/Provider"}}},"Provider":{"type":"object","properties":{"id":{"type":"integer","description":"Provider ID"},"name":{"type":"string","description":"Provider name"},"slug":{"type":"string","description":"Provider slug"},"tracking_link":{"type":"string","description":"Tracking link template with %foreign_tracking_id% placeholder"}}},"ParcelContact":{"type":"object","properties":{"id":{"type":"integer"},"account_id":{"type":"integer"},"country_id":{"type":"integer"},"is_warehouse":{"type":"integer"},"is_billing":{"type":"integer"},"zip":{"type":"string"},"city":{"type":"string"},"address":{"type":"string"},"position_lat":{"type":"number","nullable":true},"position_lng":{"type":"number","nullable":true},"phone":{"type":"string"},"email":{"type":"string"},"family_name":{"type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"company_name":{"type":"string","nullable":true},"dpd_buCode":{"type":"string","nullable":true},"dpd_customerId":{"type":"string","nullable":true},"dpd_addressId":{"type":"string","nullable":true},"deleted_at":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"country":{"$ref":"#/components/schemas/Country"}}},"Country":{"type":"object","properties":{"id":{"type":"integer","description":"Country ID"},"name":{"type":"string","description":"Country name"},"iso":{"type":"string","description":"ISO country code (lowercase)"},"currency_id":{"type":"integer","description":"Currency ID"},"cod_payout_limit":{"type":"number","description":"Cash on delivery payout limit"},"vat":{"type":"number","description":"VAT rate percentage"}}},"ParcelStatus":{"type":"object","properties":{"id":{"type":"integer"},"parcel_id":{"type":"integer"},"status_code":{"type":"integer"},"status_description":{"type":"string","nullable":true},"status_date":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Currency":{"type":"object","properties":{"id":{"type":"integer","description":"Currency ID"},"name":{"type":"string","description":"Currency name"},"short_text":{"type":"string","description":"Currency short code"},"symbol":{"type":"string","description":"Currency symbol"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"ParcelOrder":{"type":"object","properties":{"id":{"type":"integer"},"account_id":{"type":"integer"},"user_id":{"type":"integer"},"deleted_at":{"type":"string","nullable":true},"updated_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"}}}},"responses":{"Unauthorized":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"Forbidden":{"description":"Access forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/v3/parcels/{id}":{"get":{"tags":["Parcels"],"summary":"Get parcel details","description":"Retrieve detailed information about a specific parcel","parameters":[{"name":"id","in":"path","required":true,"description":"Parcel ID","schema":{"type":"integer"}}],"responses":{"200":{"description":"Parcel details","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ParcelList"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
```

## Update parcel

> Update an existing parcel

```json
{"openapi":"3.0.3","info":{"title":"Packli API","version":"3.0.0"},"tags":[{"name":"Parcels","description":"Parcel management operations"}],"servers":[{"url":"https://app.packli.hu/api","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Laravel Sanctum token authentication.\nInclude the token in the Authorization header: `Bearer {your-token}`\n"}},"schemas":{"ParcelCreateRequest":{"type":"object","required":["service_id","weight","size","cod","cod_currency_id","insurance","insurance_currency_id","is_fragile","is_amorf"],"properties":{"service_id":{"type":"integer","description":"Provider service ID"},"place_id":{"type":"integer","nullable":true,"description":"Provider place ID (required for some services)"},"custom_id":{"type":"string","nullable":true,"maxLength":255,"description":"Custom parcel identifier"},"contact_id":{"type":"integer","nullable":true,"description":"Existing contact ID (alternative to contact details)"},"contact_first_name":{"type":"string","nullable":true,"description":"Contact first name"},"contact_family_name":{"type":"string","nullable":true,"description":"Contact family name"},"contact_phone":{"type":"string","nullable":true,"description":"Contact phone number"},"contact_email":{"type":"string","nullable":true,"format":"email","description":"Contact email address"},"contact_country_id":{"type":"integer","nullable":true,"description":"Contact country ID"},"contact_zip":{"type":"string","nullable":true,"description":"Contact postal code"},"contact_city":{"type":"string","nullable":true,"description":"Contact city"},"contact_address":{"type":"string","nullable":true,"description":"Contact address"},"warehouse_id":{"type":"integer","nullable":true,"description":"Warehouse contact ID (alternative to warehouse details)"},"warehouse_zip":{"type":"string","nullable":true,"description":"Warehouse postal code"},"warehouse_city":{"type":"string","nullable":true,"description":"Warehouse city"},"warehouse_address":{"type":"string","nullable":true,"description":"Warehouse address"},"warehouse_email":{"type":"string","nullable":true,"format":"email","description":"Warehouse email"},"warehouse_phone":{"type":"string","nullable":true,"description":"Warehouse phone"},"weight":{"type":"number","minimum":0.1,"maximum":40,"description":"Package weight in kg"},"size":{"type":"string","enum":["xs","s","m","l","xl","xxl"],"description":"Package size category"},"cod":{"type":"number","minimum":0,"description":"Cash on delivery amount"},"cod_currency_id":{"type":"integer","description":"COD currency ID"},"insurance":{"type":"number","minimum":0,"description":"Insurance amount"},"insurance_currency_id":{"type":"integer","description":"Insurance currency ID"},"is_fragile":{"type":"boolean","description":"Whether package is fragile"},"is_amorf":{"type":"boolean","description":"Whether package is amorphous"},"customer_note":{"type":"string","nullable":true,"maxLength":50,"description":"Customer note"}}},"ParcelCreated":{"type":"object","properties":{"contact_id":{"type":"integer"},"warehouse_id":{"type":"integer"},"place_id":{"type":"integer","nullable":true},"service_id":{"type":"integer"},"account_id":{"type":"integer"},"custom_id":{"type":"string","nullable":true},"weight":{"type":"number"},"size":{"type":"string"},"cod":{"type":"number"},"cod_currency_id":{"type":"integer"},"insurance":{"type":"number"},"insurance_currency_id":{"type":"integer"},"is_fragile":{"type":"boolean"},"customer_note":{"type":"string","nullable":true},"is_priority":{"type":"boolean","nullable":true},"updated_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"id":{"type":"integer"},"is_deleteable":{"type":"boolean"},"is_orderable":{"type":"boolean"},"is_editable":{"type":"boolean"},"is_printable":{"type":"boolean"},"service":{"$ref":"#/components/schemas/ParcelService"},"status":{"$ref":"#/components/schemas/ParcelStatus"}}},"ParcelService":{"type":"object","properties":{"id":{"type":"integer"},"provider_id":{"type":"integer"},"country_id":{"type":"integer"},"slug":{"type":"string"},"is_default":{"type":"integer"},"full_address_required":{"type":"integer"},"maximum_weight":{"type":"number"},"supported_sizes":{"type":"string","description":"JSON array of supported sizes"},"is_support_amorf":{"type":"integer"},"is_support_fragile":{"type":"integer"},"is_support_priority":{"type":"integer"},"provider":{"$ref":"#/components/schemas/Provider"}}},"Provider":{"type":"object","properties":{"id":{"type":"integer","description":"Provider ID"},"name":{"type":"string","description":"Provider name"},"slug":{"type":"string","description":"Provider slug"},"tracking_link":{"type":"string","description":"Tracking link template with %foreign_tracking_id% placeholder"}}},"ParcelStatus":{"type":"object","properties":{"id":{"type":"integer"},"parcel_id":{"type":"integer"},"status_code":{"type":"integer"},"status_description":{"type":"string","nullable":true},"status_date":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"responses":{"Unauthorized":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"Forbidden":{"description":"Access forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"ValidationError":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}}}},"paths":{"/v3/parcels/{id}":{"put":{"tags":["Parcels"],"summary":"Update parcel","description":"Update an existing parcel","parameters":[{"name":"id","in":"path","required":true,"description":"Parcel ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParcelCreateRequest"}}}},"responses":{"200":{"description":"Parcel updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ParcelCreated"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}}}}
```

## Delete parcel

> Delete a parcel

```json
{"openapi":"3.0.3","info":{"title":"Packli API","version":"3.0.0"},"tags":[{"name":"Parcels","description":"Parcel management operations"}],"servers":[{"url":"https://app.packli.hu/api","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Laravel Sanctum token authentication.\nInclude the token in the Authorization header: `Bearer {your-token}`\n"}},"responses":{"Unauthorized":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"Forbidden":{"description":"Access forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/v3/parcels/{id}":{"delete":{"tags":["Parcels"],"summary":"Delete parcel","description":"Delete a parcel","parameters":[{"name":"id","in":"path","required":true,"description":"Parcel ID","schema":{"type":"integer"}}],"responses":{"200":{"description":"Parcel deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
```

## Calculate shipping price

> Calculate shipping cost for a parcel configuration

```json
{"openapi":"3.0.3","info":{"title":"Packli API","version":"3.0.0"},"tags":[{"name":"Parcels","description":"Parcel management operations"}],"servers":[{"url":"https://app.packli.hu/api","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Laravel Sanctum token authentication.\nInclude the token in the Authorization header: `Bearer {your-token}`\n"}},"responses":{"Unauthorized":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"ValidationError":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}}}},"paths":{"/v3/calculate-price":{"get":{"tags":["Parcels"],"summary":"Calculate shipping price","description":"Calculate shipping cost for a parcel configuration","parameters":[{"name":"weight","in":"query","required":true,"description":"Package weight in kg","schema":{"type":"number","minimum":0.1}},{"name":"service_id","in":"query","required":true,"description":"Provider service ID","schema":{"type":"integer"}},{"name":"warehouse_id","in":"query","required":true,"description":"Warehouse contact ID","schema":{"type":"integer"}},{"name":"contact_country","in":"query","required":true,"description":"Destination country ID","schema":{"type":"integer"}},{"name":"cod","in":"query","required":true,"description":"Cash on delivery amount","schema":{"type":"number","minimum":0}},{"name":"cod_currency","in":"query","required":true,"description":"COD currency ID","schema":{"type":"integer"}},{"name":"insurance","in":"query","required":true,"description":"Insurance amount","schema":{"type":"number","minimum":0}},{"name":"insurance_currency","in":"query","required":true,"description":"Insurance currency ID","schema":{"type":"integer"}},{"name":"extra_services[]","in":"query","required":true,"description":"Extra services configuration","schema":{"type":"array","items":{"type":"boolean"}},"style":"form","explode":true}],"responses":{"200":{"description":"Price calculation result","content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"number","description":"Base shipping price"},"cod_fee":{"type":"number","description":"Cash on delivery fee"},"fuel_fee":{"type":"number","description":"Fuel surcharge"},"extra_fee":{"type":"number","description":"Additional service fees"},"discount":{"type":"number","description":"Discount amount"},"insurance":{"type":"number","description":"Insurance fee"},"discount_percent":{"type":"number","description":"Discount percentage"},"total":{"type":"number","description":"Total shipping cost"},"return_fee":{"type":"number","description":"Return shipping fee"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/ValidationError"}}}}}}
```
