2023年5月のStripe APIアップデート簡易まとめ


Stripeでは、毎週のようにAPIのアップデートをリリースしています。

この記事では、「2023年5月に、どのようなアップデートがリリースされたか」を簡単に紹介します。

紹介するアップデート情報の全文や詳細は、Changelogページからご確認ください。

https://stripe.com/docs/changelog

## 2023年5月のアップデート簡易まとめ

この記事で紹介する主なAPIアップデートは次の４つです。

- Customer Portalで、サブスクリプション更新時のフロー設定が可能に
- Stripe Checkoutの`payment_method_options`でLinkをサポート
- SetupIntentで登録されたカード情報について、SetupAttemptから詳細なデータを確認できるように
- 新しい決済手段(Zip)のサポートを開始

## Customer Portalで、サブスクリプション更新時のフロー設定が可能に

Customer Portalを利用して、プラン変更フローを提供できるようになりました。

```javascript
	await stripe.billingPortal.sessions.create({
		customer: 'cus_xxxx',
		flow_data: {
		  type: 'subscription_update',
		  subscription_update: {
			subscription: 'sub_xxx',
		  },
		},
	})
```

カスタマーポータルの設定画面で許可した商品・料金へのプラン変更操作が行えるようになります。

![スクリーンショット 2023-05-29 14.29.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/a502824c-312a-d3a1-c22a-3f33101f11cd.png)

https://stripe.com/docs/customer-management/portal-deep-links

## Stripe Checkoutの`payment_method_options`でLinkをサポート

Checkoutセッションを作成する際、[Link決済](https://link.com)での決済に関するオプション設定ができるようになりました。

```js
const session = await stripe.checkout.sessions.create({  
  ...
  payment_method_options: {  
    link: {
      setup_future_usage: 'off_session', // or 'none'
    }
  }
  ...  
});
```

https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_method_options-link

## SetupIntentで登録されたカード情報について、SetupAttemptから詳細なデータを確認できるように

SetupAttemptは、SetupIntentの実行結果の詳細（登録成功・失敗など）を見ることができるオブジェクトです。

この中で、顧客のクレジットカード情報について`brand`や有効期限（`exp_year` / `exp_month`）などの情報が取得できるようになりました。

```js
await stripe.setupAttempts.list({
	setup_intent: 'seti_xxxx'
})

{
  "object": "list",
  "data": [
    {
      "payment_method_details": {
        "card": {
          "brand": "visa",
          "checks": {
            "address_line1_check": null,
            "address_postal_code_check": null,
            "cvc_check": "pass"
          },
          "country": "US",
          "exp_month": 4,
          "exp_year": 2024,
          "fingerprint": "9j0r9k58Afu4EI9n",
          "funding": "credit",
          "last4": "4242",
          "network": "visa",
          "three_d_secure": null,
          "wallet": null
        },
        "type": "card"
      },
```

https://stripe.com/docs/api/setup_attempts/object#setup_attempt_object-payment_method_details-card



## オーストラリア向けの決済手段サポートを追加（Zip)

- 影響のある製品: Stripe Checkout, PaymentIntents, PaymentMethods, Accounts
- 関連URL: https://stripe.com/docs/changelog#may-23,-2023

Zipはオーストラリアでよく利用されている後払い決済手段の１つです。

https://stripe.com/docs/payments/zip?locale=ja-JP

https://stripe.com/docs/payments/eftpos-australia

複数のAPIエンドポイントにおいて、ZIP Paymentsを新たにサポートしました。

```diff_javascript
const session = await stripe.checkout.sessions.create({
+  payment_method_types: ['card', 'zip'],
  line_items: [{
    price_data: {
-      currency: 'jpy',
      // Zipは、「オーストラリアドル」でのみ利用できます
+      currency: 'aud',
      product_data: {
        name: 'T-shirt',
      },
      unit_amount: 2000,
    },
    quantity: 1,
  }],
  mode: 'payment',
  success_url: 'https://example.com/success',
  cancel_url: 'https://example.com/cancel',
});
```

Stripe Connectでのアカウント作成時に指定する`capabilities`でも、`zip_payments`をサポートしています。

```javascript

const stripe = require('stripe')('sk_test_xxx');  

const account = await stripe.accounts.create({  
  type: 'custom',  
  business_profile: {  
    url: 'https://example.com',  
  },  
  capabilities: {  
    zip_payments: {  
      requested: true,  
    },  
  },  
});  
```


## おわりに

2023年5月にリリースされたAPIアップデートから、４つをピックアップして紹介しました。

カスタマーポータルのフロー機能へのアップデートを利用することで、システム開発時の請求・プラン管理系工数をこれまで以上に減らすことができるかもしれません。

紹介するアップデート情報の全文や詳細は、Changelogページからご確認頂けます。

https://stripe.com/docs/changelog

APIバージョンが変更される「メジャーアップデート」については、こちらからご確認頂けます。

https://stripe.com/docs/upgrades