Quotes

Brouillon de devis depuis un document (photo/PDF)

Analyse une photo ou un PDF (plan dessiné, devis ou facture manuscrit) et en crée un brouillon de devis (sans émission). Cas d'usage phare de l'artisan : bon de chantier → devis à relire. Renvoie le devis brouillon + extraction. L'analyse IA a un coût : 30 analyses par heure et par organisation, factures et devis confondus. Scope requis : quotes:draft.

post/quotes/draft/from-document

Request

  • Base URL: https://api.swipify.fr/api/v1
  • URL: https://api.swipify.fr/api/v1/quotes/draft/from-document
  • Auth: API key in header X-API-Key

Headers

Idempotency-Keystring

Clé d'idempotence (un UUID est recommandé). Optionnelle mais conseillée sur les retries réseau : la première réponse 2xx est mémorisée par (organisation, clé) ~24 h et rejouée au lieu de recréer la ressource (évite les doublons de facture/devis/client). Réutiliser la même clé pour une autre requête (méthode/chemin différents) renvoie 422. L'en-tête X-Idempotency-Key est accepté comme alias équivalent.

Request body

filestring required

Contenu du document (image ou PDF) encodé en base64. ~7,5 Mo binaire max (sous la limite de corps de 10 Mo).

mimeType'image/jpeg' | 'image/jpg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif' | 'application/pdf' required
userHintstring

Contexte libre (client, type de document, TVA, objet…) pour guider l'extraction.

clientIdinteger

Rattache un client existant ; sinon le client détecté est renvoyé dans extraction.clientName.

Response

Devis brouillon créé depuis le document

idinteger
numberstring nullable
draftNumberstring nullable
statusstring
versioninteger
objectstring nullable
datestring date-time nullable
validUntilstring date-time nullable
acceptanceModestring
includeBankDetailsboolean

Imprime le RIB de la fiche entreprise (IBAN, BIC et numéro du devis en référence) dans le bloc « Conditions / RIB » du devis, pour régler l'acompte par virement. Sans effet sans échéancier ou sans IBAN.

acceptedAtstring date-time nullable
rejectedAtstring date-time nullable
totalHTstring
totalVATstring
totalTTCstring
brandProfileKeystring nullable

Profil de marque du document. null = profil par défaut.

createdAtstring date-time

Example response

{
  "number": "DEV-2026-0007",
  "status": "accepted",
  "version": 1,
  "acceptanceMode": "PAYMENT",
  "paymentSchedule": [
    {
      "when": "À la signature du devis",
      "percent": 30
    },
    {
      "when": "À la fin de la prestation"
    }
  ],
  "brandProfileKey": "boutique-lyon",
  "extraction": {
    "confidence": 0.82
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.