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

> Accès programmatique à votre compte acheteur OpenWrench : bons de travail, actifs, emplacements, factures, entretien préventif et réseau de fournisseurs.

L'API Acheteur d'OpenWrench donne aux exploitants d'installations un accès programmatique à l'ensemble du côté acheteur de la plateforme : création et suivi des bons de travail, gestion des actifs et des emplacements, révision des soumissions et des factures, surveillance de l'entretien préventif et interrogation de votre réseau de fournisseurs.

## URL de base

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

Tous les endpoints acheteur sont sous `/v1/buyer/`.

## Authentification

Chaque requête doit comporter **deux en-têtes** : `X-API-KEY` (votre clé d'API, émise par contact acheteur) et `OW-KEY` (le secret partagé OpenWrench émis avec la clé). La clé restreint automatiquement chaque requête à votre entreprise. Vous ne voyez que vos propres données. 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/buyer/ping"
```

Pour obtenir une clé d'API et un secret partagé, communiquez avec [support@useopenwrench.com](mailto:support@useopenwrench.com). Utilisez `GET /v1/buyer/me` pour inspecter l'identité (contact, établissement, entreprise) associée à votre clé.

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.

<Note>
  La section **API Équipes internes** plus bas dans cet onglet utilise une **clé d'API partenaire distincte**. Votre clé acheteur ne s'authentifiera pas contre les endpoints `/v1/partners/`. Voir l'[introduction à l'API Équipes internes](/fr-CA/partners-api/introduction) pour les détails.
</Note>

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

Si votre intégration réplique les bons de travail dans un autre système (un outil de billetterie, un ERP, un entrepôt de données), bâtissez-la sur la poussée, pas sur le sondage :

1. Enregistrez un endpoint [webhook](/fr-CA/buyer-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/buyer/work_order/work_orders/{id}`.
3. Utilisez `GET /v1/buyer/work_order/work_orders` pour les requêtes ponctuelles, 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 bons de travail nouveaux ou modifiés. C'est la lecture la plus coûteuse de l'API, elle est lente sur les gros comptes et elle rivalise avec votre vrai travail pour la limite de débit. Voir [Bons de travail](/fr-CA/buyer-api/work-orders#lister-filtrer-et-compter) 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.

## 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/buyer-api/work-orders" icon="clipboard-list">
    Créer, filtrer, réaffecter, clôturer. Modèle de statut, notes et types de problèmes.
  </Card>

  <Card title="Webhooks" href="/fr-CA/buyer-api/webhooks" icon="bolt">
    Événements de création de bon de travail, de changement de statut et de nouvelle note envoyés à votre endpoint.
  </Card>

  <Card title="Appels de service" href="/fr-CA/buyer-api/service-calls" icon="user-check">
    Preuves de visite : journaux de travail, temps de travail réel et détails des techniciens.
  </Card>

  <Card title="Actifs et emplacements" href="/fr-CA/buyer-api/assets-and-locations" icon="warehouse">
    Emplacements, régions, types d'actifs, modèles, compteurs et suivi des frigorigènes.
  </Card>

  <Card title="Factures" href="/fr-CA/buyer-api/invoices" icon="file-invoice-dollar">
    Pipeline d'approbation, synchronisation avec les comptes fournisseurs, exports aplatis et mises à jour en lot.
  </Card>

  <Card title="Soumissions et propositions" href="/fr-CA/buyer-api/quotes-and-proposals" icon="file-signature">
    Lire les soumissions des fournisseurs et les réconcilier avec les factures.
  </Card>

  <Card title="Entretien préventif" href="/fr-CA/buyer-api/planned-maintenance" icon="calendar-check">
    Lire les calendriers, sauter des exécutions et piloter l'entretien préventif depuis un planificateur externe.
  </Card>

  <Card title="Réseau de fournisseurs" href="/fr-CA/buyer-api/supplier-network" icon="network-wired">
    Interroger votre réseau et classer les fournisseurs du réseau privé pour la répartition.
  </Card>

  <Card title="Inspections de site" href="/fr-CA/buyer-api/site-survey-walkthroughs" icon="clipboard-check">
    Visites d'inspection et bons de travail issus de leurs constats.
  </Card>

  <Card title="Fichiers et pièces jointes" href="/fr-CA/buyer-api/files-and-attachments" icon="paperclip">
    Téléverser une fois, référencer partout, télécharger les preuves.
  </Card>

  <Card title="Compte et utilitaires" href="/fr-CA/buyer-api/account-and-utilities" icon="id-badge">
    Ping, identité de la clé, approvisionnement d'utilisateurs et taux de change.
  </Card>
</CardGroup>
