Devis
Calculez un devis pour une course A→B : prix HT, TVA, distance et durée — sans créer de ressource.
POST/v1/quotes
Calculate a quote
Calcule le prix d'une course A→B en utilisant la grille tarifaire de votre compte (par défaut ou explicite). Ne crée aucune ressource. N'utilise pas votre quota de calcul de distance.
Body fields
| Name | Type | Required | Description |
|---|---|---|---|
pickup | string | required | Pickup address (formatted). e.g. "10 rue de Rivoli, 75004 Paris" |
dropoff | string | required | Drop-off address (formatted). e.g. "15 avenue Montaigne, 75008 Paris" |
serviceTierId | string (Mongo ID) | required | Service tier identifier (e.g. "Berline", "Van"). |
pricingSchemeId | string (Mongo ID) | optional | Override the user's default pricing scheme. Must be of type STANDARD. |
tripType | "TRIP" | "AVAILABILITY" | optional | TRIP = standard A→B (VAT 10%). AVAILABILITY = vehicle-with-driver service (VAT 20%). Defaults to TRIP. |
scheduledAt | string (ISO 8601) | optional | Scheduled pickup time. Used for traffic-aware ETA when present. |
Response fields
| Name | Type | Required | Description |
|---|---|---|---|
route.distanceKm | number | required | Total distance in kilometres (2-decimal precision). |
route.durationMinutes | number | required | Total duration in minutes, traffic-aware when scheduledAt is recent. |
price.totalCents | integer | required | Pre-VAT total in cents (HT). |
vat.rate | number | required | Applied VAT rate (0, 10 or 20). 0 if the user is VAT-exempt. |
vat.totalTTC | number | required | Final price in EUR (TTC) — what the rider pays. |
Example
curl -X POST https://api.mastro.app/v1/quotes \
-H "Authorization: Bearer $MASTRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pickup": "10 rue de Rivoli, 75004 Paris",
"dropoff": "Aéroport CDG, 95700 Roissy",
"serviceTierId": "65a1f3e7c8b1d2e3f4a5b6c7"
}'Error codes
SERVICE_TIER_NOT_FOUNDPRICING_SCHEME_NOT_FOUNDPRICING_SCHEME_REQUIREDPRICING_SCHEME_NOT_QUOTE_CAPABLERATE_LIMITED