# Vérification de la Disponibilité via l'API Yoplanning

**Endpoint: /api/v3.1/teams/\[teamId]/convalida dell'ordine**

Questo metodo API consente di verificare se il contenuto del carrello è ancora disponibile prima di finalizzare l'ordine. È particolarmente utile per evitare situazioni di overbooking nei casi in cui più clienti effettuano prenotazioni contemporaneamente.

***

**Esempio di utilizzo con CURL**

**Punto finale:**

```
/api/v3.1/teams/[teamId]/order-validation
```

**Descrizione:**

Devi inviare lo stesso JSON utilizzato per effettuare un ordine, l'unica differenza è l'URL.

**Esempio :**

```bash
curl -H "Content-Type: application/json" -X POST -d '{
    "external_reference" : "956",
    "items" : [{
        "session_group" : "53071a97-0c2d-4973-89f5-cafd10665b3b",
        "price" : {"amount" : 51.25},
        "client" : {
            "id" : "71ea849f-226c-4302-a433-528179634aa7",
            "first_name" : "John",
            "last_name" : "Doe",
            "email" : "john.doe@gmail.com"
        }
    }],
    "payments" : [{
        "amount" : 51.25,
        "client" : {
            "first_name" : "Framold",
            "last_name" : "Doe",
            "email" : "john.doe@gmail.com"
        }
    }]
}' https://yoplanning.pro/api/v3.1/teams/5a90332e-568f-4980-9859-88a984844a4d/order-validation -H 'Authorization: Token 4504c2cb0d87a93106d4de029f407c86149f2ada'
```

**Risposta in caso di disponibilità:**

```json
{
    "success": true
}
```

**Risposta in caso di indisponibilità:**

```json
{
    "success": false, 
    "unavailable_items": {
        "group_ids": ["2265cac0-cba5-46eb-8095-b89f93e7473f"], 
        "dry_resource_ids": [], 
        "voucher_ids": [], 
        "resources": []
    }
}
```

***

**Suggerimenti per l'uso e best practice**

1. **Controlla prima di finalizzare ogni ordine:** utilizza questo metodo prima di finalizzare un ordine per assicurarti che tutte le risorse necessarie siano ancora disponibili.
2. **Gestione degli errori:** In caso di indisponibilità, fornire un'adeguata gestione degli errori per informare il cliente e offrire alternative.
3. **Automazione:** integra questa verifica in un processo automatizzato per transazioni in tempo reale, soprattutto durante i periodi di elevata attività.

***

**Errori comuni e soluzioni**

1. **Errore 404 non trovato):**
   * **Causa:** Endpoint non valido o ID team errato.
   * **Soluzione:** controlla l'URL e il teamId utilizzato.
2. **Errore 401 (non autorizzato):**
   * **Causa:** Problema di autenticazione.
   * **Soluzione:** controlla il token di autenticazione e assicurati che sia valido e attivo.
3. **Errore 400 (richiesta errata):**
   * **Causa:** Formato JSON non corretto o dati mancanti.
   * **Soluzione:** verifica che il JSON inviato sia formattato correttamente e che siano incluse tutte le informazioni necessarie.
