payment-provider-framework

Implement VTEX IO payment connectors with PaymentProviderService and configuration validation.

Updated Mar 27, 2026
One-click install
npx skills add https://github.com/exilonX/ap2 --skill payment-provider-framework-exilonx
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: payment-provider-framework
Source: https://github.com/exilonX/ap2/tree/main/.agents/skills/payment-provider-framework
Command: npx skills add https://github.com/exilonX/ap2 --skill payment-provider-framework-exilonx

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Payment connector implementations often fail or become risky because VTEX IO payment-provider wiring, configuration validation, and Secure Proxy rules are easy to get wrong and hard to debug later.

Core Features & Use Cases

  • VTEX IO Payment Provider Framework setup: Guides correct wiring of @vtex/payment-provider, PaymentProvider, and PaymentProviderService in node/index.ts, including the paymentProvider builder declaration and the /manifest and PPP route behaviors.
  • Configuration and dependency correctness: Ensures configuration.json uses only valid schema fields and that TypeScript Builder-Hub compatibility is maintained via TS 3.9.7-safe code and dependency pinning with resolutions.
  • Secure Proxy PCI-safe card flows: Specifies when to use SecureExternalClient with secureProxyUrl (authorize-only), proper content types, and how to separate post-auth operations that must call the PSP directly.
  • Operational checklist for PSP integration: Covers base URL/path correctness, token caching needs, affiliation/testing workflow, and common failure modes that block homologation.

Use case example: You are implementing a new VTEX IO payment connector for a PSP and need to ensure the authorize flow goes through Secure Proxy while cancel/capture/refund call the PSP directly, with a configuration that passes strict builder validation.

Quick Start

Use the payment-provider-framework skill to implement your VTEX IO payment connector by wiring PaymentProviderService, validating paymentProvider/configuration.json, and setting up Secure Proxy authorize calls and direct PSP calls for post-auth operations.

Frequently Asked Questions about payment-provider-framework

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement a VTEX IO payment connector with Secure Proxy for PCI-safe card flows?

To implement a VTEX IO payment connector, wire `PaymentProviderService` in `node/index.ts` and route authorize-only calls through `SecureExternalClient` using `secureProxyUrl` for PCI-safe card flows.

Why does my VTEX IO payment provider configuration fail strict builder validation?

VTEX IO payment provider configuration fails strict builder validation when `configuration.json` uses invalid schema fields or dependencies are not pinned to TypeScript 3.9.7-safe versions using `resolutions`.

When do I use SecureExternalClient versus ExternalClient in a VTEX IO payment provider?

Use `SecureExternalClient` with `secureProxyUrl` for authorize-only PCI-safe flows, and use `ExternalClient` with outbound-access policy for post-authorization operations like capture, cancel, and refund that call the PSP directly.

What is the Payment Provider Framework (PPF) process for registering routes on VTEX IO?

The Payment Provider Framework process on VTEX IO involves implementing `PaymentProvider`, registering `/manifest` and PPP route behaviors with `PaymentProviderService`, and declaring the `paymentProvider` builder in your manifest.

Can I use TypeScript higher than 3.9.7 for VTEX IO payment provider framework development?

No, VTEX IO payment provider framework development requires TypeScript 3.9.7 to satisfy Builder-Hub constraints, ensuring safe dependency resolutions and strict configuration validation compatibility.

What are common failure modes that block homologation for VTEX IO payment connectors?

Common failure modes blocking VTEX IO payment connector homologation include incorrect base URL paths, missing token caching, improper authorize flow routing, and invalid `paymentProvider/configuration.json` schema fields.