---
name: s14-factures-fournisseur-par-nom
description: Trouver toutes les factures et dépenses d'un fournisseur en recherchant par nom
tags: [fournisseurs, payables, get_suppliers, get_payables, recherche]
when_to_use: Quand l'utilisateur veut voir les factures, paiements ou dépenses d'un fournisseur spécifique (ex : "toutes les factures Stripe", "dépenses AWS du trimestre")
---

# Recherche factures par fournisseur (nom → ID → payables)

## Étape 1 — Résoudre le nom → ID fournisseur

`get_suppliers` avec le paramètre `search` (recherche libre, partielle ou exacte) :

```json
{
  "companyId": "<companyId>",
  "search": "<nom partiel ou exact>",
  "pageSize": 5
}
```

→ `search` fait une recherche libre : `"Stripe"` trouve `"Stripe"`, `"STRIPE EUR"`, `"STRIPE TECHNOLOGY EUROPE, LIMITED"`
→ Inspecter les résultats pour identifier le bon fournisseur par `legalName`, `iban`, `vatNumber`
→ Extraire l'`id` du fournisseur cible

**Pattern accountPayable consolidé :** Un fournisseur comme "STRIPE EUR" peut avoir un `accountPayable.supplierIds` listant 400+ IDs — c'est un compte fournisseur de consolidation (plusieurs lignes fournisseur distinctes pointent vers la même entrée comptable). Choisir le fournisseur correspondant à l'entité légale souhaitée pour le filtre payables.

## Étape 2 — Filtrer les payables par supplierId

`get_payables` avec filtre `supplier` :

```json
{
  "companyId": "<companyId>",
  "filters": {
    "field": "supplier",
    "operator": "=",
    "value": ["<supplierId>"]
  },
  "pageSize": 20
}
```

→ Retourne tous types de payables liés à ce fournisseur (`invoicePurchase`, `subscription`, `singleCardPurchase`, etc.)
→ Le champ `counterparty.supplierId` sur chaque payable confirme le lien avec le fournisseur
→ Si `hasNextPage: true` → paginer avec le curseur pour récupérer l'historique complet

## Champs clés des résultats

| Champ | Description |
|-------|-------------|
| `description` | Libellé de la facture / dépense |
| `payableType` | Type : `invoicePurchase`, `subscription`, `singleCardPurchase`, etc. |
| `state` | Statut comptable (`exported`, `toExport`, `toPrepare`) |
| `amount` | Montant en devise de la transaction (coefficient entier / 10^precision) |
| `functionalAmount` | Montant en EUR fonctionnel |
| `currency` | Devise de la transaction (peut être GBP, USD, etc.) |
| `creationDate` | Date de la dépense |
| `accountPayableId` | Référence comptable fournisseur (plusieurs payables peuvent partager le même AP) |

## Cas multi-devises

Un même fournisseur peut avoir des payables en plusieurs devises (ex : Stripe avec EUR et GBP pour des frais UK) :

```json
{
  "currency": "GBP",
  "functionalCurrency": "EUR",
  "functionalExchangeRate": 1.0873,
  "amount": { "amount": 1500, "currency": "GBP", "precision": 2 },
  "functionalAmount": { "amount": 1631, "currency": "EUR", "precision": 2 }
}
```

→ Toujours sommer `functionalAmount` pour les totaux EUR — ne jamais sommer `amount` cross-devises.

## Ajouter un filtre de période

```json
{
  "companyId": "<companyId>",
  "filters": { "field": "supplier", "operator": "=", "value": ["<supplierId>"] },
  "fromDate": "2026-01-01",
  "toDate": "2026-06-30",
  "pageSize": 20
}
```

## Note : pas de nom dans la réponse payables

Le champ `counterparty` ne contient que `supplierId` — pas de `name`. Pour afficher le nom du fournisseur dans un tableau de résultats, conserver le nom obtenu à l'étape 1 ou appeler `get_supplier_by_id(supplierId)`.

## Exemples de prompts

- "Montre-moi toutes les factures Stripe du 1er semestre 2026"
- "Quel est le total dépensé chez AWS cette année ?"
- "Quelles sont les factures en attente d'export pour le fournisseur Salesforce ?"
