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

# Introduction

# API Équipes internes

> Accès achats et inventaire pour vos équipes de service internes — demandes d'achat, bons de commande, réceptions, pièces et stock

L'API Équipes internes est la surface d'intégration pour les systèmes derrière les achats et l'inventaire de vos équipes de service internes : demandes d'achat et leurs postes, bons de commande jusqu'à la réception, catalogues de pièces et d'équipement, emplacements de stock et pièces consommées sur les bons de travail.

## URL de base

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

Les endpoints Équipes internes sont servis sous le préfixe de chemin `/v1/partners/`.

## Authentification

Ces endpoints requièrent une **clé d'API partenaire**, un identifiant distinct des clés d'API acheteur et fournisseur. Une clé d'API acheteur ne fonctionnera pas contre les endpoints `/v1/partners/`, même si cette section vit sous la documentation API Acheteur.

Chaque requête doit comporter **deux en-têtes** : `X-API-KEY` (la clé partenaire) et `OW-KEY` (le secret partagé OpenWrench émis avec la clé). La clé restreint automatiquement chaque requête aux données de votre entreprise. Les requêtes auxquelles il manque l'un des en-têtes renvoient `401`.

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

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

## Limites de débit

10 requêtes par fenêtre de 20 secondes par clé. Au-delà, vous recevrez `429 Too Many Requests`. Espacez vos appels et réessayez.

## Enveloppe de réponse

Réponses à entité unique :

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

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

```json theme={null}
{ "type": "SupplierPurchaseRequest", "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.

## Le flux d'achats

Une intégration typique suit le cycle de vie des achats : lire les **demandes d'achat** approuvées et leurs postes, créer un **bon de commande** auprès d'un vendeur, associer les postes de DA aux postes de BC, marquer le BC **commandé**, et enregistrer les **réceptions** au fur et à mesure que les articles arrivent (les quantités reçues négatives enregistrent des retours). Les pièces, types d'équipement, vendeurs et emplacements de stock complètent les données de référence.

## Guides détaillés

<CardGroup cols={2}>
  <Card title="Flux d'achats" href="/partners-api/purchasing-flow" icon="cart-flatbed">
    Le cycle de vie de bout en bout : demandes, commandes, postes et réceptions.
  </Card>

  <Card title="Catalogue et stock" href="/partners-api/catalog-and-stock" icon="boxes-stacked">
    Pièces, équipement, vendeurs, emplacements de stock et consommation sur bons de travail.
  </Card>
</CardGroup>
