Service

Payment integrations that reconcile correctly

I have built a unified payment service spanning PayPal, Stripe and Razorpay, with webhook-driven state, refunds, and transaction status handling exposed as reusable APIs. The hard part of payments is never the happy path, it is idempotency, webhook ordering, partial refunds and reconciliation, and that is what I design for first.

What this includes

Multi-gateway abstraction

One internal payment interface across Stripe, PayPal and Razorpay so adding or swapping a provider is not a rewrite.

Idempotent transactions

Idempotency keys and safe retries so a dropped connection or a double-click never results in a duplicate charge.

Webhook-driven state

Signature-verified webhooks treated as the source of truth for payment state, with out-of-order and replayed events handled explicitly.

Refunds and reconciliation

Full and partial refunds, chargeback status, and reporting that matches the gateway dashboard line for line.

Common questions

Which payment gateways have you integrated?+

Stripe, PayPal and Razorpay in production, through a unified payment service with shared webhook, refund and transaction-status handling. The same pattern extends to most other providers.

How do you prevent duplicate charges?+

Idempotency keys on every charge request plus a transaction ledger that records intent before the call to the gateway. Retries then resolve to the same transaction instead of creating a new one.

Do you handle PCI compliance?+

By keeping card data out of the application entirely through tokenization and hosted fields from the gateway. That keeps the integration in the lightest PCI scope available.

Next step

Have a project that needs this?

Tell me what you are building and where it is stuck. I will tell you honestly whether it is something I can help with.