wompi

Expert developer guide and working code generator for Wompi, Colombia's leading payment gateway (backed by Bancolombia). ALWAYS use this skill when the user mentions Wompi, wants to integrate Colombian payments, or asks about PSE, Nequi, Daviplata, Bancolombia Button/QR/Transfer, card tokenization, or accepting payments in COP. Also trigger for: Wompi API keys, integrity signatures, Wompi webhooks/events, payment links in Colombia, transaction voiding/refunds, payment sources (subscriptions/recurring billing), PCOL/Puntos Colombia, SU+ Pay, third-party payouts/dispersión de pagos, taxes/IVA on transactions, sandbox testing, or production deployment checklist for Wompi. Generates precise, secure, production-ready code in Node.js, Python, and PHP. Covers the full gateway integration lifecycle end-to-end.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wompi" with this command: npx skills add noxai-co/wompi-skills/noxai-co-wompi-skills-wompi

Wompi — Complete Developer Skill

Wompi is Colombia's leading payment gateway, backed by Bancolombia. It processes COP payments via cards, PSE, Nequi, Daviplata, Bancolombia Button/QR, cash (Corresponsales), Puntos Colombia, and SU+ Pay.

Docs: https://docs.wompi.co | Dashboard: https://comercios.wompi.co


Reference Files — Read These As Needed

FileRead when...
references/auth-and-security.mdSetting up keys, generating signatures, securing the integration
references/payment-methods.mdChoosing or implementing a specific payment method
references/transactions.mdCreating transactions, polling status, handling voids
references/webhooks.mdReceiving and validating Wompi events
references/payment-links.mdGenerating shareable payment links programmatically
references/payment-sources.mdTokenization, subscriptions, recurring billing
references/payouts.mdDispersión de pagos / third-party payments API
references/taxes.mdSending IVA / consumption tax in transactions
references/sandbox.mdSandbox testing data, simulating outcomes
references/production-checklist.mdPre-launch security and integration checklist
references/errors.mdError codes, retry logic, idempotency patterns

Environments & Keys (Quick Reference)

EnvironmentAPI Base URL
Sandboxhttps://sandbox.wompi.co/v1
Productionhttps://production.wompi.co/v1
KeyPrefixUse
Public keypub_test_ / pub_prod_Frontend only. Safe to expose.
Private keyprv_test_ / prv_prod_Server-side only. Never expose.
Integrity secrettest_integrity_ / prod_integrity_Sign transactions. Server-side only.
Events secrettest_events_ / prod_events_Validate webhooks. Server-side only.

⚠️ Sandbox and Production are completely independent environments — separate keys, separate webhook URLs, separate dashboard settings.


Amounts

All amounts are Colombian pesos in cents as integers. $35,000 COP → 3500000 | $1,000 COP → 100000


Payment Methods Overview

MethodtypeSync?Notes
Credit/Debit CardCARDTokenization required; supports installments (credit only)
PSE Bank TransferPSE❌ AsyncRequires bank list + ID; redirect_url required
NequiNEQUI❌ AsyncPhone number; push notification; up to 10 min
DaviplataDAVIPLATA❌ AsyncOTP flow — see references/payment-methods.md
Bancolombia ButtonBANCOLOMBIA_TRANSFER❌ AsyncRedirects to Bancolombia app/web
Bancolombia QRBANCOLOMBIA_QR❌ AsyncNatural persons only; returns QR image URL
Cash CorresponsalBANCOLOMBIA_COLLECT❌ AsyncCash at 15,000+ Bancolombia points
Puntos ColombiaPCOL❌ AsyncLoyalty points; optional 2nd payment method
SU+ PaySU_PLUS❌ AsyncSupermarket loyalty — redirect flow

For any async method: always start as PENDING → use webhooks or polling to get final status.


Core Flow (Every Integration)

1. Server: Fetch acceptance tokens  →  GET /v1/merchants/:pub_key
2. Server: Generate integrity signature  →  SHA256(ref + amount + currency + secret)
3. Client/Server: Present payment UI  →  Widget, Checkout Web, or direct API
4. Server: Verify transaction  →  GET /v1/transactions/:id  (never trust redirect alone)
5. Server: Handle webhook  →  POST from Wompi → validate checksum → update order

Integration Methods (Summary)

Widget (Recommended — handles all complexity)

<form>
  <script
    src="https://checkout.wompi.co/widget.js"
    data-render="button"
    data-public-key="pub_test_YOUR_KEY"
    data-currency="COP"
    data-amount-in-cents="5000000"
    data-reference="ORDER-001"
    data-signature:integrity="SERVER_GENERATED_HASH"
    data-redirect-url="https://yoursite.com/confirmation">
  </script>
</form>

Web Checkout (Redirect)

<form method="GET" action="https://checkout.wompi.co/p/">
  <input type="hidden" name="public-key"        value="pub_test_YOUR_KEY" />
  <input type="hidden" name="currency"           value="COP" />
  <input type="hidden" name="amount-in-cents"    value="5000000" />
  <input type="hidden" name="reference"          value="ORDER-001" />
  <input type="hidden" name="signature:integrity" value="SERVER_GENERATED_HASH" />
  <input type="hidden" name="redirect-url"       value="https://yoursite.com/ok" />
  <button type="submit">Pagar con Wompi</button>
</form>

Direct API

See references/transactions.md for complete server-side transaction creation in Node.js, Python, and PHP.


Transaction Statuses

StatusMeaningAction
PENDINGAwaiting action or processingPoll or wait for webhook
APPROVEDPayment successful ✅Fulfill order
DECLINEDRejected by bank ❌Notify customer; allow retry
VOIDEDAnnulled (cards only)Update order; no refund via API
ERRORPayment method errorLog; allow retry

Common Mistakes — Never Do These

  1. Private key or integrity secret in frontend code — attackers can forge any transaction amount.
  2. Generating integrity signature on the frontend — same consequence as above.
  3. Trusting redirect URL ?id= to confirm payment — easily spoofed; always verify server-side.
  4. Reusing references — must be unique per Wompi account, ever.
  5. Skipping acceptance tokens on API calls — violates Colombian Habeas Data law; call will fail.
  6. Hardcoding signature.properties in webhook handler — array changes; always read dynamically.
  7. Same webhook URL for Sandbox and Production — configure them separately in the dashboard.
  8. Not polling / not using webhooks for async methods — PSE/Nequi/QR always start as PENDING.
  9. Adding taxes on top of amount_in_cents — taxes are included in the total, not added to it.
  10. Reusing card tokens across merchants — tokens are merchant-scoped and expire.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

obsidian

Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.

Archived SourceRecently Updated
Coding

gog

Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.

Archived SourceRecently Updated
Coding

obsidian-notes

Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.

Archived SourceRecently Updated
Coding

mcporter-cli

Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.

Archived SourceRecently Updated