Money moves correctly, or it does not move at all.

Fintech & Payment System Integration

Payments are the one part of a product where "mostly works" is indistinguishable from broken. A dropped webhook sells the same seat twice. An unverified signature lets anyone forge a payment confirmation. A rounding error in a commission split becomes a dispute six months later. I build the money layer with the paranoia it deserves.

Why it matters

Every payment integration has a happy path that takes an afternoon and an edge-case surface that takes weeks — duplicate webhooks, partial refunds, chargebacks, currency conversion, installment plans, split payouts, tax compliance. The afternoon version is what most freelancers deliver. The difference shows up in the first month of real volume.

What you get

  • →Stripe — Checkout, Billing, Connect (marketplace payouts), Split (automated commission distribution), and MSI (meses sin intereses) for Mexican cards.
  • →MercadoPago with signed HMAC webhook verification, idempotency by transaction ID, and replay protection. Skipping signature verification is the most common payment bug in LATAM and it is a 6-line fix.
  • →Payway / Decidir for Argentine card processing alongside MercadoPago as a fallback rail.
  • →AFIP electronic invoicing (RG 5616) via WSFEv1 SOAP with the client's own X.509 certificate — Comprobantes A, B, C and Notas de Crédito issued directly from your system.
  • →Reconciliation engines that cross-reference bank statements against internal records and surface only the discrepancies.
  • →Financial PDF parsing — extract and normalize transactions from bank statements across dozens of account formats.
  • →Live balance sheet / Cuadro de Cuentas Mayores computed from the same transactional data the POS already writes.
  • →Internal wallet and escrow mechanics with an immutable ledger — every balance change is an append-only row, never an UPDATE.
  • →Subscription billing with plans, trials, proration, dunning and involuntary-churn recovery.

Stack

  • Stripe
  • Stripe Connect
  • Stripe Split
  • MercadoPago
  • Payway / Decidir
  • PayPal
  • AFIP WSFEv1 SOAP
  • PostgreSQL
  • Prisma
  • Python (pdfplumber)
  • Node.js
  • NestJS
  • Redis
  • Playwright

Delivered projects using this stack

Frequently asked questions

Which payment provider should we use in LATAM?+

MercadoPago is the default for Argentina, Mexico, Brazil, Chile and Colombia — highest conversion because buyers already have an account and it supports local installments. Stripe is better when you need marketplace payouts (Connect), sophisticated subscription logic, or international cards. Most serious projects run both: MercadoPago as the primary rail, Stripe for international and for split payouts.

What is the most common payment integration mistake you see?+

Not verifying the webhook signature. Both MercadoPago and Stripe sign their webhooks. If your endpoint accepts unsigned POSTs, anyone who discovers the URL can forge a paid-order confirmation and walk away with product. The second most common is non-idempotent webhook handling — the provider retries on timeout, and a non-idempotent handler double-credits the customer.

Can you handle AFIP electronic invoicing directly from our app?+

Yes. Direct WSFEv1 SOAP integration using your own taxpayer certificate — no third-party invoicing SaaS in the middle taking a per-invoice fee. Distrialma has been issuing Comprobantes A, B, C and Notas de Crédito this way since 2026-03 with zero AFIP rejections.

How do you handle money in the database?+

Integer minor units (centavos, cents), never floats. Ledger tables are append-only — a balance is the sum of its entries, never a mutable column. Every write that touches money takes a row-level lock. These three rules eliminate the entire class of bugs that produce "the numbers do not add up" tickets.

Ready to start?

Send a written brief with the business problem to solve. I come back with a concrete plan against that document, in the client's language.

Contact →

Other services