AI 에이전트가 API 비용을 결제하는 방법: x402, 결제 위임(Payment Mandates), 그리고 에이전트 운영 계좌
요약
AI 에이전트가 인간의 개입 없이 API 비용을 자율적으로 결제할 수 있는 x402 프로토콜과 결제 위임(Payment Mandates) 메커니즘을 설명합니다. 에이전트가 설정된 한도 내에서 안전하게 지출할 수 있는 기술적 흐름과 구현 방식을 다룹니다.
핵심 포인트
- HTTP 402 상태 코드를 활용한 에이전트 전용 결제 프로토콜 x402 소개
- 결제 챌린지를 통한 에이전트와 결제 서비스 간의 자동화된 이체 흐름
- 사용자가 설정한 한도 내에서 자율 지출을 허용하는 결제 위임(Mandate) 시스템
- 에이전트의 자율성을 보장하면서도 보안과 비용 통제를 유지하는 방법
AI 에이전트가 API 비용을 결제하는 방법: x402, 결제 위임 (Payment Mandates), 그리고 에이전트 운영 계좌
HTTP 402 상태 코드는 1998년부터 "결제 필요 (Payment Required)"를 위해 예약되어 왔습니다. 웹 역사의 대부분 동안 이 코드는 사용되지 않은 채 남아 있었습니다. 하지만 자율적으로 API 호출을 수행하는 AI 에이전트들이 마침내 이 코드에 실제 트래픽을 부여하고 있습니다.
에이전트가 유료 API 엔드포인트(endpoint)에 접속할 때, 질문은 "결제할 수 있는가?"에서 "매 달러마다 인간을 깨우지 않고 어떻게 결제할 것인가?"로 전환됩니다. 이는 두 부분으로 나뉩니다: 에이전트와 API 간의 결제를 위한 프로토콜 (x402), 그리고 에이전트가 매번 허가를 구하지 않고도 사용자가 정의한 한도 내에서 지출할 수 있게 하는 위임 메커니즘 (payment mandates)입니다.
x402 흐름 (flow)
x402 프로토콜은 간단합니다. 에이전트가 API 엔드포인트를 호출합니다. API는 응답 본문에 결제 챌린지 (payment challenge)를 포함하여 HTTP 402로 응답합니다. 이 챌린지는 수취인 주소, 금액, 체인 (chain), 그리고 토큰 (token)을 명시합니다. 에이전트는 이 챌린지를 결제 서비스 (payer service)로 전달하며, 이 서비스는 사용자의 잔액을 확인하고 이체를 실행합니다.
CAI의 구현은 세 가지 엔드포인트를 사용합니다.
첫째, POST /x402-payment-prepare는 API로부터 챌린지를 가져와 사용자가 충분한 잔액을 보유하고 있는지, 그리고 활성화된 위임 (mandate)이 이 가맹점을 커버하는지 확인합니다. 이는 attempt_id와 requires_user_confirm 플래그를 반환합니다. 사용자가 이 도메인에 대해 결제 위임 (payment mandate)을 설정한 경우, 플래그는 false가 되며 에이전트는 진행할 수 있습니다.
둘째, 에이전트는 attempt_id와 user_confirmed: true를 포함하여 POST /x402-payment-execute를 호출합니다 (또는 위임이 커버하는 경우 확인 과정을 건너뜁니다). CAI는 요청된 체인에서 수탁 이체 (custodial transfer)를 실행하고 증거로서 tx_hash를 반환합니다.
셋째, 에이전트는 CAI의 응답에서 받은 tx_hash 또는 x402_retry_hint를 첨부하여 결제된 API 리소스를 다시 요청합니다. API는 온체인 (on-chain) 결제를 검증하고 리소스를 제공합니다.
재시도 (retry)는 에이전트의 책임입니다. CAI는 결제 증거를 반환합니다. 에이전트는 이를 판매자에게 제시합니다.
결제 위임 (Payment mandates): 자율 에이전트를 위한 지출 한도
위임(Mandate) 시스템이 더 흥미로운 부분입니다. 결제 위임 (Payment mandate)은 사용자가 생성하는 권한으로, 에이전트가 매번 확인을 요청하지 않고도 특정 가맹점 도메인(merchant domain)에서 정해진 한도 내에서 지출할 수 있도록 허용합니다.
흐름은 POST /payment-mandate-create로 시작됩니다. 사용자는 merchant_domain, max_amount_per_payment_usd, daily_cap_usd, 선택 사항인 allowed_resource_patterns, 그리고 expires_in_hours 값을 지정합니다. 사용자는 CAI의 호스팅된 검증 페이지를 통해 위임을 승인합니다. 활성화되면, 에이전트는 해당 도메인의 모든 결제에 대해 x402_payment_prepare를 호출할 수 있으며, 결제 금액이 위임 한도 내에 있는 한 응답은 requires_user_confirm: false로 설정됩니다.
사용자는 POST /payment-mandate-revoke를 통해 언제든지 위임을 취소할 수 있으며, GET /payment-mandate-status로 활성화된 위임을 확인할 수 있습니다.
이는 AP2 (Authorization Protocol for Payments) 개념과 동일한 패턴을 따르지만, CAI의 구현은 CAI 네이티브 버전입니다. 시스템은 결제당 및 일일 지출 한도를 강제하며, 도메인 패턴 매칭을 통해 위임이 적용되는 API 엔드포인트를 제한합니다.
에이전트의 지갑 확보 방법
이 모든 과정이 작동하기 전에, 에이전트는 결제에 사용할 지갑이 필요합니다. CAI의 모델은 API 키를 통해 접근하는 수탁형 멀티체인 지갑 (custodial multi-chain wallet)입니다. 에이전트는 GET /get-identity를 호출하여 계정이 존재하는지 확인한 다음, POST /get-wallet-balances를 호출하여 관련 체인의 잔액을 확인합니다.
잔액이 부족할 경우, 에이전트는 POST /create-hosted-action (action_type: "deposit" 포함)을 통해 입금 링크를 생성하거나, MoonPay를 통한 법정화폐 온램프 (fiat on-ramp)를 사용할 수 있습니다 (제3자 KYC 적용). 에이전트는 개인 키 (private keys)를 다루지 않습니다. 에이전트는 CAI API를 호출하고, CAI가 수탁형 이체 (custodial transfer)를 실행합니다.
전체 시퀀스는 https://api.cai.com/functions/v1에 있는 skill.md 계약에 문서화되어 있으며, 이는 모든 엔드포인트, 스코프 (scopes), 그리고 gap ID에 대한 단일 진실 공급원 (single source of truth)입니다.
MCP 경로
Model Context Protocol (MCP)를 사용하는 에이전트의 경우, @cailab/mcp npm 패키지가 동일한 도구 세트를 노출하는 stdio 전송 (stdio transport) 방식을 제공합니다. 에이전트는 CAI_API_KEY를 환경 변수 (environment variable)로 설정하며, MCP 서버가 인증 (authentication) 및 라우팅 (routing)을 처리합니다. 동일한 x402 엔드포인트 (endpoints), 결제 위임 (mandate) 도구, 그리고 지갑 작업 (wallet operations)을 MCP 인터페이스를 통해 사용할 수 있습니다.
얼리 액세스 가드레일 (Early access guardrails)
현재 얼리 액세스 (early access) 단계이므로, CAI는 하루 $200의 자동 지출 한도를 적용합니다. 새로운 수취인 및 새로운 기기는 첫 번째 이체 전에 사용자의 확인이 필요합니다. 제3자 사이트의 자격 증명 (credentials)을 저장하기 위한 볼트 (vault) 제품도 사용할 수 있으며, 이를 통해 에이전트는 상호작용하는 플랫폼의 로그인 자격 증명을 저장하고 검색할 수 있습니다.
정직한 라벨 (The honest label)
cai.com/capabilities.html의 기능 페이지는 x402를 Live로, 결제 위임 (payment mandates)을 Live로 표시합니다. 두 항목 모두 구현이 작동 중이지만 모든 예외 상황 (edge case)을 커버하지 않을 수 있음을 나타내는 gap ID (GAP_X402_V1, GAP_PAYMENT_MANDATE_V1)를 포함하고 있습니다. gap ID는 API 응답의 일부이므로, 에이전트는 이를 확인하고 그에 따라 동작을 조정할 수 있습니다.
WeChat Pay는 Planned (계획됨)로 나열되어 있습니다. 브릿지 (Bridge) 및 크로스 체인 (cross-chain) 이체는 Live (GAP_BRIDGE_V1 포함) 상태입니다. MoonPay를 통한 법정 화폐 온램프 (fiat on-ramp)는 제3자 KYC 제한과 함께 Live 상태입니다.
에이전트 개발자에게 의미하는 바
에이전트 대 API (Agent-to-API) 결제는 더 이상 처음부터 해결해야 하는 설계 문제가 아닙니다. x402 프로토콜은 HTTP 402 챌린지 (challenges)를 처리하는 표준화된 방법을 제공합니다. 위임 (mandate) 시스템을 통해 에이전트는 사용자가 정의한 한도 내에서 자율적으로 운영될 수 있습니다. 수탁형 지갑 (custodial wallet) 모델은 에이전트가 개인 키 (private key)에 절대 접근하지 않음을 의미합니다.
API 계약 (contract)은 cai.com/skill.md에 있습니다. MCP 패키지는 npm에 있습니다. 기능 매트릭스 (capabilities matrix)는 cai.com/capabilities.html에 있습니다. 에이전트는 get_identity를 호출하고, 잔액을 확인하며, 필요할 때 결제합니다.
402 상태 코드 (status code)는 1998년부터 사용 사례를 기다려 왔습니다. AI 에이전트가 마침내 이를 정착시키는 주인공이 될지도 모릅니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기