К основному содержанию
скилл CX Codex

payment-idempotency — скилл для Claude Code: защита от двойных

Скилл для кода платёжного коннектора: не даёт повторным запросам Gateway создать второе списание у эквайера.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add vtex/skills --skill payment-idempotency -a claude-code
Открыть на GitHub

Что делает payment-idempotency

Скилл включается, когда вы пишете обработчики Create Payment, Cancel, Capture и Refund в платёжном коннекторе или разбираетесь с дублирующимися запросами. Он задаёт правила идемпотентности: paymentId служит ключом для Create Payment, requestId — для отмены, подтверждения и возврата. Повторный вызов с тем же paymentId должен вернуть сохранённый ответ, а не идти в эквайер заново.

Внутри — разбор состояний платежа (undefined → approved → settled, undefined → denied, approved → cancelled) и примеры кода на TypeScript: как проверить хранилище перед обработкой и как отдать тот же ответ. Отдельно сказано про асинхронные методы вроде Boleto и Pix: до подтверждения эквайером статус остаётся undefined, синхронное одобрение недопустимо.

Хранить ответы нужно в постоянном хранилище — PostgreSQL, DynamoDB или VBase для VTEX IO. In-memory не подходит: после перезапуска записи пропадут, и Gateway, который повторяет запросы со статусом undefined до 7 дней, снова дойдёт до эквайера. Если два повтора приходят одновременно, обычная запись «последний победил» теряет обновление статуса — нужен etag или ifMatch. Это повод проверить свой слой хранения до релиза.

Скилл не покрывает формы ответов и HTTP-методы PPP, логику асинхронных callback-уведомлений, PCI-требования и терминальные платежи POS — для них есть отдельные скиллы.

Какие задачи решает

  • вернуть тот же ответ на повторный Create Payment вместо нового списания
  • проверить paymentId в хранилище до вызова эквайера
  • не допустить недопустимых переходов состояний платежа
  • удержать статус undefined для Boleto и Pix до подтверждения
  • защитить обновление статуса от перезаписи при параллельных повторах

Примеры запросов агенту

  • проверь мой обработчик Create Payment на идемпотентность по paymentId
  • почему повторный запрос Gateway создаёт второе списание и как это исправить
  • добавь проверку requestId в обработчик Refund

Как установить payment-idempotency

1Через Skills CLI (Vercel)

npx skills add vtex/skills --skill payment-idempotency -a claude-code

2Вручную: положить файлы

~/.claude/skills/payment-idempotency/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/payment-idempotency/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о payment-idempotency

Как установить payment-idempotency в Claude?

Выполните npx skills add vtex/skills --skill payment-idempotency -a claude-code. Файл скилла появится по пути ~/.claude/skills/payment-idempotency/SKILL.md.

Что делает payment-idempotency?

Задаёт правила идемпотентности для платёжного коннектора: ключи paymentId и requestId, допустимые переходы состояний, семантику повторов для отмены и возврата. Помогает не допустить двойных списаний при повторных запросах Gateway.

С какими скиллами он сочетается?

Для терминальных платежей POS его берут вместе с payment-ppp-pos. Формы ответов PPP, асинхронные callback-уведомления и PCI-требования вынесены в отдельные скиллы.

Похожие скиллы

Всё по теме «Бэкенд и API» →
api-idempotency-retry Samuel Berthe Помогает спроектировать Idempotency-Key и правила повторов для публичного API, чтобы интеграторы ретраили POST без дублей. CX Codex +1 8 000установок payment-testing kindlmann Набор инструкций для сквозного тестирования платежей через песочницы Stripe, Adyen и PayPal. Помогает настроить проверки списаний, сценариев 3DS и вебхуков в Playwright. CX Codex +1 978установок payment-gateway-integration aj-geddes Скилл для интеграции Stripe, PayPal и Square в бэкенд: платежи, подписки, вебхуки. Пригодится, когда пишете биллинг или магазин. CX Codex +1 524установок payment-integration mrgoonie Скилл для интеграции платежей: SePay и VietQR, Polar, Stripe, Paddle, Creem.io. Пригодится, когда нужно провести оплату от чекаута до вебхука. CX Codex +1 349установок payment-processing Seth Hobson Плагин для работы с платежами: подключает Stripe и PayPal, помогает собрать оформление заказа, подписки и пройти требования PCI. Пригодится, когда в проект нужно встроить оплату, а не изобретать её с нуля. CX Codex ★ 41 729звёзд репо prisma-patterns affaan-m Набор правил и архитектурных шаблонов для работы с Prisma ORM в TypeScript. Помогает писать безопасные схемы, запросы и транзакции без утечек соединений. CX Codex +1 4 500установок

Из того же набора8

vtex-io-masterdata Помогает решить, стоит ли вообще хранить данные в Master Data, и если да — как вести сущности, схемы и CRUD в VTEX IO. CX Codex +1 1 200установок vtex-io-service-paths-and-cdn Помогает выбрать префикс пути в service.json и настроить Cache-Control так, чтобы кэш на edge не отдал чужие данные. CX Codex +1 1 100установок vtex-io-auth-tokens-and-context Помогает решить, какой токен VTEX IO должен стоять за запросом из бэкенд-приложения: приложение, покупатель или админ. CX Codex +1 1 100установок vtex-io-http-routes Помогает проектировать HTTP-эндпоинты бэкенд-сервиса VTEX IO: границы роутов, middleware, валидацию запросов и форму ответа. CX Codex +1 1 100установок marketplace-rate-limiting Учит агента обрабатывать 429 от VTEX API: экспоненциальный backoff с джиттером, чтение заголовков лимитов, circuit breaker и очередь запросов. CX Codex +1 1 000установок payment-async-flow Правила для кода платёжного коннектора VTEX: Boleto, Pix, банковские редиректы, callbackUrl и проверка подписи. CX Codex +1 1 000установок vtex-io-rbac Помогает настроить доступ к маршрутам и ресурсам приложения VTEX IO: роли, ресурсные политики, VRN и директивы @auth. CX Codex +1 737установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой