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

# API Fournisseur

> Accès programmatique pour les prestataires : bons de travail, appels de service, soumissions et factures, données WrenchMode et gestion de l'inventaire.

L'API Fournisseur d'OpenWrench donne aux prestataires de services un accès programmatique à leur côté de la plateforme : réception et mise à jour des bons de travail, planification et documentation des appels de service, soumission de soumissions et de factures, extraction des données de temps des techniciens WrenchMode et gestion des achats et de l'inventaire.

## URL de base

```text theme={null}
https://api.useopenwrench.com/api/external
```

Tous les endpoints fournisseur sont sous `/v1/supplier/`.

## Authentification

Chaque requête doit comporter **deux en-têtes** : `X-API-KEY` (votre clé d'API, émise par contact fournisseur) et `OW-KEY` (le secret partagé OpenWrench émis avec la clé). La clé restreint automatiquement chaque requête à votre établissement. Vous ne voyez que les bons de travail, factures et données qui vous appartiennent. Les requêtes auxquelles il manque l'un des en-têtes renvoient `401`.

```bash theme={null}
curl -H "X-API-KEY: <your-key>" -H "OW-KEY: <shared-secret>" \
  "https://api.useopenwrench.com/api/external/v1/supplier/ping"
```

Pour obtenir une clé d'API et un secret partagé, communiquez avec [support@useopenwrench.com](mailto:support@useopenwrench.com).

Les clés n'expirent pas d'elles-mêmes. Pour en effectuer la rotation, demandez au soutien une nouvelle paire clé/secret partagé, déployez la nouvelle paire, puis demandez au soutien de révoquer l'ancienne.

## Limites de débit

10 requêtes par fenêtre de 20 secondes par clé. Au-delà, vous recevrez `429 Too Many Requests` : attendez au moins 20 secondes avant de réessayer, et espacez les tâches en arrière-plan (par exemple les exports paginés complets) pour qu'elles demeurent sous la limite.

## Garder les bons de travail synchronisés

La plupart des intégrations fournisseur existent pour répliquer la file de bons de travail OpenWrench dans un autre système. Bâtissez cela sur la poussée, pas sur le sondage :

1. Enregistrez un endpoint [webhook](/fr-CA/supplier-api/webhooks). OpenWrench envoie les événements `workorder.create`, `workorder.status_update` et `workorder.new_note` à mesure qu'ils se produisent.
2. À chaque événement, récupérez ce seul bon de travail avec `GET /v1/supplier/work_order/work_orders/{id}`.
3. Utilisez `GET /v1/supplier/work_order/work_orders` uniquement pour le chargement initial unique et la réconciliation occasionnelle, avec un filtre étroit et une petite page.

Ne sondez pas l'endpoint de liste selon un horaire pour trouver les travaux nouveaux ou modifiés. C'est la lecture la plus coûteuse de l'API, elle est lente sur les grandes files et elle rivalise avec votre vrai travail pour la limite de débit. Voir [Bons de travail](/fr-CA/supplier-api/work-orders#lire-votre-file) pour les détails.

## Enveloppe de réponse

Réponses à entité unique :

```json theme={null}
{ "type": "WorkOrder", "data": { "...": "..." }, "status": "ok" }
```

Les réponses de liste ajoutent un `count` total :

```json theme={null}
{ "type": "WorkOrder", "data": [ "..." ], "count": 42, "status": "ok" }
```

Erreurs :

```json theme={null}
{ "message": "Human-readable message", "type": "NotFoundException", "status": "error", "traceId": "abc123def45" }
```

`401` signifie une clé manquante ou invalide; `400` couvre les entrées incorrectes, les filtres invalides et les refus de permission; `429` correspond à la limite de débit.

## Pagination et filtrage

Les endpoints de liste acceptent `offset`, `limit` (par défaut 10, maximum 25), `sort_by` et `order` (`asc` | `desc`). Les autres paramètres de requête sont traités comme des filtres de champ. Passez un nom de champ avec une valeur (séparez plusieurs valeurs par des virgules) pour filtrer l'ensemble de résultats. La page de référence de chaque endpoint liste ses filtres notables.

## Formats de date

La plupart des horodatages sont des chaînes ISO 8601 avec décalage (par exemple `2026-08-14T13:05:22.000-07:00`); certains champs d'horodatage de base de données sont sérialisés au format `yyyy-MM-dd HH:mm:ss.S`. Les dates simples sont au format `yyyy-MM-dd`.

Lorsque vous envoyez des dates-heures, utilisez le format ISO 8601 avec un `T` entre la date et l'heure et un décalage explicite. Une valeur séparée par une espace comme `2026-09-10 10:43:00+00:00` n'est pas au format ISO 8601 et est rejetée; envoyez plutôt `2026-09-10T10:43:00.000+00:00`. UTC peut s'écrire `+00:00` ou `Z`.

## Données de temps des techniciens

Les endpoints WrenchMode exposent le temps de travail et de conduite par technicien : `GET /v1/supplier/wrench_mode/events/analytics/{fromDate}/{toDate}` retourne un rollup conduite/travail/total par technicien (fenêtre limitée à 1 mois), et `GET /v1/supplier/wrench_mode/events` retourne le journal d'événements brut derrière celui-ci. Les expansions d'appel de service (`/with_work_logs`, `/with_tech_details`) donnent l'histoire par visite.

## Guides détaillés

Les guides de cet onglet parcourent chaque partie de l'API en profondeur, avec des charges utiles, des modèles de statut et des modèles d'intégration :

<CardGroup cols={2}>
  <Card title="Bons de travail" href="/fr-CA/supplier-api/work-orders" icon="clipboard-list">
    Recevoir, accepter ou refuser, statuts de pièces, ECD, pièces jointes et notes.
  </Card>

  <Card title="Webhooks" href="/fr-CA/supplier-api/webhooks" icon="bolt">
    Nouveaux travaux, changements de statut et notes de l'acheteur envoyés à votre endpoint.
  </Card>

  <Card title="Appels de service" href="/fr-CA/supplier-api/service-calls" icon="truck">
    Planifier, s'enregistrer, quitter et définir le statut de fin.
  </Card>

  <Card title="WrenchMode" href="/fr-CA/supplier-api/wrenchmode" icon="stopwatch">
    Analyses par technicien et journal d'événements bruts conduite/travail.
  </Card>

  <Card title="Soumissions et facturation" href="/fr-CA/supplier-api/quotes-and-invoicing" icon="file-invoice-dollar">
    Soumettre des propositions, préparer des factures et publier avec un PDF.
  </Card>

  <Card title="Achats et inventaire" href="/fr-CA/supplier-api/purchasing-and-inventory" icon="boxes-stacked">
    Des demandes d'achat aux commandes puis aux réceptions, catalogues et stock.
  </Card>

  <Card title="Données de référence" href="/fr-CA/supplier-api/reference-data" icon="map-location-dot">
    Entreprises acheteuses, emplacements, actifs et fonctionnement du masquage de données.
  </Card>

  <Card title="Fichiers et utilisateurs" href="/fr-CA/supplier-api/files-and-users" icon="paperclip">
    Le magasin de fichiers derrière les pièces jointes et l'approvisionnement de techniciens.
  </Card>
</CardGroup>
