verify-et-api について
verify-et-api は、複数の言語によるバックエンド連携や、信頼できるバックエンドを経由するモバイルアプリ向けのスキルです。API 利用、非同期検証、Webhook の安全な処理、トラブルシューティングを案内します。
主な機能
- 01同期・キュー・Webhook・ポーリング・SSE の選択
- 02冪等性キーとリクエスト状態の管理
- 03Webhook 署名の検証と再試行の処理
- 04レシート画像のアップロードと検証
- 05セキュリティ・エラー・本番設定の確認
活用シーン
- 01チェックアウトに決済検証を組み込む
- 02非同期検証用のWebhookとステータス画面を設定する
- 03重複リクエストや署名、API エラーを調査する
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ negusnati/ verify-et-api --skill verify-et-apiインストール後、Claude Code で/verify-et-apiを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
debugging/common-mistakes.mdproduction-checklist.mdpatterns/image-processing.mdintegration-methods.mdwebhooks.mdreferences/api-endpoints.mdbank-specs.mderror-codes.md詳細
Verify.et API
このポータブルなスキルは、Node.js、Python、PHP、Go、Java、Ruby、.NET、Rust でのバックエンド連携と、信頼できるバックエンドを経由するモバイルアプリに適用できます。
コアワークフロー
- 連携箇所を特定します。バックエンドの REST アダプター、チェックアウト/決済の検証、Webhook 受信、ポーリング/SSE ステータス UI、ダッシュボード/レポートの利用状況、またはフレームワーク固有のラッパーなどです。
- 必要なリファレンスだけを読み込みます。
references/api-endpoints.md:認証、エンドポイント、ペイロード、レスポンス、権限、ステータスの流れ。references/bank-specs.md:銀行ごとに明示されたペイロードと、ユニバーサルルーターの識別情報。references/error-codes.md:HTTP エラー、検証エラーコード、再試行の判断、クレジット、クォータ、冪等性の競合。patterns/integration-methods.md:同期、キュー、Webhook、ポーリング、SSE の各フローの選び方。patterns/webhooks.md:アカウントの Webhook 設定(ダッシュボードまたは API)、署名シークレット、テスト配信、署名、再試行。patterns/image-processing.md:領収書写真のオプトイン、QR の後に OCR を行う処理、画像クレジット、マルチパートアップロード。debugging/common-mistakes.md:本番環境で避けるべきアンチパターン。debugging/production-checklist.md:リリース前の検証。
- コードを変更する前に、ユーザーのコードを確認します。API キーと
VERIFY_ET_WEBHOOK_SECRETの保存場所、POST /api/verifyの呼び出し箇所、アカウントの Webhook が有効かどうか、領収書写真がマルチパートで送信されているか、202の処理方法、重複送信の可能性、Verify.et の呼び出しがサーバー側で実行されているかを確認します。 - Verify.et API キーはサーバー側に保持します。ブラウザーおよびモバイルのクライアントは、Verify.et を直接呼び出すのではなく、ユーザーのバックエンドを呼び出す必要があります。
fetchを直接呼び出す処理をあちこちに書くのではなく、サーバー側に Verify.et クライアント/アダプターを 1 つ用意する方法を優先します。- 決済およびチェックアウトの試行には
Idempotency-Keyを送信し、返された Verify.et のrequestIdを保存します。 200は同期的に返される終端レスポンス、202はキューに登録された処理として扱います。アカウントの Webhook を 1 つ登録し、そのwhsec_シークレットを保存して、利用に頼る前にエンドポイントがactiveであることを確認します。202の場合はrequestIdを保存します。画面に進行状況を表示する必要がある場合に限り、ポーリングまたは SSE を使用します。エンドポイントが有効になったらwebhookUrlは指定しないでください。詳しくはpatterns/webhooks.mdを参照してください。confirmationHistory.confirmedBefore === trueは、確認が繰り返されたことを示すシグナルとして扱います。プロダクトの重複決済ポリシーを適用せずに、決済を無条件に確定しないでください。- ユーザーの境界に絞ったテストを追加します。リクエストビルダー、Webhook 署名、画像アップロード、ポーリング、冪等性の競合、エラーマッピングのテストなどです。
統合に関する判断
POST /api/verify?waitMs=...は、ベストエフォートの利便機能としてのみ使用してください。本番のワークフローは、Verify.et が202を返す場合でも動作する必要があります。- ブラウザーやモバイルアプリが閉じられた場合でもバックエンドが結果を把握できるようにするには、アカウントの Webhook を 1 つ登録してください。ユーザーは API Keys → Webhooks から追加するか、API キーを使用して
POST /api/webhook-endpointsを呼び出せます。シークレットを保存し、エンドポイントが有効であることを確認したら、verify リクエストではwebhookUrlを指定しないでください。 - クライアントでシンプルな保留中ステータス画面を表示する必要がある場合は、ポーリングを使用してください。
- 認証済み Web UI で、頻繁にポーリングせず低遅延で更新する必要がある場合は、SSE を使用してください。
- 堅牢なチェックアウト UX には、Webhook とポーリング/SSE の両方を使用してください。Webhook はサーバー側の状態を更新し、ポーリング/SSE はユーザーに表示されるフローを更新します。
- プロダクトがプロバイダーをすでに把握している場合は、明示的な
bankペイロードを使用してください。UI で複数の形式の領収書やリンクを受け付ける場合は、汎用的なreferenceペイロードを使用してください。オプションのsettlementAccountを指定すると、領収書の支払先が想定した受取人であることを確認できます。詳細はreferences/api-endpoints.mdにあります。 - レシートの写真は、Image Processing を有効にした後に限り、オプションのマルチパート
imageとして送信してください。QR と OCR のどちらを使用するかは Verify.et が選択します。patterns/image-processing.mdを参照してください。 - 取り消し不能なフルフィルメントは、終端状態の確認、重複確認ポリシーの確認、およびプロダクトで受取人照合を使用する場合の
settlementAccountMatchの確認を済ませてから実行してください。
デバッグの基本情報
診断を開始する前に、次の情報を記録してください。
- リクエストメソッド、URL、本文の形式、使用したヘッダー、および API キーがサーバー側で使用されたかどうか。
- HTTP ステータス、レスポンス本文、
x-request-id、Retry-After、X-Verify-Cache。 - Verify.et の
requestId、processingStatus、status、error.code、error.retryable。 - 銀行/プロバイダー、生の領収書/参照情報、識別に使用する末尾の数字/電話番号/settlementAccount、アカウント Webhook のステータス、Image Processing の有効状態と残高、およびリクエスト単位のレガシー Webhook URL の有無。
- 同じチェックアウト試行で、同じ
Idempotency-Keyが再利用されたかどうか。
セキュリティルール
x-api-keyやwhsec_の値を、フロントエンドコード、モバイルアプリ、ログ、スクリーンショット、コミットするファイルに含めないでください。- エンドポイントのシークレットで生の本文を検証する前に、Webhook のペイロードを信頼しないでください。ルールは
patterns/webhooks.mdにあります。 VERIFY_ET_WEBHOOK_SECRETは、受信エンドポイントを提供するサーバー環境に保存してください。API はこのシークレットを一度だけ返します。X-Webhook-Event-Idを使って、Webhook の処理を冪等にしてください。- レート制限や一時的な利用不可に対しては、
Retry-Afterに従ってください。 - ログは有用な情報を残しつつ、機密情報を除外してください。
requestId、銀行、ステータス、エラーコードを含め、API キー、Cookie、領収書画像のバイトデータ、完全な認証ヘッダーは含めないでください。
ダッシュボードの設定
Webhook の登録は API キーで実行できます。Image Processing の有効化と画像クレジットの追加には API キーを使用できません。その他のアカウント設定も、ダッシュボードでのみ変更できる場合があります。
これらの設定のいずれかが未設定の場合:
- 不足している設定、その設定を変更するページ、プロジェクトにコピーして戻す値を伝えてください。
- ユーザーに選択してもらってください。ユーザー自身で設定するか、サインイン中にブラウザーまたはコンピューター操作ツールを使って設定することを明示的に許可できます。
- その作業の支援をユーザーが選択するまで、ブラウザーを開いたり、サインインしたり、verify.et を操作したり、プラグインを有効にしたりしないでください。Verify.et の統合を依頼する一般的な依頼は、その許可には当たりません。
- ブラウザーツールが利用できない場合は、ツールをインストールまたは有効にする前にユーザーに確認してください。
- パスワードを尋ねたり、保存したり、入力したりしないでください。サインインはユーザー自身が行います。
- 支払いの完了を明示的に依頼され、かつパックと支払い参照情報が提示されていない限り、支払いまたは画像クレジットの追加を実行しないでください。
- どちらの方法で設定した場合も、API を使って設定を確認してください。Webhook の確認方法は
patterns/webhooks.mdにあります。Image Processing は、GET /api/image-processingのレスポンスでdata.enabled: trueかつdata.balanceが正の値であることを確認してください。
ソース
インターネットにアクセスできる場合は、最新の公開ドキュメントを使用してください。
https://verify.et/docs/get-startedhttps://verify.et/docs/apihttps://verify.et/docs/sdk
Verify.et リポジトリ内で作業している場合は、古いドキュメントより実装ソースを優先してください。関連するソースパスは references/api-endpoints.md に記載されています。
コメント
Markdown 対応