Stripeの支払いAPI:最初の10年(2020年)

Stripeが発表した本記事は、過去10年間の支払いAPI進化の歴史をまとめたもの。支払い処理の複雑さを抽象化することがAPI設計の根本哲学となっています。

Stripeが発表した本記事は、過去10年間の支払いAPI進化の歴史をまとめたもの。支払い処理の複雑さを抽象化することがAPI設計の根本哲学となっています。

背景として、決済業界は複数の支払い手段、国際取引、多通貨対応、複数の決済フロー対応など急速に複雑化し、Stripeはこれらの複雑さを開発者レベルで隠すために段階的なAPI抽象化を進めてきました。PaymentIntentsやPaymentMethodsといった概念がその代表例で、支払い処理を標準化されたインターフェースで提供しています。

技術的意義としては、複雑な支払い処理を一貫したAPIで統一することで、開発者はコア機能に集中でき、支払い統合の実装障壁が大幅に低下しました。重要性では、このようなAPI進化がグローバルなデジタル決済成長の基盤となり、企業のデジタル化を加速させました。

一方、HNコミュニティでは、増殖し続ける抽象化層が逆に複雑さを増す結果になっているという実装者視点の批判が多く、シンプルなユースケースでもエンタープライズ向けの複雑さに対応する負担を指摘する声が上がっています。

HNの反応

APIの抽象化層が増加し続けることで開発者の心的負担が増す一方、シンプルなユースケースでも複雑なエンタープライズ機能に対応する必要があるという実装者からの批判が強く、代替サービスの利用を勧める声も寄せられています。

注目コメント

「Stripeはエンタープライズの多様なワークフロー対応のため過度に複雑化しており、エンティティを色分けして単純化しているように見せかけている。しかし、単純なサブスクリプション機能を実装する場合でさえ、全く異なるながら微妙に重複した複数のエンティティタイプからイベントを処理する必要があり、12ヶ月請求に対応するため人工的な処理が必要になる。ドキュメントにはなぜこのような設計になっているのかが十分に説明されていない。」— @echelon

元記事を読むHN討議を見る