LoginSignup
3
2

More than 1 year has passed since last update.

Stripe Checkoutでの請求書発行やCustomer Portalから1回切りの注文の領収書もDLできるようにする方法

Posted at

Stripeには、7行程度のコードでリダイレクト型の決済フォームへのリンクを作る機能(Stripe Checkout)があります。

コード

    const session = await stripe.checkout.sessions.create({
      mode: 'payment',
      line_items: [{
        price: 'price_xxxx',
        quantity: 1
      }],
      success_url: 'https://example.com',
      cancel_url: 'https://example.com'
    })

    // ExpressやNext.jsでリダイレクトさせる場合
    return res.redirect(session.url)

        // API レスポンスとして返す場合
    return res.status(200).json({
      url: session.url
    })

リダイレクト先のフォーム

スクリーンショット 2023-01-23 10.26.33.png

Checkoutでの注文履歴を、Customer Portalから確認する方法

通常の組み込みでは、Stripe Checkoutを利用した1回きりの注文履歴は、Customer Portalから見ることができません。

これは、2023/01時点のCustomer Portalが、「請求書(Invoice)の履歴」を表示する機能のためです。

もし1回きりの注文についても、Customer Portalから確認できるようにさせたい場合には、有料オプションの「請求書発行機能」を利用します。


    const session = await stripe.checkout.sessions.create({
      mode: 'payment',
      line_items: [{
        price: 'price_xxxx',
        quantity: 1
      }],
+      invoice_creation: {
+        enabled: true,
+      },
      success_url: 'https://example.com',
      cancel_url: 'https://example.com'
    })

この3行を追加すると、Checkoutでの注文時に、裏側で請求書(Invoice)が作成されます。

スクリーンショット 2023-01-23 10.37.29.png

請求書が発行されることで、Customer Portalの請求履歴にも注文内容が表示されます。

スクリーンショット 2023-01-23 10.38.05.png

一回切りの注文での、領収書の違い

通常のCheckoutセッションで発行される領収書は、メールにて送付されます。

スクリーンショット 2023-01-23 10.40.34.png

請求書を発行した場合の領収書

請求書を発行した場合、PDFで領収書をDLできます。

スクリーンショット 2023-01-23 10.43.11.png

PDFのURLは、APIから取得するCustomer Portalからのリンクで取得できます。

請求書・領収書の内容をカスタマイズする

請求書を発行する方法を選んだ場合、領収書や請求書に追加の情報を載せることができます。

    const session = await stripe.checkout.sessions.create({
      mode: 'payment',
      line_items: [{
        price: 'price_xxxx',
        quantity: 1
      }],
      invoice_creation: {
        enabled: true,
+        invoice_data: {
+          description: 'Invoice for Product X',
+          metadata: {order: 'order-xyz'},
+          custom_fields: [{name: 'Purchase Order', value: 'PO-XYZ'}],
+          rendering_options: {amount_tax_display: 'include_inclusive_tax'},
+          footer: 'B2B Inc.',
+        },
      },
      success_url: 'https://example.com',
      cancel_url: 'https://example.com'
    })

スクリーンショット 2023-01-23 10.48.55.png

請求書・領収書カスタマイズの例

  • custom_fieldsを利用した「注文ID」や「問い合わせ番号」などの独自情報の付与
  • metadataに社内システムと請求書・領収書を紐づける情報を設定
  • footerdescriptionで注文に対する説明や追加情報を追加

カスタマイズできるパラメータについては、以下のドキュメントをご確認ください。

Checkoutで請求書を発行する際は、手数料に注意

1回限りの決済にて請求書を発行する場合、決済ごとに最大2ドル相当(取引合計額の0.4%)の手数料が発生します。

サブスクリプションについては、Stripe Billingの料金プランをご確認ください。

[PR] StripeのAPIや製品アップデートを確認する方法

APIやSDKの更新情報を確認する

APIの変更ログを、以下のURLまたはRSSフィードから確認できます。

Feed: https://stripe.com/docs/changelog/api/feed.xml

QiitaやTwitterで情報を確認する

日本語でのアップデート情報は、QiitaまたはTwitterアカウントから確認できます。

Stripeコミュニティ(JP_Stripe)のイベントやライブを見る

日本のStripeユーザーが運営するコミュニティ、JP_Stripesで情報を得ることもできます。

YouTubeでのアップデート情報紹介配信(JP_Stripes What's New)や、コミュニティイベントにぜひご参加ください。

メーリングリスト(英語)を購読する

また、毎月のアップデートをまとめて紹介するメーリングリスト「Stripe Developer Digest(英語)」の購読もぜひご検討ください。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2