💳sumup
- プラグイン
- sumup
- ライセンス
- Apache-2.0
- ソース
- GitHub で見る ↗
説明
SumUpのチェックアウトフローをエンドツーエンドで実装します。 次のような場合に使用: - SumUp Checkouts APIの呼び出しの実装またはレビュー - Card Widgetのマウント処理 - Hosted Checkoutのセットアップ - 繰り返し課金のトークン化(recurring tokenization) - Terminal SDK / Cloud API を使用したリーダー端末でのチェックアウト - 3DS認証 / Webhookのハンドリング
原文を表示
Implement SumUp checkout flows end-to-end. Use when writing or reviewing SumUp Checkouts API calls, Card Widget mounts, Hosted Checkout setup, recurring tokenization, Terminal SDK / Cloud API reader checkouts, or 3DS / webhook handling.
ユースケース
- ✓SumUp Checkouts APIの呼び出しを実装するとき
- ✓Card Widgetのマウント処理を行うとき
- ✓Hosted Checkoutをセットアップするとき
- ✓繰り返し課金のトークン化を実装するとき
- ✓3DS認証やWebhookをハンドリングするとき
本文(日本語訳)
SumUp チェックアウト統合
ナレッジおよびAPIは変更される場合があります。古いメモリよりも、常に最新のSumUpドキュメント(Markdown形式)を優先してください。
- ドキュメントルート:
https://developer.sumup.com/ - LLMエントリポイント:
https://developer.sumup.com/llms.txt - Markdownページ形式の例:
https://developer.sumup.com/terminal-payments/cloud-api/index.md
次のような場合に使用: SumUpのエンドツーエンドチェックアウトを実装するとき。
- ターミナル決済(ネイティブモバイルSDK、SoloデバイスのCloud API、またはPayment Switch)
- オンライン決済(Card WidgetおよびAPIオーケストレーション型チェックアウトフロー)
関連スキル
sumup-best-practices— 統合パスおよびセキュリティに関する判断upgrade-sumup— SDK/APIバージョンのアップグレードおよびマイグレーションsumup-debug— 失敗した統合のトラブルシューティングsumup-mcp—https://mcp.sumup.com/mcpの設定と使用sumup-testing— サンドボックスのセットアップおよびエンドツーエンドQA
クイック判断ツリー
決済を受け付ける必要がありますか?
├─ 対面(カード提示あり)→ terminal
│ ├─ ネイティブモバイルアプリ+直接リーダーフロー → terminal/mobile(iOS SDK または Android Reader SDK)
│ ├─ 非ネイティブPOS/バックエンドがSoloリーダーを制御 → terminal/platform-agnostic(Cloud API)
│ └─ SumUpアプリへのレガシー引き渡しが明示的に必要 → terminal/legacy-lightweight(Payment Switch)
└─ オンライン(カード提示なし)→ online
├─ 最速・埋め込み不要・リダイレクトOK → online/no-code(Hosted Checkout)
├─ 埋め込みUI・PCIの負担なし → online/low-complexity(Card Widget)
├─ モバイルアプリ(iOSネイティブ | React Native)→ online/mobile(Swift / React Native SDK)
├─ カード保存/サブスクリプション → online/recurring(Customers + トークン化)
└─ カスタムオーケストレーション → online/custom(Checkouts API + 3DS + Webhook)
始め方
-
要求されるフローを分類する:
terminal: 対面カード提示決済online: ECサイト/Web/アプリのカード非提示決済hybrid: 両方(例: Webチェックアウト+店舗内Solo)
-
統合パスを選択する:
terminal/mobile: iOS SDK または Android Reader SDKterminal/platform-agnostic: SoloリーダーとのCloud APIterminal/legacy-lightweight: Payment Switchonline/no-code: Hosted Checkoutonline/low-complexity: Card Widgetonline/mobile: Swift Checkout SDK または React Native SDKonline/recurring: Customers + トークン化 + 定期課金online/custom: Checkouts API + 3DS + Webhook
-
認証情報と環境を確認する:
- APIキーまたはOAuthアクセストークン
- カード提示フロー用のAffiliate Key
- マーチャントコードと通貨の整合性
- 本番環境以外のテスト用サンドボックスマーチャントアカウント
-
実装前に不足している重要な入力情報を確認する:
- 統合チャネル(モバイルSDK、Cloud API、Card Widget、またはAPIオーケストレーション)
- 対象市場/通貨およびマーチャントコード
- 認証モデル(APIキー vs OAuth)
- Webhookエンドポイントとべき等性(Idempotency)戦略
- 既存の制約(レガシー互換性、マイグレーション、PCIスコープ)
-
references/checkout-playbook.mdに記載された実装パターンを適用する。 -
references/README.mdを参照し、リクエストに最も関連するエントリポイントを1つだけ開く。
変更不可のルール
- シークレットAPIキーおよびOAuthクライアントシークレットは、必ずサーバーサイドのみで保持すること。
- 生のPAN(カード番号)データを直接扱わないこと。
- オンラインチェックアウトはサーバー間(Server-to-Server)で作成すること。
- 生のカード情報を取り扱わないよう、Card WidgetおよびSDKが提供するチェックアウト体験を優先すること。
- カード提示統合では、Affiliate Keyを含め、アプリ識別子がKey設定と一致していることを確認すること。
- ユーザーから明示的に要求された場合、またはレガシー上の強い制約がある場合を除き、Payment Switchの使用を避けること。
- 重複防止と照合精度向上のため、ユニークなトランザクションリファレンス(
checkout_reference、foreignTransactionIdなど)を使用すること。 - 非推奨(deprecated)とマークされたエンドポイントを使用しないこと。
- 同等の代替手段がある場合は、
merchant_codeを明示的なパラメータとして受け付けるエンドポイントを優先すること。 - Webhookイベントは通知としてのみ扱うこと。状態の確認はAPIの読み取りを通じて行うこと。
- Widget/クライアントコールバックが成功を報告した後も、注文/決済の成功を確定する前に、必ずバックエンドで最終的なチェックアウト状態を検証すること。
実装ワークフロー
- 認証とマーチャントコンテキストをセットアップする。
- ユニークなリファレンスと正しい通貨を指定してチェックアウトリクエストを作成する。
- 選択したチャネルでチェックアウトを完了する:
- ターミナルSDKのチェックアウト呼び出し
- Cloud APIリーダーチェックアウト
- Card Widget
- ダイレクトチェックアウト処理フロー
- 非同期の結果を処理する:
- SDKコールバック/Activityリザルト/イベントストリーム
- 3DSの
next_stepリダイレクトフロー - Webhook配信 + API検証
- 正規化された結果(ステータス、トランザクション識別子、リトライガイダンス)を返す。
必須レスポンス要件
すべてのソリューションは以下を明記すること:
- 選択した統合パスとその理由。
- エンドツーエンドのシーケンス(サーバー、クライアント、Webhook/非同期検証)。
- 使用するエンドポイントの一覧(非推奨エンドポイントが含まれていないこと、
merchant_codeを受け付けるエンドポイントを優先していることを確認)。 - 失敗時およびリトライの処理(タイムアウト、重複リファレンス、Webhookリトライ)。
- 成功・意図的な失敗・照合確認のテスト計画。
バリデーションチェックリスト
- 決済成功と意図的な失敗(テストモードで
amount = 11)の両ケースをテストし、確認すること。 - トランザクションリファレンスが重複した場合の挙動を確認すること。
- 選択したチェックアウトパスにおけるタイムアウト/セッション期限切れの挙動を確認すること。
- Webhookのリトライとべき等性のある処理を確認すること。
- 照合フィールドが保存されていることを確認すること(チェックアウトID、トランザクションID/コード、マーチャントコード、リファレンス)。
リファレンス
references/README.mdを参照し、適切なリファレンスファイルを選択すること。- 各リファレンスファイルには固有の正規MarkdownドキュメントURLが含まれています。古いメモリよりもそのURLを優先してください。
- リクエストが対応するフローにマッピングされる場合は、
references/hosted-checkout/README.md、references/recurring-tokenization/README.md、またはreferences/security/README.mdを直接開いてください。
原文(English)を表示
SumUp Checkout Integrations
Knowledge and APIs can change. Always prefer the latest SumUp docs in markdown format over stale memory.
- Docs root:
https://developer.sumup.com/ - LLM entrypoint:
https://developer.sumup.com/llms.txt - Markdown page format example:
https://developer.sumup.com/terminal-payments/cloud-api/index.md
Use this skill to implement end-to-end SumUp checkouts for:
- Terminal payments (native mobile SDKs, Cloud API for Solo, or Payment Switch)
- Online payments (Card Widget and API-orchestrated checkout flow)
Related Skills
sumup-best-practicesfor integration-path and security decisions.upgrade-sumupfor SDK/API version upgrades and migrations.sumup-debugfor troubleshooting failing integrations.sumup-mcpfor configuring and usinghttps://mcp.sumup.com/mcp.sumup-testingfor sandbox setup and end-to-end QA.
Quick Decision Tree
Need to accept a payment?
├─ In-person (card-present) → terminal
│ ├─ Native mobile app + direct reader flow → terminal/mobile (iOS SDK or Android Reader SDK)
│ ├─ Non-native POS/backend controls Solo reader → terminal/platform-agnostic (Cloud API)
│ └─ Legacy app handoff to SumUp app explicitly required → terminal/legacy-lightweight (Payment Switch)
└─ Online (card-not-present) → online
├─ Fastest, no embed needed, redirect OK → online/no-code (Hosted Checkout)
├─ Embedded UI, no PCI burden → online/low-complexity (Card Widget)
├─ Mobile app (iOS native | React Native) → online/mobile (Swift / React Native SDK)
├─ Save card / subscriptions → online/recurring (Customers + tokenization)
└─ Custom orchestration → online/custom (Checkouts API + 3DS + webhooks)
Start Here
- Classify the requested flow:
terminal: in-person card-present paymentonline: e-commerce/web/app card-not-present paymenthybrid: both (for example, web checkout + in-store Solo)
- Pick integration path:
terminal/mobile: iOS SDK or Android Reader SDKterminal/platform-agnostic: Cloud API with Solo readersterminal/legacy-lightweight: Payment Switchonline/no-code: Hosted Checkoutonline/low-complexity: Card Widgetonline/mobile: Swift Checkout SDK or React Native SDKonline/recurring: Customers + tokenization + recurring chargesonline/custom: Checkouts API + 3DS + webhooks
- Confirm credentials and environment:
- API key or OAuth access token
- Affiliate Key for card-present flows
- Merchant code and currency alignment
- Sandbox merchant account for non-production testing
- Ask for missing critical inputs before implementation:
- integration channel (mobile SDK, Cloud API, Card Widget, or API-orchestrated)
- target market/currency and merchant code
- auth model (API key vs OAuth)
- webhook endpoint and idempotency strategy
- existing constraints (legacy compatibility, migration, PCI scope)
- Apply the implementation pattern from
references/checkout-playbook.md. - Use
references/README.mdand open only the single most relevant entrypoint for the request.
Non-Negotiable Rules
- Keep secret API keys and OAuth client secrets server-side only.
- Never handle raw PAN/card data directly.
- Create online checkouts server-to-server.
- Prefer Card Widget and SDK-provided checkout experiences to avoid handling raw card details.
- For card-present integrations, include the Affiliate Key and ensure app identifiers match the key setup.
- Avoid Payment Switch unless the user explicitly requests it or has a hard legacy constraint.
- Use unique transaction references (
checkout_reference,foreignTransactionId, or equivalent) to prevent duplicates and improve reconciliation. - Do not use endpoints marked as deprecated.
- Prefer endpoints that accept
merchant_codeas an explicit parameter when equivalent alternatives exist. - Treat webhook events as notifications only; verify state through API reads.
- After a widget/client callback reports success, always verify final checkout state on the backend before confirming order/payment success.
Implementation Workflow
- Set up auth and merchant context.
- Create checkout request with unique reference and correct currency.
- Complete checkout via chosen channel:
- terminal SDK checkout call
- Cloud API reader checkout
- Card Widget
- direct checkout processing flow
- Handle async outcomes:
- SDK callback / activity result / event stream
- 3DS
next_stepredirect flow - webhook delivery + API verification
- Return normalized result (status, transaction identifiers, retry guidance).
Required Response Contract
Every solution should state:
- Chosen integration path and why.
- End-to-end sequence (server, client, webhook/async verification).
- Exact endpoint set, confirming no deprecated endpoints and preference for
merchant_code-accepting endpoints. - Failure and retry handling (timeouts, duplicate refs, webhook retries).
- Test plan for success, deliberate failure, and reconciliation checks.
Validation Checklist
- Test and capture both successful payment and deliberate failure case (
amount = 11in test mode). - Verify behavior for duplicate transaction references.
- Verify timeout/session expiry behavior in the selected checkout path.
- Verify webhook retries and idempotent processing.
- Verify reconciliation fields are stored (checkout id, transaction id/code, merchant code, reference).
References
- Use
references/README.mdto pick the right reference file. - Each reference file includes its own canonical markdown docs URL. Prefer that URL over stale memory.
- Open
references/hosted-checkout/README.md,references/recurring-tokenization/README.md, orreferences/security/README.mddirectly when the request maps to those flows.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。