> ## 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.

# Calculer un tarif

> Estimez le prix d'une livraison avant de créer une mission

Ce guide montre comment obtenir le tarif estimé d'une livraison à partir d'une origine, d'une destination et des caractéristiques du colis.

```mermaid theme={null}
flowchart TD
    A[Configurer la clé API] --> B[Envoyer l'origine et la destination]
    B --> C[Ajouter le poids et les dimensions]
    C --> D[Recevoir le prix et le format du colis]
```

## Configurer la clé API

Transmettez votre clé API dans l'en-tête `x-api-key` sur chaque requête. Voir [Authentification](/authentication).

```http theme={null}
x-api-key: {{PAPS_API_KEY}}
```

## Envoyer l'origine et la destination

L'endpoint `POST /marketplace` calcule le tarif estimé d'une livraison.

```http theme={null}
POST /marketplace
```

### Body

```json theme={null}
{
  "origin": "Cité Keur Gorgui, Dakar",
  "destination": "Plateau, Dakar",
  "weight": 2,
  "height": 10,
  "length": 20,
  "width": 15,
  "deliveryType": "STANDARD"
}
```

### Champs

| Champ            | Type    | Requis | Description                                                |
| ---------------- | ------- | -----: | ---------------------------------------------------------- |
| `origin`         | string  |    oui | Adresse de collecte                                        |
| `destination`    | string  |    oui | Adresse de livraison                                       |
| `weight`         | number  |    oui | Poids du colis, en kilogrammes                             |
| `height`         | number  |    non | Hauteur du colis, en centimètres                           |
| `length`         | number  |    non | Longueur du colis, en centimètres                          |
| `width`          | number  |    non | Largeur du colis, en centimètres                           |
| `deliveryType`   | string  |    non | `STANDARD` ou `RELAY_POINT`. Valeur par défaut `STANDARD`. |
| `activationESIM` | boolean |    non | Frais d'activation e-SIM. Valeur par défaut `false`.       |

## Ajouter le poids et les dimensions

Le poids est le seul champ dimensionnel obligatoire. Fournir également la hauteur, la longueur et la largeur permet à Paps de déterminer un `packageSize` plus précis.

<Tip>
  Pour calculer le tarif de plusieurs colis en une seule requête, utilisez `POST /marketplace/price-of-multiple-parcels`. Pour ne connaître que le format sans le prix, utilisez `POST /marketplace/package-size-of-multiple-parcels`.
</Tip>

## Recevoir le prix et le format du colis

### Réponse — `200`

```json theme={null}
{
  "code": 200,
  "message": "Success",
  "error": null,
  "data": {
    "distance": 3435,
    "price": 12000,
    "packageSize": "XL",
    "size": 20
  }
}
```

### Champs de réponse

| Champ         | Type   | Description                                                                  |
| ------------- | ------ | ---------------------------------------------------------------------------- |
| `distance`    | number | Distance calculée entre origine et destination, en mètres                    |
| `price`       | number | Tarif estimé, en FCFA                                                        |
| `packageSize` | string | Format de colis déterminé. Voir [Formats de colis](/concepts/package-sizes). |
| `size`        | number | Seuil (en kg) de la tranche de tarification ayant déterminé `packageSize`    |

## Erreurs possibles

Voir [Gestion des erreurs](/errors) pour la liste des codes recommandés. Une adresse invalide ou un poids manquant renvoie typiquement une erreur `400`.

## Notes et règles métier

* Le tarif retourné est une estimation ; le prix final peut être confirmé lors de la création de la mission.
* Passez ensuite à [Créer une mission](/guides/create-task) pour déclencher la livraison.
