하루 동안 약 1,900개의 x402 API를 구매하며 얻은 교훈 (1,255개 성공)
Lessons from trying to buy from ~1,900 x402 APIs in one day (1,255 delivered)
핵심 요약
AI 에이전트가 API 결제 시 겪는 오류를 방지하기 위한 검증 전략과 결제 안정성 확보 방안을 공유합니다.
- 결제 검증 — 402 응답 후 재시도 전 결제 완료 여부를 반드시 확인함
- 가격 변동 대응 — 실시간 견적과 예상 가격을 비교해 초과 시 결제 거부함
- 상태 변경 방지 — 결제 자체를 멱등성 키로 활용해 중복 실행을 방지함
- 결제 기록 관리 — 미확인 결제 건을 별도로 기록하고 사후 검증을 수행함
오늘 하루 종일 $0.01 이하로 올라온 x402 엔드포인트 거의 전부 다 털어보려고 시도했다. 1,900번 정도 시도해서 1,255번 성공했고, base에서 총 $12.19 썼음.
하다가 꼬인 것들이랑, 우리 구매 봇이 결제 전에 체크하는 항목들 정리해 봄:
-
결제했는데 또 402 뱉는 경우. 오늘만 151번 발생함. 대부분은 결제 자체가 승인이 안 나더라(전에 배치 돌려보니까 5개 중 4개는 안 됐음). 그러니까 이건 도둑질이라기보단 걍 체크아웃 시스템이 맛탱이 간 거임. 근데 무지성으로 재시도 박으면 돈 두 번 나감. 이제는 402 또 날아오면, 뭐 하기 전에 첫 번째 결제가 승인됐는지부터 확인한다.
-
가격 장난질. 20개 넘는 엔드포인트가 리스트엔 싸게 올려놓고 실제로는 더 비싸게 부름. 심하면 5배까지 ($0.01라고 써놓고 402에선 $0.05 요구). 이제는 402에 찍힌 가격이랑 내가 예상한 가격 비교해서 더 비싸면 바로 컷함.
-
호출 방식 삽질. json-rpc 스타일 엔드포인트는 바디가 포함된 POST를 원함. 그냥 GET 날리면 에러 나거나 에러 비용만 날림. 이제는 판매자가 명시한 입력 스키마 읽어서 그대로 보냄.
-
퍼블릭 RPC로 결제 확인하기. 이건 우리 실수였음. base 퍼블릭 엔드포인트가 로그 쿼리 레이트 제한을 걸어놔서, 실제로는 결제됐는데도 확인이 안 되는 경우가 수두룩했음. 오늘 안 된 것들 중 54개는 키가 있는 RPC로 바꾸니까 바로 해결되더라.
-
402를 무슨 보증수표인 양 착각하기. 402는 그냥 "돈 내놔"라는 뜻일 뿐임. 돈 낸 다음에 뭘 줄지는 아무것도 보장 안 함.
다른 사람들은 에이전트가 결제하기 전에 어떤 체크리스트 돌리는지 궁금하네.


