[Stripe Updates] Invoiceのstatement_descriptorをFinalize後も変更できるようになりました


Stripeを利用してクレジットカード決済を実行した場合、顧客のクレジットカード利用明細に任意のデータを入力するには、statement_descriptorを利用する必要があります。

これまでは、このstatement_descriptorはInvoiceがFinalizeされる前のみ変更可能でした。

    // 変更できる
    await stripe.invoices.update('in_xxxx', {
      statement_descriptor: "DUMMY ITEM 111",
    })

    // Finalizeする
    await stripe.invoices.finalizeInvoice('in_xxxx')

    // 変更できない(エラーになる)
    const invoice = await stripe.invoices.update('in_xxxx', {
      statement_descriptor: "DUMMY ITEM",
    })

今回のAPIアップデートから、Finalizeが完了しているInvoiceについても、statement_descriptorを変更できるようになりました。

    // 変更できる
    await stripe.invoices.update('in_xxxx', {
      statement_descriptor: "DUMMY ITEM 111",
    })

    // Finalizeする
    await stripe.invoices.finalizeInvoice('in_xxxx')

    // 変更できる
    const invoice = await stripe.invoices.update('in_xxxx', {
      statement_descriptor: "DUMMY ITEM",
    })

ユースケース

Invoice / Billingどちらも多くの場合は作成時にstatement_descriptorを設定しているケースが多いとは思います。

が、SaaS側のシステムデータを利用して追加の情報を設定したい場合などでは、Invoiceのwebhookを利用してstatement_descriptorを更新することができます。

そしてこれまでは、Finalizeされて更新できなくなっているケースを考慮する必要がありましたが、今回の更新後は考慮する必要がなくなります。

関連記事・ドキュメント

[PR] Stripe開発者向け情報をQiitaにて配信中!

2021年12月よりQiitaにて、Stripe開発者のためのブログ記事更新を開始しました。

  • [Stripe Updates]:開発者向けStripeアップデート紹介・解説
  • ユースケース別のStripe製品や実装サンプルの紹介
  • Stripeと外部サービス・OSSとの連携方法やTipsの紹介
  • 初心者向けのチュートリアル(予定)

など、Stripeを利用してオンラインビジネスを始める方法について随時更新してまいります。

-> Stripe Organizationsをフォローして最新情報をQiitaで受け取る