# Créer et envoyer un devis Comment créer et envoyer un devis, puis le marquer comme accepté. > Vous pouvez utiliser les devis dans un *environnement de test* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes). Si vous souhaitez finaliser, télécharger ou accepter des devis en mode production pour des factures ponctuelles via l’API ou le Dashboard, vous devez passer à [Invoicing Plus](https://stripe.com/invoicing/pricing). Découvrez l’offre [qui vous convient le mieux](https://support.stripe.com/questions/how-to-access-quotes). # Dashboard > This is a Dashboard for when testing-method is without-code. View the full page at https://docs.stripe.com/quotes/create?testing-method=without-code. Les devis vous permettent de communiquer à vos prospects et clients existants le coût de produits et/ou de services qu’ils envisagent d’acquérir. Ils modélisent le coût d’une *facture* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice) ponctuelle ou celui d’un *abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis). Lorsqu’un devis que vous lui avez communiqué est accepté par votre prospect ou client, Stripe crée automatiquement les factures et abonnements correspondants. De nombreux flux de vente font usage de cet outil commun. ## Créer un devis Pour créer un devis dans le Dashboard Stripe : 1. Accédez à l’[onglet Facturation](https://dashboard.stripe.com/billing). 1. Cliquez sur **Actions rapides** > **Créer un devis** (ou accédez à l’[éditeur de devis](https://dashboard.stripe.com/test/quotes/create). 1. Sélectionnez **+ Ajouter un nouveau client**. Saisissez au moins le **nom** et l’**adresse e-mail du compte** de votre client. Cliquez sur **Ajouter un client**. 1. Sous **Postes**, ajoutez ou sélectionnez un produit. (Vous pouvez également ajouter un bon de réduction.) 1. Sélectionnez une date d’expiration. 1. (Facultatif) Rédigez un mémo et ajoutez un en-tête et un pied de page personnalisés. Vous pouvez définir le texte qui figurera par défaut sur l’en-tête et le pied de page dans le [modèle de devis](https://dashboard.stripe.com/settings/billing/quote). 1. Pour prévisualiser le PDF du devis (qui contient le numéro de devis généré) cliquez sur **Télécharger l’aperçu**. 1. Cliquez sur **Finaliser le devis**. Une fois le devis finalisé, envoyez-le à votre client : 1. Pour télécharger le devis, rendez-vous sur la **page relative aux informations du devis** > **devis au format PDF**. 1. Envoyez le PDF par e-mail à votre client pour vérification. ## Marquer un devis comme accepté Une fois que votre client a accepté le devis, facturez-le en convertissant le devis en facture ou en abonnement. Vous ne pouvez uniquement créer des factures ponctuelles lorsqu’un devis comporte *uniquement* des tarifs ponctuels. Si un devis comporte au moins un tarif récurrent, vous pouvez uniquement le convertir en abonnement. ### Convertir un devis en facture 1. Pour marquer un devis comme accepté et créer un brouillon de facture, accédez à **Convertir en facture** > **Informations du devis**. 1. Utilisez l’[éditeur de facture](https://dashboard.stripe.com/test/invoices/create) pour modifier le brouillon de la facture, le cas échéant. 1. Envoyez la facture au client par e-mail ou débitez-le automatiquement. ### Convertir un devis en abonnement 1. Dans l’éditeur de devis, choisissez un client et créez ou sélectionnez un produit doté d’un tarif récurrent. 1. Renseignez les informations relatives au devis et choisissez si vous préférez **Démarrer l’abonnement immédiatement** ou **Planifier la date de début de l’abonnement**. 1. Finalisez le devis. Le devis est marqué comme **Accepté**. 1. Accédez à **Convertir en abonnement** > **Informations des devis**. 1. Saisissez ou modifiez les informations relatives à l’abonnement, puis cliquez sur **Créer un abonnement**. Si vous planifiez l’abonnement pour qu’il démarre immédiatement, Stripe crée un abonnement actif ainsi qu’un brouillon de facture pour le paiement initial. Stripe finalise automatiquement le brouillon de la facture dans l’heure. Dans le cas contraire, l’abonnement commence à la date de début prévue. En fonction des conditions de paiement de l’abonnement, Stripe encaisse le paiement soit en débitant le moyen de paiement enregistré du client, soit en lui envoyant une facture. # API > This is a API for when testing-method is with-code. View the full page at https://docs.stripe.com/quotes/create?testing-method=with-code. Les devis vous permettent de communiquer à vos prospects et clients existants le coût de produits et/ou de services qu’ils envisagent d’acquérir. Ils modélisent le coût d’une *facture* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice) ponctuelle ou celui d’un *abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis). Lorsqu’un devis que vous lui avez communiqué est accepté par votre prospect ou client, Stripe crée automatiquement les factures et abonnements correspondants. De nombreux flux de vente font usage de cet outil commun. ## Créer un client [Côté serveur] Pour créer un devis, transmettez un poste pour chaque produit ou service. Associez un [objet Customer](https://docs.stripe.com/api/customers/object.md) au devis, représentant votre client. Après avoir [créé le client](https://docs.stripe.com/billing/customer.md), stockez la valeur `id` dans votre base de données pour pouvoir la réutiliser ultérieurement. À l’étape suivante, vous utiliserez ce client pour créer un devis. ## Créer un devis [Côté serveur] Pour créer un devis, transmettez le [client](https://docs.stripe.com/api/quotes/create.md#create_quote-customer) et les [postes](https://docs.stripe.com/api/quotes/create.md#create_quote-line_items) de votre choix. Les objets Price vous permettent de modéliser les offres que vous proposez. Pour pouvoir utiliser ces objets dans vos devis, découvrez comment [configurer votre catalogue de produits](https://docs.stripe.com/products-prices/overview.md). Vous ajoutez chacune de vos offres pertinentes à votre devis en tant que poste en spécifiant le [tarif](https://docs.stripe.com/api/quotes/create.md#create_quote-line_items-price) et la [quantité](https://docs.stripe.com/api/quotes/create.md#create_quote-line_items-quantity) voulus. Prenons l’exemple d’un devis que vous créez pour l’octroi de licences mensuelles de l’un de vos logiciels et incluant des frais initiaux de conseil pour l’installation du logiciel. Votre devis comprendra dans ce cas deux postes : - Le premier poste chiffre le coût de cinq licences de votre logiciel, facturées à hauteur de 100 USD par mois et par licence. - Le second poste chiffre vos frais de consulting ponctuels, facturés 1 000 USD. Les devis que vous créez prennent automatiquement l’état `draft`. Vous pouvez modifier les brouillons de devis en ajoutant ou en supprimant des [postes](https://docs.stripe.com/api/quotes/update.md#update_quote-line_items). ```curl curl https://api.stripe.com/v1/quotes \ -u "<>:" \ -d customer=cus_GBV60HKsE0mb5v \ -d "line_items[0][price]=price_CBb6IXqvTLXp3f" \ -d "line_items[0][quantity]=5" \ -d "line_items[1][price]=price_HGd7M3DV3IMXkC" ``` ## Envoyer un devis [Côté serveur] Une fois prêt(e) à envoyer votre devis à votre client, vous pouvez le faire passer à l’état `open` en [le finalisant](https://docs.stripe.com/api/quotes/finalize.md). Dans la mesure où le devis est destiné à un client spécifique, vous devez y associer un objet `Customer object` avant qu’il ne bascule sur le nouvel état. ```curl curl -X POST https://api.stripe.com/v1/quotes/qt_1HDGlYClCIKljWvsIGaAA06B/finalize \ -u "<>:" ``` Une fois le devis finalisé, vous pouvez le télécharger au format PDF afin d’en obtenir un aperçu. Envoyez-le par e-mail à votre client en tant que pièce jointe. #### curl ```bash curl https://files.stripe.com/v1/quotes/qt_1HDGlYClCIKljWvsIGaAA06B/pdf \ -u <>: \ -G ``` Vous pouvez également définir un [en-tête (header)](https://docs.stripe.com/api/quotes/create.md#create_quote-header), un [pied de page (footer)](https://docs.stripe.com/api/quotes/create.md#create_quote-footer) et une [description](https://docs.stripe.com/api/quotes/create.md#create_quote-memo) pour votre devis. Ces éléments seront affichés dans le PDF. Vous pouvez définir des options par défaut pour les paramètres `header`, `footer` et `description` dans le [modèle de devis](https://dashboard.stripe.com/settings/billing/quote). Veillez à conserver le devis à l’état `open` tant que votre client ne l’a pas accepté. ## Marquer un devis comme accepté [Côté serveur] Une fois que le client a accepté le devis, faites-le passer à l’état `accepted`. Cette action aura pour effet de créer automatiquement une facture ou un abonnement (selon que vous avez ajouté ou non des postes avec un tarif récurrent). Lorsque vous utilisez un devis pour un paiement ponctuel, Stripe crée une facture à l’état `draft`. Vous pouvez apporter des modifications à votre facture avant [de l’envoyer à votre client](https://docs.stripe.com/invoicing/integration.md). ```curl curl -X POST https://api.stripe.com/v1/quotes/qt_1HDGlYClCIKljWvsIGaAA06B/accept \ -u "<>:" ``` ## Optional: Convertir un devis en abonnement [Côté serveur] Pour créer un abonnement sur la base d’un devis, vous devez ajouter au moins un poste dont le tarif est récurrent. Dès lors, le devis génèrera automatiquement un abonnement lorsqu’il basculera sur l’état `accept`. Si le paramètre [recurring](https://docs.stripe.com/api/quotes/object.md#quote_object-recurring) d’un devis n’est pas défini sur `null`, alors Stripe crée un abonnement ou une planification d’abonnement une fois que le client a accepté le devis. Pour personnaliser l’abonnement, vous pouvez spécifier sa configuration à l’aide du paramètre [subscription_data](https://docs.stripe.com/api/quotes/create.md#create_quote-subscription_data). Par exemple, vous pouvez souhaiter que l’abonnement débute par une période d’essai. Il vous suffit dans ce cas de configurer le paramètre [trial_period_days](https://docs.stripe.com/api/quotes/create.md#create_quote-subscription_data-trial_period_days) pour définir la durée de cette période d’essai. ```curl curl https://api.stripe.com/v1/quotes/qt_1HDGlYClCIKljWvsIGaAA06B \ -u "<>:" \ -d "subscription_data[trial_period_days]=7" ``` Vous pouvez collecter les [données de paiement](https://docs.stripe.com/payments/save-and-reuse.md?platform=checkout) de votre client en amont. Si votre client n’a pas de [payment_method](https://docs.stripe.com/api/customers/object.md#customer_object-invoice_settings-default_payment_method) enregistré et que vous prévoyez de le débiter automatiquement définissez le paramètre [collection_method](https://docs.stripe.com/api/quotes/create.md#create_quote-collection_method) du devis `charge_automatically`. Stripe crée un abonnement avec l’état `active` et la première facture prend l’état `draft`, avec `auto_advance=true`. Nous finalisons automatiquement la facture au bout d’une heure et l’état de l’abonnement est mis à jour en conséquence. ### Créer une planification d’abonnement sur la base d’un devis Si vous voulez que votre abonnement ne débute qu’à une date donnée dans le futur, créez une [planification d’abonnement](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md). Par exemple, vous pouvez souhaiter que l’abonnement débute le premier jour du mois suivant. Définissez le paramètre [effective_date](https://docs.stripe.com/api/quotes/create.md#create_quote-subscription_data-effective_date) sur la date d’entrée en vigueur de l’abonnement : ```curl curl https://api.stripe.com/v1/quotes/qt_1HDGlYClCIKljWvsIGaAA06B \ -u "<>:" \ -d "subscription_data[effective_date]=1641013200" ```