Communitygithub.com

pagou-com-br/skills

API Pagou におけるクレジットカード決済を実装します。ユーザーがカード払い、分割払い、ブラウザでのトークン化、カードトークン、支払い者・カード登録、customer_id と card_id による請求、不正防止、売上確定、キャンセル、返金、再試行、Idempotency-Key、チャージバック、またはカード加盟店契約を要求したときに使用します。ブラウザとバックエンドのアーキテクチャ、完全データと参照の選択、authorized・captured・settled 状態、冪等性、Sandbox でのテストをカバーします。Pagou の MCP はカード請求の読み取りのみを行います。このスキルは skill pagou と組み合わせて使用します。

skills とは?

このスキルは、Pagou API を使用したクレジットカード決済の完全な実装ガイドです。カード情報のブラウザ側トークナイゼーション、バックエンドでの請求作成、分割払い、不正防止、売上確定(キャプチャ)、キャンセル、返金、再試行、チャージバック対応など、カード決済に関わるすべての操作をカバーします。支払い者とカードの完全データを送るフローと、事前登録済みの参照(customer_id / card_id)を使うフローの2つを明確に区別し、冪等性キーによる重複防止や、authorized・captured・settled の状態遷移の正しい扱い方を説明します。また、Pagou の MCP はカード請求の読み取り(get_card_charge / list_card_charges)のみを提供するため、作成などの書き込み操作は必ずバックエンドで行う必要があります。Sandbox 環境でのテスト手順も含まれており、安全で堅牢なカード決済統合を実現します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/pagou-com-br/skills/tree/HEAD/skills/pagou-cartao

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

API Pagou でのクレジットカード

まず、スキル pagou のルール(環境、バックエンド認証、セキュリティ、不確実な結果)を適用してください。このスキルはカードに関する判断のみを提供します。フィールドとペイロードは以下のページに記載されています。実装前に必ずお読みください。

実装前に読むべきドキュメント

前提条件

アクティブなアカウント、承認済みのカード加盟店契約、カード手数料が設定されたプラン、有効な API キーが必要です。加盟店契約は API ではなく管理画面から申請します。アカウントが加盟店契約を結んでいない場合は、実装前にユーザーにその旨を伝えてください。

必須アーキテクチャ

  1. ブラウザ: 独自のチェックアウト画面でカードデータを収集し、請求に使用する API と同じ環境で Pagou のトークン化ライブラリを使ってトークンを生成します。ライブラリの公開鍵は X-API-KEY ではありません。
  2. ブラウザからバックエンドへ: トークン化された card オブジェクトと購入データのみを店舗サーバーに送信します。トークン化後は、フォームのフィールドや状態からカード番号と CVV を消去します。
  3. 加盟店バックエンド: X-API-KEY を使用して API に請求を作成します。このキーがブラウザ側に露出することは決してありません。

完全なカード番号と CVV は API の契約範囲に含まれません。ログ、分析ツール、ブラウザストレージにカード番号、CVV、トークンを記録しないでください。Pagou のチェックアウトは既にトークン化を行っています。このアーキテクチャは独自のチェックアウトに適用されます。

判断ルール

  • 金額は整数のセントで指定: value: 5000 は R$ 50,00 を表します。Pix や銀行振込の単位を流用しないでください。

  • 次の2つのフローのうち、正確に1つを選択:

    1. 完全データ: customer オブジェクトと card オブジェクト(トークンを含む)。
    2. 参照: 同一支払い者の customer_id と card_id。両方とも認証されたアカウントに属する必要があります。このフローでは新しいトークンを生成しないでください。

    フローを混在させたり、ペアの一方だけを送信したりしないでください。完全データフローでは、返された ID を保存して将来再利用できるようにします。

  • 不正防止: 購入者の実際の IP アドレスを含む、ドキュメントに記載された要件に従ってください。例で使用されているサンプル IP を使用しないでください。

  • 分割払い: カードブランドの制限を尊重し、カードの有効期限が切れていないことを確認してください。

  • status による金融結果の確認: 201 が承認を保証するわけではありません。authorized(承認)、captured(売上確定)、settled(決済完了)を区別してください。請求の unknown 状態は、不確実な結果を伴う通信エラーとは異なります。

  • 売上確定は必須ステップではない: 作成時に既に captured が返される場合があります。明示的な売上確定は、authorized のままの請求に対して、かつそれが商取引上の意図である場合にのみ呼び出してください。タイムアウト解決のために売上確定を使用しないでください。

  • キャンセルと返金の区別: キャンセルは保留中の請求に適用されます。承認済み、売上確定済み、決済済みの請求には返金ルールが適用されます。現在の契約では返金は全額返金です。選択する前に状態を確認してください。

  • 再試行 (/retry): これは別の金融操作です。確認された失敗 (failed) の後でのみ、独自のキーを使用し、ドキュメントに記載された制限内で実行します。タイムアウトや不確実な結果を解決するために /retry を使用しないでください。

  • チャージバック: 紛争操作にはチャージバックの id を使用します。紛争の状態は請求の charged_back 状態とは異なります。異議申し立てと受け入れは加盟店の判断です。要求があった場合のみ実装してください。

  • 分割払い(Split): スキル pagou-split に従ってください。カードの場合、請求はセントを使用しますが、Split の固定金額はレアル(R$)を使用します。

冪等性

  • 商取引ごとに(支払い者登録、カード登録、請求作成、売上確定、返金、再試行)一意の Idempotency-Key を生成し、最初の送信前にリクエストとともに保存します。
  • 同じ操作を繰り返すには、同じキー、メソッド、パス、および card_token と split 配列を含むリクエストボディのバイトをそのまま維持します。JSON を再構築しないでください。
  • 新しい購入には新しいキーが必要です。customer_id と card_id は再利用できます。
  • ループ内で新しいキーを生成したり、タイムアウトを回避するために使用したりしないでください。
  • idempotency_key_conflict、idempotency_in_progress、idempotency_outcome_unknown コードはそれぞれ異なる処理が必要です。冪等性のドキュメントをお読みください。不確実な結果は照会によって調査する必要があり、新しい請求を作成してはいけません。

MCP ツール

Pagou の MCP はカード請求の読み取りのみを行います:

ツール使用法
get_card_chargeID で請求を照会
list_card_chargesステータスと期間で一覧表示および照合

MCP はカード請求の作成、売上確定、キャンセル、返金、再試行を行わず、支払い者やカードの管理、チャージバックへの対応も行いません。作成はブラウザでのトークン化後に加盟店のバックエンドで行われます。エージェントから他の方法でカード請求を作成しようとしないでください。

Sandbox でのテスト

  1. Sandbox アカウントがカードの前提条件を満たしていることを確認します。
  2. トークン化のドキュメントに従って、Sandbox 環境でテストカード 4111 1111 1111 1111 をトークン化します。
  3. アプリケーションのバックエンドから https://api.pagou.cloud に対して、Sandbox キーと独自の Idempotency-Key を使用して請求を作成します。Pix のシミュレーションルートはカードには適用されません。
  4. 返された status を確認し、同じ請求を照会します(get_card_charge も使用できます)。
  5. 同じキーで同じリクエストを繰り返し、重複した請求が発生しないことを確認します。

関連スキル