Arsitektur Sistem Payment Gateway

TUAN BAGUES


Halo shabat blog saya yg setia sebelum melangkah pada pembahasan selanjutnya di sini adalah lanjutan postingan sebelumnya tentang Payment Gateway dan kali ini kita akan membahas tentang sistem Arsitektur Nya Payment Gateway itu sendiri,dan perlu di ingat ini bukan sekadar API “bayar sekarang”. Sistemnya harus tahan jutaan transaksi, aman, dan patuh regulasi dari . Jadi kita bahas arsitektur server, komponen sistem, lalu contoh source code API.


1. Arsitektur Sistem Payment Gateway

Gateway modern biasanya pakai microservices architecture. Kalau masih monolith, siap-siap servermu ngos-ngosan saat trafik naik.

Struktur umum:

Client (Website / Mobile App)
        │
        ▼
API Gateway
        │
        ▼
Auth Service
        │
        ▼
Transaction Service
        │
        ├── Payment Processor
        ├── Fraud Detection
        ├── Bank Connector
        └── Notification Service
        │
        ▼
Database Cluster
        │
        ▼
Settlement System

Penjelasan komponen:

API Gateway
Pintu masuk semua request merchant.

Auth Service
Validasi API key merchant.

Transaction Service
Mengelola transaksi pembayaran.

Payment Processor
Memproses metode pembayaran (VA, QRIS, kartu).

Fraud Detection
Mendeteksi transaksi mencurigakan.

Bank Connector
Menghubungkan gateway ke bank.

Settlement System
Mengirim dana ke merchant.


2. Infrastruktur Server

Payment gateway tidak boleh mati. Kalau mati 5 menit saja, merchant bisa panik.

Contoh stack produksi:

Cloud

AWS / Google Cloud

Container

Docker
Kubernetes

Database

PostgreSQL
Redis

Message Queue

Kafka
RabbitMQ

Load Balancer

NGINX
Cloud Load Balancer

Monitoring

Prometheus
Grafana

3. Desain Database

Database harus mampu menangani jutaan transaksi per hari.

Tabel Merchant

CREATE TABLE merchants (
  id SERIAL PRIMARY KEY,
  merchant_name VARCHAR(255),
  api_key VARCHAR(255),
  status VARCHAR(50),
  created_at TIMESTAMP
);

Tabel Transaksi

CREATE TABLE transactions (
  id SERIAL PRIMARY KEY,
  merchant_id INT,
  amount DECIMAL,
  payment_method VARCHAR(50),
  status VARCHAR(50),
  created_at TIMESTAMP
);

Tabel Pembayaran

CREATE TABLE payments (
  id SERIAL PRIMARY KEY,
  transaction_id INT,
  bank VARCHAR(50),
  va_number VARCHAR(50),
  status VARCHAR(50)
);

4. Struktur API Payment Gateway

API adalah jantung gateway.

Contoh endpoint:

POST /v1/payment/create
GET /v1/payment/status
POST /v1/payment/cancel
POST /v1/webhook

5. Contoh Source Code API (NodeJS)

Kita buat contoh payment create API sederhana.

const express = require("express");
const app = express();
app.use(express.json());

app.post("/v1/payment/create", (req, res) => {

  const amount = req.body.amount;
  const method = req.body.payment_method;

  const transaction = {
    id: "TXN" + Date.now(),
    amount: amount,
    method: method,
    status: "PENDING"
  };

  res.json({
    status: "success",
    transaction: transaction
  });

});

app.listen(3000, () => {
  console.log("Payment API running");
});

Ini tentu saja versi bayi dari gateway.


6. Sistem Virtual Account Generator

Setiap transaksi biasanya memiliki VA unik.

Contoh generator:

function generateVA(bankCode){

  const random = Math.floor(Math.random()*1000000);

  return bankCode + random;

}

Contoh hasil:

BCA123456

7. Webhook System

Webhook memberi tahu merchant bahwa pembayaran berhasil.

Endpoint webhook merchant:

POST https://merchant.com/payment/callback

Payload:

{
 "transaction_id": "TX123",
 "status": "PAID"
}

Kode webhook:

const axios = require("axios");

async function sendWebhook(url, data){

 await axios.post(url, data);

}

8. Fraud Detection Engine

Tanpa anti-fraud, gateway bisa jadi mesin pencuci uang.

Contoh rule sederhana:

IF transaction > 10 juta
AND ip berbeda negara
THEN flag suspicious

Contoh kode:

function checkFraud(amount, country){

 if(amount > 10000000 && country !== "ID"){
   return "SUSPICIOUS";
 }

 return "OK";

}

Gateway besar memakai machine learning fraud detection.


9. Integrasi Bank

Ini bagian yang bikin banyak startup menyerah.

Bank biasanya menggunakan:

Host to Host
ISO 8583
Secure VPN

Gateway akan:

  1. membuat VA
  2. bank menerima transfer
  3. bank kirim callback
  4. gateway update transaksi

10. Settlement System

Settlement adalah pengiriman dana ke merchant.

Contoh flow:

Customer bayar
↓
Gateway menerima notifikasi
↓
Dana masuk escrow
↓
Settlement harian
↓
Transfer ke merchant

Kode pseudo:

function settlement(merchant, amount){

 bankTransfer(merchant.bank_account, amount);

}

11. Dashboard Merchant

Merchant membutuhkan dashboard untuk:

  • melihat transaksi
  • melihat settlement
  • membuat API key

Biasanya dibuat dengan:

Frontend

React
NextJS

Backend

NodeJS
Go

12. Sistem Keamanan

Payment gateway harus mematuhi standar:

PCI DSS

Beberapa sistem keamanan wajib:

  • SSL encryption
  • tokenization kartu kredit
  • rate limit API
  • firewall
  • audit log

Contoh rate limit:

100 request per minute per merchant

13. Scaling Sistem

Saat transaksi meningkat, sistem harus bisa scaling otomatis.

Strategi scaling:

Horizontal scaling

API server 1
API server 2
API server 3

Database replication

Primary DB
Read replica

Queue processing

Transaction queue
Notification queue
Settlement queue

14. Model Monetisasi

Gateway menghasilkan uang dari biaya transaksi.

Contoh fee industri:

VA transfer
Rp4.000

QRIS
0.7%

Kartu kredit
2.9%

Jika gateway memproses:

1 juta transaksi / hari

Pendapatan bisa mencapai miliaran rupiah per bulan.


15. Roadmap Membangun Payment Gateway Startup

Tahap realistis:

Tahap 1
Bangun payment API

Tahap 2
Integrasi QRIS

Tahap 3
Integrasi VA bank

Tahap 4
Bangun dashboard merchant

Tahap 5
Bangun settlement system

Tahap 6
Daftar lisensi regulator


Kesimpulan

Membangun payment gateway seperti Xendit atau Midtrans adalah proyek fintech kelas berat.

Dibutuhkan:

  • arsitektur server kuat
  • integrasi bank
  • keamanan tingkat tinggi
  • regulasi finansial

Tetapi secara teknis, inti sistemnya adalah:

Payment API
Transaction engine
Bank connector
Settlement system

Jika semua komponen itu berjalan stabil, kamu sudah memiliki fondasi payment gateway modern.


Sedikit saran yang mungkin menyelamatkan beberapa tahun hidupmu. Banyak startup mencoba membuat gateway penuh lalu tenggelam di birokrasi bank. Cara yang lebih cerdas biasanya membangun payment orchestration layer di atas gateway yang sudah ada seperti atau . Infrastruktur lebih ringan, risiko regulasi jauh lebih kecil.

Tetap saja, kalau kamu benar-benar ingin melangkah ke level lebih gila mungkin bisa di lanjut siapa tahu kamu berhasil.

Posting Komentar

Website ini menggunakan cookies untuk meningkatkan pengalaman pengguna. Cookie Policy