# エージェント向け Issuing

エージェント向けのカード発行方法を学びましょう。

エージェント向け Issuing を使用すると、エージェントが自律的に購入を行うためのバーチャルカードを発行できます。支出管理、リアルタイムのオーソリ判定、取引の完全な可視性を備えています。エージェントが購入を行う前に、何に、どこで、いくら使えるかを決定できます。カードは金融口座を基盤としており、Stripe Issuing API を使用して発行されます。

## エージェント向け Issuing の製品

エージェント向け Issuing は、以下の Issuing 製品と組み合わせて使用できます。

| 製品 | 説明 | アクセスをリクエスト |
| --- | --- | --- |
| 自社事業向けカード | Issuing を使用すると、各エージェントに専用のバーチャルカードを付与できます。エージェントごとの支出上限、加盟店カテゴリーの管理、カスタムのオーソリルールを設定できます。一般的なユースケースには、転売用在庫の購入、運営費の支払い、サービス提供を履行するための購入などがあります。 | [Stripe ダッシュボードで申請](https://dashboard.stripe.com/issuing/overview) |
| プラットフォーム向けカード | フィンテック、業種特化型 SaaS、マーケットプレイスなどのプラットフォームであれば、Issuing を使用して、プラットフォーム上の事業者や消費者に代わってエージェントが支出できるようにできます。経費を管理する事業者向けに法人カードを発行したり、個人的な購入を行う個人向けにコンシューマーカードを発行したりできます。カード会員は、利用上限、加盟店カテゴリーの制限、オーソリルールをそれぞれ設定できます。プラットフォームが発行するすべてのカードについて、取引レベルで可視性を維持できます。 | [お問い合わせ](https://stripe.com/contact/embedded-finance) |

## エージェント向け Issuing の機能

| ケイパビリティ | 説明 |
| --- | --- |
| [シングルユースカード](https://docs.stripe.com/issuing/controls/lifecycle-controls.md) | 単一のタスクまたはセッションに限定したバーチャルカードを発行できます。カードは使用後に自動的に無効化されます。 |
| [リアルタイムのオーソリ](https://docs.stripe.com/issuing/controls/real-time-authorizations.md) | Webhook を使用してすべてのトランザクションを承認または拒否できます。事業者の詳細とカードのメタデータに基づいてオーソリの判定を行います。オーソリの連携はお客様が管理します。 |
| [支出管理機能](https://docs.stripe.com/issuing/controls/spending-controls.md#limit-a-cardholders-monthly-spend-across-all-of-their-cards) | 消費者が使用できる金額や頻度、利用可能な加盟店カテゴリーに制限を設定できます。カードレベルまたはカード会員レベルで管理を設定できます。 |
| [完全な取引の可視性](https://docs.stripe.com/issuing/purchases/transactions.md) | 確定、返金、部分確定、超過確定、強制確定を含むすべてのトランザクションを追跡し、メタデータを使用して元のカードおよび購入に照合できます。 |
| [高度な不正利用シグナル](https://docs.stripe.com/issuing/controls/radar.md#get-started-with-radar) | すべてのオーソリに対して機械学習によるリスクスコアが生成されます。不正利用リスク、加盟店との不審請求の申し立てリスク、カードテスティングの検出が含まれます。Stripe ダッシュボードからオプトインできます。 |

## エージェント型決済フローで支払う

エージェントは、サポートされている以下の方法で Issuing を使用して支払うことができます。

- **ブラウザーでの決済**: [バーチャルカードの認証情報を取得](https://docs.stripe.com/issuing/cards/virtual.md#retrieve-virtual-card-details)して、カードを直接使用します。1 回限りの購入の場合は、[Issuing ライフサイクル管理](https://docs.stripe.com/issuing/controls/lifecycle-controls.md)を使用して、1 回限り有効なカードを作成します。
- **Stripe 対応のプログラムで処理可能な決済**: [MPP](https://docs.stripe.com/payments/machine/mpp.md) や [UCP](https://docs.stripe.com/agentic-commerce/ucp/stripe-payments-handler.md) などのフローについては、[エージェント型決済フローで Issuing を使用して支払う](https://docs.stripe.com/issuing/agents/programmatic-checkout.md)を参照してください。このガイドでは、Issuing カードで購入の支払いを行い、販売者に対してスコープが設定された [Shared Payment Token (SPT)](https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens.md) を発行する手順について説明しています。

以下のセクションは、プログラムで処理可能なフローを含め、エージェントによるあらゆる決済に適用されます。

## 支出管理

エージェントが購入を行う前に、何に、どこで、どのくらいの頻度で使えるかを定義できます。これらの管理はカード作成時に設定され、いつでも更新できます。タスクの範囲が変わった場合は制限を厳しくし、より多くの予算が承認された場合は緩め、広範な権限を持つ信頼できるエージェントには解除できます。

加盟店カテゴリー管理では、カードを特定の種類の事業者に限定できます。たとえば、旅行予約エージェントは航空会社とホテルにのみ請求できるようにし、レストランや小売店では使用できないようにします。

```curl
curl https://api.stripe.com/v1/issuing/cards \
 -u "{{SECRET_KEY}}:" \
 -d "cardholder"="ich_123" \
 -d "currency"="usd" \
 -d "type"="virtual" \
 -d "status"="active" \
 -d "spending_controls[allowed_categories][]"="airlines_air_carriers" \
 -d "spending_controls[allowed_categories][]"="hotels_motels_and_resorts"
```

支出上限では、カードに請求できる金額を、取引ごとまたはローリング期間ごとに設定します。

```curl
curl https://api.stripe.com/v1/issuing/cards/ic_123 \
 -u "{{SECRET_KEY}}:" \
 -d "spending_controls[spending_limits][0][amount]"=100000 \
 -d "spending_controls[spending_limits][0][interval]"="monthly" \
 -d "spending_controls[spending_limits][1][amount]"=10000 \
 -d "spending_controls[spending_limits][1][interval]"="per_authorization"
```

## リアルタイムのオーソリ

エージェントにカードを渡した後は、請求が処理される前に、購入の試行ごとにリアルタイムのオーソリリクエストがトリガーされます。これにより、支出ルール、不正利用のシグナル、加盟店カテゴリーの制限、またはエージェントに指示した内容に基づいて、トランザクションを承認または拒否できます。

まず、`issuing_authorization.request` イベントをリッスンします。各イベントには、事業者、金額、およびカード発行時に添付したメタデータが含まれます。Stripe がカードのデフォルトルールにフォールバックする前に応答するためのデフォルトのタイムアウトは 2 秒です。

```json
{
 "type": "issuing_authorization.request",
 "data": {
   "object": {
     "id": "iauth_123",
     "amount": 9900,
     "merchant_data": {
       "name": "Acme Supplies",
       "category_code": "5045",
       "city": "San Francisco",
       "country": "US"
     },
     "card": {
       "metadata": {
         "agent_id": "agent_fulfillment_01",
         "customer_order_id": "order_8821",
         "allowed_merchant": "supplier_acme"
       }
     }
   }
 }
}
```

次に、承認する前に必要なチェックを実行するため、認可ペイロードを使用します。一般的なパターンは次のとおりです。

- **業種の一致**: ビジネス名または業種がエージェントのタスクと一致していることを確認する
- **金額確認**: 請求額が注文またはタスクの想定予算内に収まっていることを確認する
- **利用頻度チェック**: エージェントが短時間に異常な件数の取引を試みた場合にフラグを立てる
- **不正利用シグナル**: 事業者の所在国、IP、または業種を既知の不正利用パターンと照合する

トランザクションが正当と思われる場合は承認します。少しでも不審な点があれば拒否し、エージェントまたは人間のレビュアーによる確認対象としてフラグを立てます。

Stripe の高度な不正利用対策ツールを、意思決定プロセスに活用できます。Stripe はすべてのオーソリを不正利用シグナルの観点から評価し、承認ロジックに組み込めるリスクスコアを生成します。

```json
{
 "type": "issuing_authorization.request",
 "data": {
   "object": {
     "id": "iauth_123",
     "amount": 9900,
     "fraud_challenges": [],
     "network_risk_score": 23,
     "merchant_data": {
       "name": "Acme Supplies",
       "category_code": "5045"
     },
     "verification_data": {
       "address_line1_check": "match",
       "postal_code_check": "match",
       "cvc_check": "match"
     }
   }
 }
}
```

低いリスクスコアに加えて、住所確認と CVC チェックも通過している場合は、承認のシグナルです。高いリスクスコアは、特に住所の不一致や見慣れない事業者の所在国と組み合わさっている場合、エージェントを先に進める前に拒否して調査するシグナルです。

## エージェントのトランザクションの監視

エージェントが行うすべての取引は追跡可能です。Stripe の Webhook と取引データを使用すれば、手動で監視しなくても、支出を追跡し、異常を検出し、購入を消し込みし、過剰請求に対する不審請求の申し立てを自動化できます。

### 異常な支出の検出

エージェントはトランザクション履歴を継続的にスキャンして、見慣れない法人からの請求、通常額を超えるトランザクション、想定外の時間帯のアクティビティなど、異常な購入を検出できます。エージェントが不審なトランザクションを検出した場合は、自動的にカードを凍結するか、レビュー対象としてフラグを立てることができます。

まず、カード会員の最近のトランザクションを取得して、エージェントが確認できるアクティビティの範囲を提供します。

```curl
curl -G https://api.stripe.com/v1/issuing/transactions \
 -u "{{SECRET_KEY}}:" \
 -d "cardholder"="ich_123" \
 -d "limit"=100
```

次に、トランザクションのリストをエージェントに渡します。加盟店カテゴリが想定範囲外である場合や、金額がカード会員の過去の平均を大幅に上回るトランザクションにはフラグを立てます。

```json
{
 "transactions": [
   {
     "amount": 42000,
     "merchant_data": { "category_code": "5999", "name": "Unknown Merchant" },
     "card": {
       "metadata": { "agent_id": "agent_finance_01", "cost_center": "engineering" }
     }
   }
 ]
}
```

エージェントがトランザクションにフラグを立てた場合は、問題を調査している間、直ちにカードを凍結します。

```curl
curl https://api.stripe.com/v1/issuing/cards/ic_123 \
 -u "{{SECRET_KEY}}:" \
 -d "status"="inactive"
```

### 予算に対する支出の追跡

すべてのカードに、支出上限、月間上限、取引ごとの上限、またはその両方を設定できます。エージェントは、その予算がどの程度使用されたかをリアルタイムで監視し、上限に達する前に、カード会員への通知、予算上限の引き上げのリクエスト、次の期間にリセットされるまでの新規購入のブロックなどの対応を行えます。

まず、`issuing_authorization.created` をサブスクライブして、各購入が承認された時点で取得します:

```json
{
 "type": "issuing_authorization.created",
 "data": {
   "object": {
     "amount": 15000,
     "card": {
       "spending_controls": {
         "spending_limits": [{ "amount": 50000, "interval": "monthly" }]
       },
       "metadata": { "agent_id": "agent_finance_01" }
     }
   }
 }
}
```

オーソリが発生したら、カードの月間上限に対して合計します。支出がしきい値 (たとえば 80%) を超えたら、カード会員に通知するか、上限を調整します:

```curl
curl https://api.stripe.com/v1/issuing/cards/ic_123 \
 -u "{{SECRET_KEY}}:" \
 -d "spending_controls[spending_limits][0][amount]"=40000 \
 -d "spending_controls[spending_limits][0][interval]"="monthly"
```

### 購入の自動照合

購入が確定すると (通常は元のオーソリから 1 ～ 2 日以内)、Stripe は最終金額と事業の詳細を含むトランザクションレコードを作成します。エージェントはこれを使用して、請求をそのきっかけとなったタスクや注文に自動的に照合し、確定した金額がオーソリされた金額と異なる場合に差異をフラグ付けし、手動で介入しなくても帳簿を最新の状態に保つことができます。

まず、`issuing_transaction.created` をサブスクライブして、チャージが完全に確定するたびに通知を受け取ります:

```json
{
 "type": "issuing_transaction.created",
 "data": {
   "object": {
     "amount": 7500,
     "merchant_data": { "name": "Logistics Co", "category_code": "4215" },
     "card": {
       "metadata": {
         "customer_order_id": "order_8821",
         "agent_id": "agent_fulfillment_01"
       }
     }
   }
 }
}
```

トランザクションのメタデータを使用して、これをシステム内の元の注文またはタスクに照合します。確定した金額が最初にオーソリされた金額と異なる場合は、確認用にフラグを立てます:

```curl
curl https://api.stripe.com/v1/issuing/transactions \
 -u "{{SECRET_KEY}}:" \
 -d "cardholder"="ich_123" \
 -d "created[gte]"=1672531200
```

### 過剰請求の検出と異議申し立て

カードが使用されると、Stripe はまず想定金額に対するオーソリを作成します。チャージが完全に確定すると、Stripe はトランザクションを作成しますが、この 2 つの金額は常に一致するとは限りません。レストランがチップを追加したり、サプライヤーが注文の一部のみを発送しながら全額を請求したり、事業者が誤った金額を処理したりすることがあります。エージェントは、オーソリされた金額と実際に請求された金額を自動的に比較し、不一致がある場合は代理で異議を申し立てることができます。

トランザクションが確定したら、元のオーソリを取得して金額を比較します:

```curl
curl https://api.stripe.com/v1/issuing/authorizations/iauth_123 \
 -u "{{SECRET_KEY}}:"
```

エージェントは、オーソリされた金額と確定したトランザクション金額を比較します。差額が定義したしきい値を超えた場合は、トランザクションにフラグを立て、異議申し立てを開始します:

```json
{
 "authorization_amount": 7500,
 "transaction_amount": 9200,
 "delta": 1700,
 "card": {
   "metadata": {
     "customer_order_id": "order_8821",
     "agent_id": "agent_fulfillment_01"
   }
 }
}
```

トランザクションに対して直接異議を申し立てることもできます:

```curl
curl https://api.stripe.com/v1/issuing/disputes \
 -u "{{SECRET_KEY}}:" \
 -d "transaction"="ipi_123" \
 -d "evidence[reason]"="canceled" \
 -d "evidence[incorrect_amount][dispute_amount]"=7500 \
 -d "evidence[incorrect_amount][original_transaction]"="ipi_123"
```

次に、`issuing_dispute.updated` をサブスクライブして、未解決の異議申し立てのステータスを追跡し、異議申し立てが解決して資金が回収されたときにカード会員に通知します:

```json
{
 "type": "issuing_dispute.updated",
 "data": {
   "object": {
     "status": "won",
     "amount": 1700,
     "transaction": "ipi_123"
   }
 }
}
```

## See also

- [エージェント型決済フローで Issuing を使用して支払う](https://docs.stripe.com/issuing/agents/programmatic-checkout.md)
- [事業者向け Issuing](https://docs.stripe.com/issuing/for-your-business.md)
- [プラットフォーム向けの Issuing](https://docs.stripe.com/issuing.md)
- [個人経費向けのエージェント型支出](http://link.com/agents)
