# Como funcionam as cotações Saiba como fornecer estimativas de preços aos clientes antes de iniciar uma assinatura ou fatura. As cotações permitem que você forneça aos seus clientes uma estimativa de preço para produtos ou serviços solicitados. Você pode combinar itens de linha recorrentes e pontuais e incluir descontos ou impostos. Após o cliente aceitar a cotação, você poderá convertê-la em uma *assinatura* (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) recorrente ou em uma *fatura* (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) única. ## Enviar e aceitar cotações Para enviar e aceitar cotações para faturas avulsas: 1. Faça login no Stripe Dashboard. 1. Na [página Seus planos](https://dashboard.stripe.com/settings/plans?utm_source=docs-quotes), registre-se para o [Invoicing Plus](https://stripe.com/invoicing/pricing). Saiba mais sobre como [acessar cotações](https://support.stripe.com/questions/how-to-access-quotes). ## Status da cotação Os status das cotações podem passar por estas transições: Como muda o status de uma cotação (See full diagram at https://docs.stripe.com/quotes) | Status | Descrição | Ações possíveis | | ---------- | ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `draft` | O status inicial de todas as cotações. Você ainda pode editar a fatura quando ela estiver em status de rascunho. | - [Finalize](https://docs.stripe.com/quotes.md#finalize) a cotação para movê-la para o status `open`. - [Cancele](https://docs.stripe.com/quotes.md#cancel) a cotação para movê-la para o status `canceled`. | | `open` | A cotação está finalizada e aguarda a ação do cliente. Agora, é possível editar somente a data de validade. | - [Aceite](https://docs.stripe.com/quotes.md#accept) a cotação para movê-la para o status `accepted`. - [Cancele](https://docs.stripe.com/quotes.md#cancel) a cotação para movê-la para o status `canceled`. | | `accepted` | O cliente aceitou a cotação. A cotação gera uma fatura, assinatura ou cronograma de assinatura. | N/D | | `canceled` | A cotação expirou ou foi cancelada, e você não pode mais aceitá-la. | N/D | ### Finalizar um rascunho de cotação As cotações são criadas inicialmente como `draft`. Neste status, você pode editar a cotação e fazer as alterações necessárias. Você pode finalizar a cotação quando estiver pronto para enviá-la ao cliente. A finalização da cotação atribui um `number`, que consiste em quatro partes: - O prefixo `QT` - Prefixo da fatura do cliente - A sequência da cotação - A sequência de revisão Por exemplo, `QT-68BB114-0001-1` é a primeira cotação para um cliente, e a cotação é na primeira revisão. Número de cotação `QT-68BB114-0001-2` é a mesma cotação, mas na segunda revisão. `QT-68BB114-0002-1` é a segunda cotação para o cliente. Você pode usar a API para finalizar uma cotação, como no exemplo a seguir: ```curl curl -X POST https://api.stripe.com/v1/quotes/qt_1HDGlYClCIKljWvsIGaAA06B/finalize \ -u "<>:" ``` As cotações podem passar do status `draft` para um dos seguintes status finais: - `open`: o endpoint da API [POST /v1/quotes/:id/finalize](https://docs.stripe.com/api/quotes/finalize.md) emite um webhook `quote.finalized`. - `canceled`: o endpoint da API [POST /v1/Quotes/:id/cancel](https://docs.stripe.com/api/quotes/cancel.md) emite um webhook `quote.canceled`. ### Aceitar uma cotação Depois que o cliente aceitar a cotação, você poderá marcar a cotação `open` como `accepted`. As cotações aceitas geram uma fatura, assinatura ou cronograma de assinatura automaticamente. - **Cotações com preços recorrentes**: um cronograma de assinatura será criado se a data efetiva da cotação estiver no futuro. Caso contrário, uma assinatura é criada. A primeira fatura da assinatura está no status `draft` com `auto_advance` definido como `true`. - **Quotes sem preços recorrentes**: uma fatura `draft` é criada com `auto_advance` definido como `false`. Você pode modificar a fatura antes de finalizar e enviá-la ao cliente para pagamento. #### Dashboard Você pode usar o Dashboard para marcar uma cotação como aceita. 1. No Stripe Dashboard, acesse a página [Cotações](https://dashboard.stripe.com/quotes). 1. Selecione a cotação que você deseja marcar como aceita. 1. Na página de detalhes da cotação, clique em **Converter em fatura** ou **Converter em assinatura**. #### API Você pode usar a API para marcar uma cotação como aceita, como mostrado no exemplo a seguir: ```curl curl -X POST https://api.stripe.com/v1/quotes/qt_1HDGlYClCIKljWvsIGaAA06B/accept \ -u "<>:" ``` Quando uma cotação muda do status `open` para `accepted`, o endpoint da API [POST /v1/Quotes/:id/accept](https://docs.stripe.com/api/quotes/accept.md) emite um Webhook `quote.accepted`. ### Cancelar uma cotação Se o seu cliente rejeitar a cotação ou você não quiser mais que ela seja válida, você poderá cancelá-la. Para isso, marque a cotação `draft` ou `open` como `canceled` ou aguarde o cancelamento automático dessas cotações ao atingirem a data de validade. Não é possível aceitar cotações canceladas. #### Dashboard Você pode usar o Dashboard para cancelar uma cotação. 1. No Stripe Dashboard, acesse a página [Cotações](https://dashboard.stripe.com/quotes). 1. Selecione a cotação que deseja cancelar. 1. Na página de detalhes da cotação, clique no menu de navegação (⋯), depois clique em **Cancelar cotação**. #### API Você pode usar a API para cancelar uma cotação, como no exemplo a seguir: ```curl curl -X POST https://api.stripe.com/v1/quotes/qt_1HDGlYClCIKljWvsIGaAA06B/cancel \ -u "<>:" ``` Quando uma cotação muda de `draft` ou `open` para o status `canceled`, o endpoint da API [POST /v1/Quotes/:id/cancel](https://docs.stripe.com/api/quotes/cancel.md) emite um Webhook `quote.canceled`. ## Baixe uma cotação em PDF Use o método PDF para [baixar uma cotação em PDF](https://docs.stripe.com/api/quotes/pdf.md): ```curl curl https://files.stripe.com/v1/quotes/qt_0J1EnX589O8KAxCGEdmhZY3r/pdf \ -u "<>:" ``` Em vez de retornar dados no formato JSON, o método PDF retorna um fluxo de dados que representa as sequências de bytes dos dados recebidos. O fluxo de bytes é lido em blocos ou segmentos à medida que os dados chegam, permitindo que você inicie o processamento dos dados recebidos antes que todo o carregamento seja concluído. Este método é especialmente útil para lidar com grandes volumes de dados ou processamento de dados em tempo real. ![PDF da cotação](https://b.stripecdn.com/docs-statics-srv/assets/generated-quote-pdf.712c5fe734adfbfbc1a7efc136e00636.png) O PDF da cotação gerada