---
title: "Partage de dépenses : qui doit combien à qui (soldes et remboursements en nombre minimal)"
method: POST
path: "/v1/expenses/settle"
tags: ["B2B (v1)"]
---

# Partage de dépenses : qui doit combien à qui (soldes et remboursements en nombre minimal)

`POST /v1/expenses/settle`

## Request

- Base URL: `https://api.vitef.com`
- URL: `https://api.vitef.com/v1/expenses/settle`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string: Rend la requête rejouable sans effet en double pendant 24 h (UUID v4 recommandé). Même clé et même requête : la première réponse est renvoyée avec `Idempotent-Replayed: true`, sans nouvel envoi ni nouveau débit. Même clé pour une autre requête : 422 `idempotency_key_reused`. Requête identique encore en cours : 409 `idempotency_in_progress`.

## Request body

- ExpenseGroup
  - `people` string[], required: Participants ; désignés ensuite par leur index (0, 1, 2…).
  - `expenses` object[], required
    - `label` string, required
    - `amount` integer, required: Centimes.
    - `payer` integer, required: Index du participant qui a payé.
    - `split` object
      - `kind` 'equal' | 'exact', required: `equal` : parts égales entre `among` ; `exact` : montants de `amounts`.
      - `among` integer[]: `equal` : index des participants concernés (absent ou vide : tous).
      - `amounts` integer[]: `exact` : part de chacun en centimes, par index (0 : non concerné).

## Response `200`

Répartition

- Settlement
  - `total` integer, required: Total des dépenses, centimes.
  - `paid` integer[], required: Avancé par chacun (index des participants).
  - `share` integer[], required: Part due par chacun.
  - `balance` integer[], required: Solde : positif, on lui doit ; négatif, il doit.
  - `transfers` object[], required: Remboursements, en nombre minimal.
    - `from` integer, required
    - `to` integer, required
    - `amount` integer, required
  - `gaps` object[], required: Dépenses en montants précis dont la somme diffère du montant (écart en centimes).
    - `expense` integer, required
    - `diff` integer, required

## Other responses

- `400`: Requête invalide
- `401`: Authentification requise ou invalide
- `402`: Crédits ou paiement requis
- `403`: Accès refusé (`insufficient_scope`, `account_suspended`, `live_not_enabled`)
- `409`: Requête identique encore en cours (`idempotency_in_progress`)
- `413`: Corps trop volumineux (`payload_too_large`)
- `422`: Requête impossible à traiter ; Clé Idempotency-Key déjà utilisée pour une autre requête (`idempotency_key_reused`)
- `429`: Trop de requêtes
- `500`: Erreur interne

---

[API](https://skmtc.dev/vitef/apis/api-vitef.md) · [All operations](https://skmtc.dev/vitef/apis/api-vitef/llms.txt) · [OpenAPI document](https://skmtc.dev/vitef/apis/api-vitef/revisions/7bc459d9ef90?raw)
