Integrar com a API Invoicing
Saiba como criar e enviar uma fatura com código.
O Dashboard é o caminho mais comum para criar faturas. Se quiser automatizar a criação de faturas, você pode integrar a API. Crie uma integração completa e operacional do Invoicing usando o exemplo de integração.
Observação
Não é preciso fazer integração com a API Payments para integrar com a API Invoicing.
Configurar a Stripe
Use nossas bibliotecas oficiais para acessar a API Stripe:
Criar um produto
Para criar um produto, informe o nome dele:
Criar um preço
Preços definem quanto e com que frequência cobrar os produtos. Você define o custo do produto, a moeda a ser usada e o intervalo de cobrança (quando o preço refere-se a uma assinatura). Assim como os produtos, se você tem poucos preços, é preferível gerenciá-los no Dashboard. Use o valor unitário para expressar preços na menor unidade da moeda, neste caso, centavos (10 USD são 1.000 centavos, portanto, o valor unitário é 1000).
Observação
Se não for preciso criar um preço para seu produto, você também pode usar o parâmetro value durante a criação do item da fatura.
Para criar um preço e atribuí-lo ao produto, passe o ID, o valor unitário e a moeda do produto. Neste exemplo, o preço do produto “Gold Special” é US$ 10:
Criar um cliente
O objeto Customer representa o cliente que compra seu produto e é obrigatório para criar uma fatura. Para criar um cliente com name
, email
e description
, adicione este código, substituindo os valores pelos seus próprios valores:
Após criar o cliente, armazene o id
do cliente no seu banco de dados para usá-lo mais tarde. A próxima etapa, por exemplo, usa o ID do cliente para criar uma fatura.
Observação
Consulte Criar um cliente para ver mais parâmetros.
Criar uma fatura
Defina o atributo collection_method como send_
. Para a Stripe marcar uma fatura como vencida, é preciso adicionar o parâmetro days_until_due. Quando você envia uma fatura, a Stripe envia ao cliente um e-mail com instruções de pagamento.
Em seguida, crie um item de fatura passando um id
de cliente, um price
de produto e um ID de fatura invoice
. Adicione itens de fatura a um único cliente por vez para evitar adicioná-los ao cliente errado.
O número máximo de itens da fatura é 250.
Se você definir auto_
como false
, continue a modificar a fatura até finalizá-la. Para finalizar uma fatura provisória, use o Dashboard para pagá-la ou enviá-la ao cliente. Também é possível usar a API Finalize:
Observação
Se você criou a fatura por engano, anule-a. Você também pode marcar uma fatura como incobrável.
Gerenciar eventos pós-pagamento
A Stripe envia um evento invoice.paid quando o pagamento de uma fatura é concluído. Ouça este evento para garantir um execução confiável. Se a sua integração depender apenas de um retorno de chamada no lado do cliente, o cliente poderá perder a conexão antes que o retorno de chamada seja executado, o que faria com que o cliente fosse cobrado sem que seu servidor fosse notificado. Configurar a integração para ouvir eventos assíncronos também permite aceitar diferentes formas de pagamento com uma única integração.
Observação
Os pagamentos de fatura bem-sucedidos acionam os eventos invoice.paid e invoice.payment_succeeded. Os dois tipos de evento contêm os mesmos dados de fatura, por isso é necessário ouvir apenas um deles para receber notificação sobre pagamentos de fatura bem-sucedidos. A diferença é que os eventos invoice.
são enviados em caso de pagamentos de fatura bem-sucedidos, mas não são enviados quando você marca uma fatura como paid_out_of_band. Os eventos invoice.
, por outro lado, são acionados em caso de pagamentos bem-sucedidos e pagamentos fora da Stripe. Como invoice.
cobre os dois cenários, normalmente recomendamos ouvir invoice.
em vez de invoice.
.
Use a ferramenta de webhook do Dashboard ou siga o início rápido do webhook para receber esses eventos e executar ações, como enviar um e-mail de confirmação do pedido ao cliente, registrar a venda em um banco de dados ou iniciar um fluxo de trabalho de envio.
Além de gerenciar o evento invoice.
, recomendamos gerenciar dois outros eventos ao coletar pagamentos com o Payment Element:
Evento | Descrição | Ação |
---|---|---|
payment_intent.processing | Enviado quando um cliente inicia um pagamento, mas o pagamento ainda não foi concluído. Esse evento normalmente é enviado quando um débito bancário é iniciado. Ele é seguido por um evento invoice. ou invoice. no futuro. | Envie ao cliente uma confirmação do pedido que indica que o pagamento está pendente. Para produtos digitais, pode ser necessário executar o pedido antes de aguardar a conclusão do pagamento. |
invoice.payment_failed | Enviado quando um cliente tenta pagar uma fatura, mas o pagamento falha. | Se um pagamento passou de processing para payment_ , ofereça ao cliente outra tentativa para pagar. |
OpcionalPersonalizar uma fatura
As faturas podem ser personalizadas de várias maneiras. As opções de personalização da Stripe permitem adicionar sua própria marca e modificar suas faturas de acordo com os requisitos de cada jurisdição.
Campos personalizados
Adicione campos personalizados para aprimorar os documentos PDF da fatura e ajudar você a cumprir suas obrigações de práticas comerciais e declarações fiscais. Os campos personalizados permitem fornecer até quatro pares de valor de chave que são exibidos no cabeçalho da fatura. É possível configurar até quatro pares de valor de chave no Editor de faturas, com a API Invoices ou com os modelos de fatura.
Veja a seguir alguns usos comuns dos campos personalizados:
- Números de ordem de compra (OC)
- Números do prestador de serviços
- Conformidade fiscal
Este é um exemplo de criação de uma fatura com um número de pedido e um imposto sobre valor agregado (IVA) como campos personalizados:
Herança de campos personalizados
Você pode definir campos de fatura personalizados no objeto Customer. Qualquer campo personalizado definido para um cliente vale para todas as faturas provisórias geradas para esse cliente. Esses campos personalizados herdados podem ser alterados enquanto a fatura estiver em rascunho. Após a finalização da fatura, não é possível atualizar campos personalizados.
Este é um exemplo da adição de campos personalizados por cliente para aplicação em todas as faturas provisórias futuras: