0Pricing
Stripe Payments & SaaS Billing Systems · 课时

生成并发送专业发票

为客户创建、定制并自动发送适用于一次性和周期性支付的专业发票。

生成并发送专业发票 是 CoddyKit 上的免费 Stripe Payments & SaaS Billing Systems 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Stripe Payments & SaaS Billing Systems 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Stripe Payments & SaaS Billing Systems 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Welcome to Stripe Invoicing

Invoices are formal requests for payment, crucial for businesses providing services or goods. They provide a clear record of transactions for both you and your customers.

Stripe Invoicing is a powerful tool that helps you create, send, and manage professional invoices efficiently, whether for one-time services or recurring subscriptions.

Why Use Stripe Invoicing?

Leveraging Stripe for invoicing brings many benefits, simplifying your financial operations:

  • Automation: Automatically generate invoices for subscriptions or send reminders for overdue payments.
  • Professionalism: Customize invoices with your branding for a consistent customer experience.
  • Tracking: Easily monitor invoice statuses (draft, open, paid) directly from your Stripe Dashboard.
  • Compliance: Helps with financial record-keeping and tax compliance (especially when combined with Stripe Tax).

Anatomy of a Stripe Invoice

A typical Stripe invoice includes several key elements:

  • Customer Details: Who is being billed.
  • Line Items: Descriptions of products or services, quantities, and prices.
  • Subtotal: The total cost before taxes and discounts.
  • Tax: Applicable sales tax (if configured with Stripe Tax).
  • Total Due: The final amount the customer needs to pay.
  • Due Date: When the payment is expected.
  • Payment Status: Indicates if the invoice is paid, due, or overdue.

Crafting One-Time Invoices

For one-off services or custom orders, you can create a single invoice. This often involves two main steps: creating invoice items and then creating the invoice itself.

Invoice items are specific charges that are added to a customer's pending invoice. When you create an invoice, these items are included.

Try this Python example to create an invoice item and a draft invoice:

import stripe

# In a real app, load this securely from environment variables
stripe.api_key = "sk_test_YOUR_SECRET_KEY"

try:
    # 1. Create an Invoice Item
    # This item will be added to the customer's next invoice
    invoice_item = stripe.InvoiceItem.create(
        customer="cus_Nxxxxxxxxx", # Replace with a real customer ID
        amount=2000, # $20.00
        currency="usd",
        description="Consulting Service (2 hours)"
    )
    print(f"Created Invoice Item: {invoice_item.id}")

    # 2. Create a Draft Invoice for the customer
    # This invoice will include the invoice item created above
    invoice = stripe.Invoice.create(
        customer="cus_Nxxxxxxxxx", # Same customer ID
        collection_method="send_invoice", # We'll send it manually later
        days_until_due=7
    )
    print(f"Created Draft Invoice: {invoice.id}")
    print("Invoice is in 'draft' status. Preview and send it!")

except stripe.error.StripeError as e:
    print(f"Error creating invoice: {e}")

Customizing Your Invoices

Make your invoices reflect your brand! Stripe allows extensive customization via the Dashboard settings (Settings > Branding) or through the API when creating invoices.

  • Logo & Color: Upload your logo and set a brand color.
  • Footer: Add custom text, like 'Thank you for your business!' or legal disclaimers.
  • Memo: Include a short note specific to each invoice.
  • Custom Fields: Add fields for purchase order numbers, vendor IDs, etc.

These customizations ensure a professional and consistent brand experience for your customers.

Delivering Your Invoices

Once you've created a draft invoice and confirmed its details, the next step is to send it to your customer. Stripe can do this automatically via email.

You can send invoices manually through the Dashboard, or programmatically using the API, which gives you more control over the timing.

Here's how to send an existing draft invoice using the Stripe API:

import stripe

stripe.api_key = "sk_test_YOUR_SECRET_KEY"

try:
    # Replace with a real draft invoice ID from your Stripe account
    invoice_id = "in_1Nxxxxxxxxx"

    # Retrieve the invoice to check its status (optional, good practice)
    invoice = stripe.Invoice.retrieve(invoice_id)
    print(f"Retrieved Invoice {invoice.id} with status: {invoice.status}")

    if invoice.status == "draft":
        # Send the invoice to the customer
        sent_invoice = stripe.Invoice.send_invoice(invoice_id)
        print(f"Invoice {sent_invoice.id} sent successfully!")
        print(f"New status: {sent_invoice.status}")
    else:
        print(f"Invoice {invoice_id} is not in 'draft' status. Cannot send.")

except stripe.error.StripeError as e:
    print(f"Error sending invoice: {e}")

Automated Subscription Invoices

One of Stripe's most powerful features for SaaS businesses is its ability to automatically generate invoices for subscriptions.

When a customer subscribes to a plan (which has associated products and prices), Stripe automatically creates and finalizes invoices at each billing cycle. These invoices are then sent to the customer, and their payment method is charged.

This automation significantly reduces manual effort for recurring billing.

Tracking Invoice Status

Stripe provides clear statuses to help you manage the invoice lifecycle:

  • draft: Invoice has been created but not finalized or sent. You can still edit it.
  • open: Invoice has been finalized and sent, awaiting payment.
  • paid: Customer has paid the invoice in full.
  • void: Invoice was cancelled and will not be paid.
  • uncollectible: Invoice is past due and unlikely to be paid.

Monitoring these statuses is key for revenue tracking and follow-up.

Preview Before Sending

Before an invoice goes out to your customer, it's always a good idea to preview it to ensure everything is correct.

Stripe allows you to generate a preview of an invoice via the API or Dashboard. This lets you check line items, tax calculations, branding, and due dates without actually sending it.

Use the stripe.Invoice.upcoming() method in the API to see what an invoice would look like for a customer, especially useful for subscriptions.

Invoice Knowledge Check

Which of the following invoice statuses indicates that an invoice has been finalized and sent to the customer, but payment has not yet been received?

Recap: Invoice Mastery

Congratulations! You've learned how to generate and send professional invoices using Stripe.

  • We covered the benefits of Stripe Invoicing, from automation to compliance.
  • You saw how to create and customize one-time invoices via API.
  • We discussed how Stripe handles automated invoicing for subscriptions.
  • You learned to track invoices through their various lifecycle statuses.

Mastering invoicing ensures smooth financial operations and a professional experience for your customers. Next up, we'll dive into reporting and reconciliation!

常见问题解答

「生成并发送专业发票」课时是免费的吗?

是的 — 「生成并发送专业发票」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Stripe Payments & SaaS Billing Systems 课程的其余内容,请升级到 CoddyKit PRO。 Stripe Payments & SaaS Billing Systems 课程共包含 4 节课。

「生成并发送专业发票」这节课中我会学到什么?

为客户创建、定制并自动发送适用于一次性和周期性支付的专业发票。 你通过在浏览器中直接运行的动手代码来练习 Stripe Payments & SaaS Billing Systems,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Stripe Payments & SaaS Billing Systems 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Stripe Payments & SaaS Billing Systems 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「生成并发送专业发票」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Stripe Payments & SaaS Billing Systems 课中编写并运行代码吗?

能。每节 Stripe Payments & SaaS Billing Systems 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 Stripe Tax 自动计算销售税
  2. 生成并发送专业发票
  3. 账单报告与对账
  4. 处理发票中的贷项通知单与部分退款
← 返回 Stripe Payments & SaaS Billing Systems