case study · integrations
Payment Systems
I built the payment infrastructure for consumer stores end to end: 9 providers, payment institutions and bank virtual POS systems, run behind a single flow. Later, at Deneyimsoft, I added new providers to the payment integration module built with .NET Core Web API and improved its error handling, logging and reporting.
// flow
-
Cart
Amount, installment choice and order details become a payment request; every attempt is logged.
-
BIN / installments
The first digits of the card (BIN) identify the bank; installment options and the provider that processes the payment are chosen accordingly.
-
Virtual POS
The request goes to the chosen provider. Each provider's different API sits behind a common payment interface.
-
3D Secure
The customer is sent to the bank's verification page; on return, the result and its signature are verified.
-
Webhook
The provider's notification is accepted only with a valid signature. Even if the same notification arrives more than once, it is applied once (idempotent).
-
Order
Once the payment is confirmed the order is created; refunds and cancellations run through the same flow. A service that periodically re-queries delayed responses catches payments whose confirmation was missed.
// problem → solution → result
- problem
- Turning each provider's different API, 3D Secure and notification flow into one consistent payment process, despite delayed or repeated notifications.
- solution
- BIN- and installment-based bank routing; signature-verified, idempotent webhooks; a service that periodically re-queries delayed responses; transaction logging and reporting.
- result
- One payment infrastructure running on 9 providers; duplicate transactions and "paid but not confirmed" orders are gone.
// technical notes
- Provider-specific code sits behind a common payment interface; adding a provider doesn't change the rest of the flow.
- Signature verification and idempotency checks on webhooks: a repeated notification never creates a duplicate transaction.
- A service that re-queries delayed bank responses eliminated "paid but not confirmed" orders.
- Every step is logged and reported; when a payment gets stuck, you can see exactly where.
// where
- DeneyimsoftSoftware Developer · 2025 — 2026
- Ersa YazılımSoftware Developer · 2022 — 2025