Stripeで「名前が無いカスタマー」を作成してから、インボイスで決済する際の動作を確認してみた

名前がないカスタマーを作成したときの動作が気になったので、試してみました。
2023.05.16

Stripeのインボイスを作成するとき、カスタマーを作成します。 このカスタマーについて、「名前」が無い場合の動作が気になったので、試してみました。

おすすめの方

  • Stripe CLIを利用したい方
  • Stripe CLIで商品作成の参考を探している方
  • Stripe CLIでカスタマー作成の参考を探している方
  • Stripe CLIでインボイス作成の参考を探している方
  • Stripeで名前がないカスタマーを作成した際の様子を知りたい方

商品を作成する

最初に商品を作成します。

stripe products create \
  --name="特別な記事" \
  -d "default_price_data[currency]"=JPY \
  -d "default_price_data[unit_amount_decimal]"=5000

Stripeで商品を作成する

レスポンスにある下記は、後で利用するためメモしておきます。(あとでWeb画面から確認してもOKです)

  • default_price

カスタマーを作成する

名前が無いカスタマーを作成します。

stripe customers create \
  --email="any-email" \
  -d "preferred_locales[]"="ja-JP"

Stripeでカスタマー(名無し)を作成する

レスポンスにある下記は、後で利用するためメモしておきます。(あとでWeb画面から確認してもOKです)

  • id

インボイス(請求書)を作成する

空の請求書を作成する

stripe invoices create \
  --customer=cus_Nse11mQKT1WJtk \
  -d "collection_method"=send_invoice \
  -d "days_until_due"=30

Stripeで空の請求書を作成する

ちなみに、「カスタマーにメールアドレスが無い場合」は、空の請求書の作成が失敗します。send_invoiceのため、メールアドレスは必須です(実はこれも確認したかった)。

{
  "error": {
    "message": "Missing email. In order to create invoices that are sent to the customer, the customer must have a valid email.",
    "request_log_url": "https://dashboard.stripe.com/test/logs/req_xxx",
    "type": "invalid_request_error"
  }
}

請求書にアイテム(商品)を追加する

stripe invoiceitems create \
  --customer=cus_Nse11mQKT1WJtk \
  --price=price_1N6sGWLL2tAJlAnqjhNWs4pK \
  --quantity=1 \
  --invoice=in_1N6spCLL2tAJlAnqSAgPSiIq

Stripeで請求書にアイテムを追加する

請求書を確定する

stripe invoices finalize_invoice in_1N6spCLL2tAJlAnqSAgPSiIq

請求書がオープンになりました。

Stripeで請求書を確定する

決済する

請求書を確定した際のレスポンスにあるhosted_invoice_urlにアクセスし、決済します。 テスト用のクレジットカード番号は、下記にあります。

請求先は、「名前」ではなく「メールアドレス」が表示されました(これが知りたかった)。

Stripeで支払画面を表示する

決済完了しました。

Stripeで支払いを完了する

支払い結果を確認する

「支払い済み」になっています。

Stripeで支払い結果を確認する

さいごに

カスタマーの名前が無い場合の動作を確認してみました。 ついでに、メールアドレスは必須だと分かりました。 少しでも参考になれば幸いです。

参考