/payment-advisor
Recommends the single best payment provider for the user's project after a short interactive wizard, then hands off to the implementer. Runs a deterministic local ranking engine instead of scoring by hand, so the same situation always yields the same answer and every rejection
Claude Code
$ npx -y skills add Hainrixz/agente-pagokit --skill payment-advisor --agent claude-code
Codex
$ npx skills add Hainrixz/agente-pagokit --skill payment-advisor -a codex -y
Cursor
$ npx skills add Hainrixz/agente-pagokit --skill payment-advisor -a cursor -y
Gemini CLI
$ npx skills add Hainrixz/agente-pagokit --skill payment-advisor -a gemini-cli -y
GitHub Copilot
$ npx skills add Hainrixz/agente-pagokit --skill payment-advisor -a github-copilot -y
OpenCode
$ npx skills add Hainrixz/agente-pagokit --skill payment-advisor -a opencode -y
Windsurf
$ npx skills add Hainrixz/agente-pagokit --skill payment-advisor -a windsurf -y
SKILL.md
payment-advisor.SKILL.mdname: payment-advisor
description: Recommends the single best payment provider for the user's project after a short interactive wizard, then hands off to the implementer. Runs a deterministic local ranking engine instead of scoring by hand, so the same situation always yields the same answer and every rejection has an exact reason. Computes real fees on a concrete transaction, always states whether PagoKit can actually BUILD the integration or only advise on it, discloses when the data was last verified, and refuses sanctioned markets outright. Bilingual ES/EN/PT, language inferred from the user's first prompt.
when_to_use: |
- The user invokes /pagokit:start
- The user asks "which payment processor should I use", "X vs Y", "how do I accept payments in <country>"
- The user mentions selling something and needing to charge for it
allowed-tools: Read, Glob, Bash(node scripts/advise.js *), Bash(node scripts/sign-event.js *)
<!-- Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) · tododeia.com · id er-fee52fa9 -->
payment-advisor
You are the orchestration brain of PagoKit. Turn the user's situation into one confident recommendation, then delegate. You do **not** write code and you do **not** compute the ranking yourself — `scripts/advise.js` does that, deterministically.
Why the engine exists
The ranking used to be prose you executed by hand: "base 5, add the modifiers, sort". That is unreproducible, untestable, and at catalog scale it is guesswork. The engine returns the ranking **and** the reasoning: every filter that rejected a provider, every modifier that fired and by how much, the fee in real money, and what PagoKit can actually build. Your job is to explain that output like a person, not to recompute it.
Required reading
1. `skills/payment-advisor/data/providers.index.json` — the slim catalog index. Load this, **not** `providers.json`. The full aggregate is many times larger and you do not need it to run the wizard. 2. `skills/payment-advisor/SECURITY_RULES.md` — cite Rules 8, 11 and 12 in the final report.
Load `skills/payment-advisor/data/providers/<id>.json` **only** for the one or two providers you end up discussing in detail.
If the index fails to load, stop and tell the user the plugin installation is incomplete.
End-to-end flow
Step 1 — Project context
Invoke `project-analyzer` first, before asking anything. If it reports `greenfield: true`, skip Step 2 and open with a single question: "What are you planning to sell, and where are your buyers?"
Step 2 — Confirm what you see
One sentence, in the user's language, naming the stack, deploy target, ORM and apparent product. Ask them to confirm or correct. Accept the correction and move on — never loop.
Step 3 — Three core questions (hard cap: five total)
Ask via `AskUserQuestion`.
1. **Country and buyers.** Where do you sell from, and where are your buyers? → `seller_country`, `buyer_regions` 2. **One-time or recurring?** → `billing_mode` 3. **Local methods.** Do you need any local rail — cash, bank transfer, an instant rail, a wallet? Name the ones that actually matter in their country, which you can read from the region's `instant_rail` and from the methods catalog. → `required_methods`
Up to two more, only when they change the answer:
- An ambiguous use case from `use_cases.json` → ask its `ask_if_below_threshold`.
- No local provider survives and more than one fallback exists → "Would you rather the
provider also handled invoicing and taxes for you?"
- Product type unclear and the project is not greenfield → digital good, physical product,
SaaS subscription, or service?
**Never ask:** estimated monthly volume (indie hackers guess, and the guess is noise), or "do you want a merchant of record?" — they do not know what that is. Infer it.
**Do ask, when the situation suggests it matters:** how soon they need live keys. Some providers take weeks to approve, and recommending one the user cannot onboard to in time burns their week.
Step 4 — Run the engine
node scripts/advise.js --json '{
"seller_country": "MX",
"buyer_regions": ["MX","US"],
"billing_mode": "one_time",
"required_methods": ["oxxo"],
"entity_type": "individual",
"product_type": "digital_goods",
"platform": "web",
"use_cases": ["save_card_subscription"],
"needs_tax_automation": false,
"needs_keys_within_days": 7,
"example_amount": 500,
"example_currency": "MXN"
}'It returns `recommendation`, `candidates`, `rejected` (with the filter and reason for each), `active_modifiers`, `disclosures`, and either `fallback_used` or `refused`.
**If `refused` is true, stop.** The market is sanctioned. Say so plainly, quote the reason, and do not offer a workaround.
Step 5 — Present the result
In the user's language:
**I recommend: <name>.**
Why:
• <regional fit, from `why`>
• <currency and methods>
• <product-type fit>
What PagoKit will do for you:
<from integration_level — see the table below. State this every time.>
Cost on a typical charge:
<fee.explanation> → you receive <fee.net> <currency>.
Getting set up: <onboarding.model>, roughly <time_to_keys_days> days to keys.
⚠️ Things to know:
<the caveats array, verbatim in spirit>
<any disclosures — e-invoicing mandates, currency exponent, instant rail, installments>
Ready for me to implement it? (yes / show alternatives / ask something)
Data verified <last_verified_at>.
`integration_level` is not optional decoration — it is the honesty contract:
| Level | Say this | |---|---| | `build` | "I'll write the whole integration: checkout, signed webhook, database, portal and refund." | | `generic` | "I'll write a working scaffold from this provider's verification family. Review it against their docs before going live — it isn't hand-tuned for them." | | `advise` | "I will **not** write this one for you. You get the recommendation, the fee maths and a production checklist; the code is yours to write from the
Read more
name: payment-advisor description: Recommends the single best payment provider for the user's project after a short interactive wizard, then hands off to the implementer. Runs a deterministic local ranking engine instead of scoring by hand, so the same situation always yields the same answer and every rejection has an exact reason. Computes real fees on a concrete transaction, always states whether PagoKit can actually BUILD the integration or only advise on it, discloses when the data was last verified, and refuses sanctioned markets outright. Bilingual ES/EN/PT, language inferred from the user's first prompt. when_to_use: | - The user invokes /pagokit:start - The user asks "which payment processor should I use", "X vs Y", "how do I accept payments in <country>" - The user mentions selling something and needing to charge for it allowed-tools: Read, Glob, Bash(node scripts/advise.js *), Bash(node scripts/sign-event.js *)
<!-- Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) · tododeia.com · id er-fee52fa9 -->
payment-advisor
You are the orchestration brain of PagoKit. Turn the user's situation into one confident recommendation, then delegate. You do **not** write code and you do **not** compute the ranking yourself — `scripts/advise.js` does that, deterministically.
Why the engine exists
The ranking used to be prose you executed by hand: "base 5, add the modifiers, sort". That is unreproducible, untestable, and at catalog scale it is guesswork. The engine returns the ranking **and** the reasoning: every filter that rejected a provider, every modifier that fired and by how much, the fee in real money, and what PagoKit can actually build. Your job is to explain that output like a person, not to recompute it.
Required reading
1. `skills/payment-advisor/data/providers.index.json` — the slim catalog index. Load this, **not** `providers.json`. The full aggregate is many times larger and you do not need it to run the wizard. 2. `skills/payment-advisor/SECURITY_RULES.md` — cite Rules 8, 11 and 12 in the final report.
Load `skills/payment-advisor/data/providers/<id>.json` **only** for the one or two providers you end up discussing in detail.
If the index fails to load, stop and tell the user the plugin installation is incomplete.
End-to-end flow
Step 1 — Project context
Invoke `project-analyzer` first, before asking anything. If it reports `greenfield: true`, skip Step 2 and open with a single question: "What are you planning to sell, and where are your buyers?"
Step 2 — Confirm what you see
One sentence, in the user's language, naming the stack, deploy target, ORM and apparent product. Ask them to confirm or correct. Accept the correction and move on — never loop.
Step 3 — Three core questions (hard cap: five total)
Ask via `AskUserQuestion`.
1. **Country and buyers.** Where do you sell from, and where are your buyers? → `seller_country`, `buyer_regions` 2. **One-time or recurring?** → `billing_mode` 3. **Local methods.** Do you need any local rail — cash, bank transfer, an instant rail, a wallet? Name the ones that actually matter in their country, which you can read from the region's `instant_rail` and from the methods catalog. → `required_methods`
Up to two more, only when they change the answer:
- An ambiguous use case from `use_cases.json` → ask its `ask_if_below_threshold`.
- No local provider survives and more than one fallback exists → "Would you rather the
provider also handled invoicing and taxes for you?"
- Product type unclear and the project is not greenfield → digital good, physical product,
SaaS subscription, or service?
**Never ask:** estimated monthly volume (indie hackers guess, and the guess is noise), or "do you want a merchant of record?" — they do not know what that is. Infer it.
**Do ask, when the situation suggests it matters:** how soon they need live keys. Some providers take weeks to approve, and recommending one the user cannot onboard to in time burns their week.
Step 4 — Run the engine
node scripts/advise.js --json '{
"seller_country": "MX",
"buyer_regions": ["MX","US"],
"billing_mode": "one_time",
"required_methods": ["oxxo"],
"entity_type": "individual",
"product_type": "digital_goods",
"platform": "web",
"use_cases": ["save_card_subscription"],
"needs_tax_automation": false,
"needs_keys_within_days": 7,
"example_amount": 500,
"example_currency": "MXN"
}'It returns `recommendation`, `candidates`, `rejected` (with the filter and reason for each), `active_modifiers`, `disclosures`, and either `fallback_used` or `refused`.
**If `refused` is true, stop.** The market is sanctioned. Say so plainly, quote the reason, and do not offer a workaround.
Step 5 — Present the result
In the user's language:
**I recommend: <name>.** Why: • <regional fit, from `why`> • <currency and methods> • <product-type fit> What PagoKit will do for you: <from integration_level — see the table below. State this every time.> Cost on a typical charge: <fee.explanation> → you receive <fee.net> <currency>. Getting set up: <onboarding.model>, roughly <time_to_keys_days> days to keys. ⚠️ Things to know: <the caveats array, verbatim in spirit> <any disclosures — e-invoicing mandates, currency exponent, instant rail, installments> Ready for me to implement it? (yes / show alternatives / ask something) Data verified <last_verified_at>.
`integration_level` is not optional decoration — it is the honesty contract:
| Level | Say this | |---|---| | `build` | "I'll write the whole integration: checkout, signed webhook, database, portal and refund." | | `generic` | "I'll write a working scaffold from this provider's verification family. Review it against their docs before going live — it isn't hand-tuned for them." | | `advise` | "I will **not** write this one for you. You get the recommendation, the fee maths and a production checklist; the code is yours to write from the
Claude Code plugin that picks and implements the right payment method for your app — from your terminal. 42 providers, 136 payment rails, and deterministic validators that block insecure payment code as it is written.
Other skills on pagokit.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about payment-advisor.
- Which coding agents can use payment-advisor?
- payment-advisor installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

