payment-async-flow — скилл для Claude Code: асинхронные платежи VTEX
Правила для кода платёжного коннектора VTEX: Boleto, Pix, банковские редиректы, callbackUrl и проверка подписи.
npx skills add vtex/skills --skill payment-async-flow -a claude-codeЧто делает payment-async-flow
Скилл включается, когда коннектор принимает платёж, который не закрывается сразу: Boleto Bancário, Pix, банковский перевод, редирект на сторонний сайт. В таких случаях Create Payment обязан вернуть status: "undefined", а финальный статус приходит позже через callbackUrl. Если вернуть "approved" раньше времени, заказ уйдёт в сборку без денег; если "denied" — отменится платёж, который клиент ещё может завершить.
Внутри разобраны два режима callbackUrl: без VTEX IO это эндпоинт уведомления, куда статус отправляют с заголовками X-VTEX-API-AppKey и X-VTEX-API-AppToken; с VTEX IO — эндпоинт повтора, POST без тела заставляет шлюз заново вызвать authorize(). Параметр X-VTEX-signature в callbackUrl сохраняют как есть, не вырезают и не правят. Отдельно расписано, как считать delayToCancel: для Pix от 900 до 3600 секунд по времени жизни QR-кода, для Boleto — по сроку оплаты счёта.
Есть ограничение, о которое легко споткнуться: inboundRequestsUrl работает только server-to-server через POST и не поддерживает GET-редирект из браузера. Для PayPal и 3DS придётся поднимать собственный публичный маршрут. Скилл не покрывает контракты PPP, идемпотентность paymentId/requestId, PCI и терминальные платежи — для них в наборе есть соседние скиллы.
Какие задачи решает
- вернуть
undefinedдля платежа, который подтвердится позже - принять уведомление о смене статуса через
callbackUrl - проверить
X-VTEX-signatureв запросе от шлюза - посчитать
delayToCancelпод срок жизни Pix-кода или Boleto - сделать публичный маршрут для возврата браузера после 3DS
Примеры запросов агенту
- Реализуй приём Pix в коннекторе: Create Payment должен вернуть undefined, статус придёт через callbackUrl
- Проверь, что мы не теряем X-VTEX-signature в callbackUrl и корректно считаем delayToCancel для Boleto
- Нужен редирект браузера после 3DS — inboundRequestsUrl не подходит, предложи публичный маршрут
Как установить payment-async-flow
1Через Skills CLI (Vercel)
npx skills add vtex/skills --skill payment-async-flow -a claude-code2Вручную: положить файлы
~/.claude/skills/payment-async-flow/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/payment-async-flow/
1Через Skills CLI (Vercel)
npx skills add vtex/skills --skill payment-async-flow -a codex2Вручную: положить файлы
.agents/skills/payment-async-flow/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add vtex/skills --skill payment-async-flow -a cursor2Вручную: положить файлы
.cursor/skills/payment-async-flow/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install vtex/skills payment-async-flow2Вручную: положить файлы
.github/skills/payment-async-flow/SKILL.md1Через Skills CLI (Vercel)
npx skills add vtex/skills --skill payment-async-flow -a gemini-cli2Командой платформы
gemini skills install https://github.com/vtex/skills --path skills/payment-async-flowВручную: положить файлы
.devin/skills/payment-async-flow/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add vtex/skills --skill payment-async-flow -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора8
Похожие
Рядом в теме «Бэкенд и API»
Всё по теме «Бэкенд и API» →Вопросы о payment-async-flow
Как установить payment-async-flow в Claude?
Выполните npx skills add vtex/skills --skill payment-async-flow -a claude-code. Скилл появится в ~/.claude/skills/payment-async-flow/SKILL.md.
Что делает payment-async-flow?
Задаёт правила для асинхронных платежей в коннекторе VTEX: возврат undefined, работа с callbackUrl, проверка подписи и расчёт delayToCancel.
Почему нельзя вернуть approved сразу?
Шлюз воспримет это как полученные деньги и отпустит заказ в сборку. При неподтверждённом платеже клиент может так и не оплатить.