# Doručení na výdejní místo

:::info[Rozšířená specifikace]
Jedná se o rozšířenou specifikaci API dokumentace pro endpointy `rates/get` a
`shipments/create` — parametry `pickup_branch`, `delivery_branch`,
`pickup_branch_location` a `delivery_branch_location`.
:::

Zásilku lze podat nebo doručit na podací/výdejní místo dopravce (parcel shop, výdejní box,
pobočka). Místo lze určit dvěma způsoby:

1. **Kódem místa konkrétního dopravce** — parametry `pickup_branch` / `delivery_branch`.
2. **ID lokality** (jedna adresa sdílená více dopravci) — parametry
   `pickup_branch_location` / `delivery_branch_location`.

## Kde získám kód nebo ID místa

- Endpoint [`GET /parcelpoints/list`](/api-v1/podaci-a-vydejni-mista) — číselník míst; kód
  místa je v poli `code`, ID lokality v poli `pickup_branch_location_id`.
- [Mapový widget](/map_widget) — interaktivní výběr místa přímo na vašem webu; vrací
  objekt [ParcelPoint](/api-v1/~schemas#parcelpoint) se stejnými poli.

## Určení místa kódem dopravce

| Parametr | Typ | Popis | Povinný |
| --- | --- | --- | --- |
| `pickup_branch` | string | kód **podacího** místa ([ParcelPoint](/api-v1/~schemas#parcelpoint).`code`) | ne |
| `delivery_branch` | string | kód **výdejního** místa | ne |
| `carrier` | string(20) | kód dopravce — **povinný spolu s kódem místa** | ano\* |

:::note
\* Kód místa je unikátní pouze v rámci dopravce, proto je při použití `pickup_branch` nebo
`delivery_branch` nutné uvést i `carrier`. Podací i výdejní místo musí patřit **stejnému
dopravci**.
:::

Speciální hodnota `pickup_branch: "1"` znamená *podání na libovolné pobočce dopravce* — použije
se, pokud odesílatel odnese zásilku na pobočku sám a nechcete určovat konkrétní místo.

## Určení místa ID lokality

| Parametr | Typ | Popis | Povinný |
| --- | --- | --- | --- |
| `pickup_branch_location` | int | ID lokality pro podání | ne |
| `delivery_branch_location` | int | ID lokality pro doručení | ne |

Lokalita sdružuje místa více dopravců na stejné adrese — konkrétní místo se dohledá podle
zvolené přepravní služby (`service_id`). Lokalita musí zvolenému dopravci sloužit, jinak
požadavek skončí validační chybou.

## Na co si dát pozor

- **Rozměry balíku** se při vytvoření zásilky kontrolují proti limitům konkrétního místa
  (např. velikost schránky boxu). Překročení limitu vrátí chybu
  `Package size is too big for this pickup branch.`
- Některé přepravní služby doručení na výdejní místo **vyžadují** (`delivery_branch_required`
  v nabídce [Rate](/api-v1/~schemas#rate)), jiné ho nepodporují vůbec — dostupnost
  ověříte přes `rates/get`.
- U dobírky na výdejní místo platí [omezení dopravců](/api/v1/cod#omezení-dopravců).

## Příklad dotazu

Příklad těla požadavku `POST /shipments/create` s doručením na výdejní místo Zásilkovny:

```json
{
    "currency": "CZK",
    "payment_type": "CREDIT",
    "shipments": [
        {
            "carrier": "ZASILKOVNA",
            "pickup_date": "2026-07-10",
            "delivery_branch": "12345",
            "from": {
                "id": 1001
            },
            "to": {
                "firstname": "Karel",
                "surname": "Dvořák",
                "country": "CZ",
                "phone": "+420602111222",
                "email": "karel.dvorak@example.com"
            },
            "packages": [
                {
                    "weight": 2,
                    "width": 20,
                    "height": 15,
                    "length": 30
                }
            ]
        }
    ]
}
```

Stejné parametry přijímá i `rates/get` — před objednávkou tak ověříte cenu a dostupnost
doručení na zvolené místo.
