> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneclickdz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vérifier le Statut d'une Commande

> Obtenez le statut de la commande et récupérez les cartes lorsqu'elle est livrée

## Vue d'ensemble

Vérifiez le statut de la commande et récupérez les codes de cartes lorsque la commande est livrée.

## Paramètres de chemin

<ParamField path="orderId" type="string" required>
  ID de commande provenant de la réponse `/placeOrder`
</ParamField>

## Réponse

<ResponseField name="data" type="object">
  <Expandable title="propriétés">
    <ResponseField name="status" type="string">
      * **HANDLING :** En cours de traitement - **FULFILLED :** Terminé, cartes disponibles ✅ -
        **PARTIALLY\_FILLED :** Certaines cartes livrées ⚠️ - **REFUNDED :** Échoué et remboursé ❌
    </ResponseField>

    <ResponseField name="quantity" type="number">
      Quantité de la commande d'origine
    </ResponseField>

    <ResponseField name="fulfilled_quantity" type="number">
      Nombre de cartes livrées
    </ResponseField>

    <ResponseField name="fulfilled_amount" type="number">
      Montant total facturé
    </ResponseField>

    <ResponseField name="price_per_card" type="number">
      Prix par carte
    </ResponseField>

    <ResponseField name="cards" type="array">
      Tableau d'objets carte (lorsque FULFILLED ou PARTIALLY\_FILLED)

      <Expandable title="objet carte">
        <ResponseField name="value" type="string">
          Code/PIN de la carte (identifiant principal)
        </ResponseField>

        <ResponseField name="serial" type="string">
          Numéro de série de la carte (identifiant secondaire)
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Exemples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.oneclickdz.com/v3/gift-cards/checkOrder/6901616fe9e88196b4eb64b3 \
    -H "X-Access-Token: YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const orderId = "6901616fe9e88196b4eb64b3";
  const response = await fetch(
    `https://api.oneclickdz.com/v3/gift-cards/checkOrder/${orderId}`,
    { headers: { "X-Access-Token": "YOUR_API_KEY" } }
  );
  const { data } = await response.json();

  if (data.status === "FULFILLED") {
    console.log("Cards:", data.cards);
  }
  ```

  ```python Python theme={null}
  response = requests.get(
      f'https://api.oneclickdz.com/v3/gift-cards/checkOrder/{order_id}',
      headers={'X-Access-Token': 'YOUR_API_KEY'}
  )
  data = response.json()['data']

  if data['status'] == 'FULFILLED':
      for card in data['cards']:
          print(f"Code: {card['value']}, Serial: {card['serial']}")
  ```

  ```php PHP theme={null}
  <?php
  $orderId = '6901616fe9e88196b4eb64b3';
  $ch = curl_init("https://api.oneclickdz.com/v3/gift-cards/checkOrder/{$orderId}");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Access-Token: YOUR_API_KEY']);
  $response = curl_exec($ch);
  $result = json_decode($response, true);
  $data = $result['data'];

  if ($data['status'] === 'FULFILLED') {
      foreach ($data['cards'] as $card) {
          echo "Code: " . $card['value'] . ", Serial: " . $card['serial'] . "\n";
      }
  }
  ?>
  ```
</CodeGroup>

### Réponse en cours de traitement

```json theme={null}
{
  "success": true,
  "data": {
    "_id": "6901616fe9e88196b4eb64b3",
    "status": "HANDLING",
    "quantity": 2,
    "product": "507f1f77bcf86cd799439011",
    "type": "type_001",
    "time": "2025-10-29T01:00:00.000Z"
  }
}
```

### Réponse lorsque livrée

```json theme={null}
{
  "success": true,
  "data": {
    "_id": "6901616fe9e88196b4eb64b3",
    "status": "FULFILLED",
    "quantity": 2,
    "fulfilled_quantity": 2,
    "fulfilled_amount": 980,
    "price_per_card": 490,
    "cards": [
      {
        "value": "XXXX-XXXX-XXXX-XXXX",
        "serial": "123456789"
      },
      {
        "value": "YYYY-YYYY-YYYY-YYYY",
        "serial": "987654321"
      }
    ],
    "time": "2025-10-29T01:00:00.000Z"
  }
}
```

## Exemple d'interrogation

```javascript theme={null}
async function pollOrder(orderId) {
  const maxAttempts = 60;

  for (let i = 0; i < maxAttempts; i++) {
    const response = await fetch(
      `https://api.oneclickdz.com/v3/gift-cards/checkOrder/${orderId}`,
      { headers: { "X-Access-Token": process.env.API_KEY } }
    );

    const { data } = await response.json();

    if (["FULFILLED", "PARTIALLY_FILLED", "REFUNDED"].includes(data.status)) {
      return data;
    }

    await new Promise((resolve) => setTimeout(resolve, 5000));
  }

  throw new Error("Timeout");
}
```

## Gestion des statuts

<AccordionGroup>
  <Accordion title="FULFILLED">
    Toutes les cartes livrées avec succès

    * `fulfilled_quantity === quantity`
    * Toutes les cartes disponibles dans le tableau `cards`
    * Livrez au client
  </Accordion>

  <Accordion title="PARTIALLY_FILLED">
    Certaines cartes livrées, le reste annulé

    * `fulfilled_quantity < quantity`
    * Remboursement partiel effectué
    * Livrez les cartes disponibles
    * Remboursez la différence au client
  </Accordion>
</AccordionGroup>

## Liens utiles

<CardGroup cols={2}>
  <Card title="Passer une Commande" icon="cart-shopping" href="/fr/api-reference/gift-cards/place-order">
    Créer une nouvelle commande
  </Card>

  <Card title="Liste des Commandes" icon="list" href="/fr/api-reference/gift-cards/list-orders">
    Voir toutes les commandes
  </Card>
</CardGroup>
