---
title: "Créer un brouillon de facture depuis un devis"
method: POST
path: "/quotes/{id}/invoice-draft"
tags: ["Quotes"]
---

# Créer un brouillon de facture depuis un devis

`POST /quotes/{id}/invoice-draft`

## Request

- Base URL: `https://api.swipify.fr/api/v1`
- URL: `https://api.swipify.fr/api/v1/quotes/{id}/invoice-draft`
- Auth: API key in header `X-API-Key`

Convertit un devis (au moins **validé**, total HT non nul) en BROUILLON de facture relié au devis. Lignes, objet, remises et totaux sont repris du devis ; le devis reste inchangé. Sans émission : ni numéro officiel, ni PDF, ni transmission ; le brouillon se finalise dans l'app. Scopes requis : `quotes:read` ET `invoices:draft`.

## Path parameters

- `id` integer, required

## Headers

- `Idempotency-Key` string

## Response `201`

Brouillon de facture créé

- Invoice
  - `id` integer
  - `number` string, nullable
  - `draftNumber` string, nullable
  - `status` string
  - `object` string, nullable
  - `date` string, date-time, nullable
  - `dueDate` string, date-time, nullable
  - `paidDate` string, date-time, nullable
  - `totalHT` string
  - `totalVAT` string
  - `totalTTC` string
  - `einvoiceStatus` 'pending' | 'delivered' | 'accepted' | 'rejected' | 'paid' | 'reported' | 'error' | 'null', nullable: Statut de cycle de vie e-invoice (PA). null si pas de cycle (brouillon/non conforme). `rejected` = refusée par la plateforme. `reported` = vente à un particulier, transmise en e-reporting : pas d'e-facture, donc ni remise ni acceptation client.
  - `brandProfileKey` string, nullable: Profil de marque du document. `null` = profil par défaut.
  - `reminderCount` integer: Nombre de relances d'impayé envoyées (manuelles et automatiques). L'envoi d'une relance reste un geste dans l'application, jamais un appel API.
  - `reminderLastSentAt` string, date-time, nullable: Date de la dernière relance d'impayé, null si jamais relancée.
  - `remindersPaused` boolean: true si les relances automatiques sont suspendues pour cette facture.
  - `recurring` boolean: true si la facture a été générée par une facture récurrente.
  - `createdAt` string, date-time

## Other responses

- `401`: Échec d'authentification : clé API manquante (`missing_api_key`) ou invalide/révoquée/expirée (`invalid_api_key`). Le client doit présenter une clé valide.
- `403`: Clé authentifiée mais non autorisée : scope insuffisant pour cette route (`scope_required`), ou organisation sans abonnement Pro actif (`pro_required`). `GET /me` reste accessible sans Pro pour diagnostiquer la clé.
- `404`: Ressource introuvable
- `409`: Devis non convertible (statut < validé ou total à 0 €) ou Idempotency-Key en cours
- `422`: Idempotency-Key déjà utilisée pour une AUTRE requête (méthode/chemin divergents)
- `429`: Trop de requêtes (quota de la clé API, ou de l'organisation pour les analyses de document, dépassé pour la fenêtre courante)

---

[API](https://skmtc.dev/swipify/apis/swipify-api-publique.md) · [All operations](https://skmtc.dev/swipify/apis/swipify-api-publique/llms.txt) · [OpenAPI document](https://skmtc.dev/swipify/apis/swipify-api-publique/revisions/44c17201b479?raw)
