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

# Scénario Postman

> Testez le parcours complet de l'API Paps avec Postman

Ce scénario reproduit dans Postman le parcours complet décrit dans les guides d'intégration : du calcul de tarif à la génération du bordereau.

<Info>
  Aucune collection Postman officielle n'est publiée pour le moment. Les étapes ci-dessous décrivent comment construire votre propre scénario de test.
</Info>

## Variables d'environnement

Créez un environnement Postman avec les variables suivantes :

| Variable        | Description                                  |
| --------------- | -------------------------------------------- |
| `BASE_URL`      | URL de l'environnement sandbox               |
| `PAPS_API_KEY`  | Votre clé API                                |
| `CLIENT_ID`     | Identifiant client (authentification Bearer) |
| `CLIENT_SECRET` | Secret client (authentification Bearer)      |
| `ACCESS_TOKEN`  | Token JWT obtenu via `/auth/login`           |
| `TASK_ID`       | Identifiant de mission retourné par `/tasks` |
| `ORDER_UID`     | UID de commande retourné après création      |

Configurez l'en-tête `x-api-key: {{PAPS_API_KEY}}` au niveau de la collection pour l'appliquer à toutes les requêtes.

## Étapes du scénario

<Steps>
  <Step title="Calculer un tarif">
    `POST {{BASE_URL}}/marketplace` avec une origine, une destination et le poids du colis. Vérifiez que `data.price` est retourné.
  </Step>

  <Step title="Créer une mission">
    `POST {{BASE_URL}}/tasks` avec les informations du destinataire et des colis. Enregistrez l'identifiant retourné dans la variable `TASK_ID` via un script de test Postman :

    ```javascript theme={null}
    const response = pm.response.json();
    pm.environment.set("TASK_ID", response.data.job_type);
    ```
  </Step>

  <Step title="Suivre la commande">
    `GET {{BASE_URL}}/orders/fetch/{{ORDER_UID}}` pour consulter le statut courant.
  </Step>

  <Step title="Consulter l'historique">
    `GET {{BASE_URL}}/orders/history?sourceUid={{ORDER_UID}}&context=...` pour lister les événements associés.
  </Step>

  <Step title="Générer le bordereau">
    `GET {{BASE_URL}}/waybills/orders/{{ORDER_UID}}` pour récupérer le bordereau PDF de la commande.
  </Step>
</Steps>

## Assertions recommandées

Pour chaque requête, ajoutez un test vérifiant l'enveloppe de réponse :

```javascript theme={null}
pm.test("Réponse au format attendu", function () {
  const body = pm.response.json();
  pm.expect(body).to.have.property("code");
  pm.expect(body).to.have.property("message");
  pm.expect(body).to.have.property("data");
});
```
