Panduan integrasi lengkap untuk developer. Mendukung QRIS Tanpa KTP, MyPG (Gateway Pribadi), dan Bot Telegram.
Setiap request API wajib menyertakan parameter apikey. Anda bisa mendapatkan key ini dengan mendaftar dan membuat proyek di dashboard.
?apikey=YOUR_API_KEY_HERE
Di lingkungan Production, sistem menerapkan pengamanan ketat. Request wajib berasal dari domain yang Anda daftarkan. Pastikan aplikasi Anda mengirimkan header Referer atau Origin yang sesuai saat memanggil API.
Endpoint untuk membuat transaksi baru.
<?php
$apiKey = 'YOUR_API_KEY';
$amount = 10000;
$url = 'https://mail.yobasepay.net//api?action=createpayment&apikey=' . $apiKey . '&amount=' . $amount;
$res = file_get_contents($url);
$data = json_decode($res, true);
if ($data['status']) {
print_r($data['data']);
}
?>
{
"status": true,
"data": {
"trx_id": "YO-ABC12345",
"amount": 10123,
"payment_url": "https://domain.com/pay/...",
"qr_image": "https://domain.com/assets/...",
"expired_at": "2026-01-01 12:00:00",
"environment": "sandbox"
}
}
Pengecekan status detail menggunakan API Key. Memberikan respon lengkap termasuk URL QRIS.
{
"status": true,
"data": {
"status": "SUCCESS",
"trx_id": "YO-...",
"amount": 10000,
"payment_url": "...",
"qr_image": "..."
}
}
{
"status": true,
"data": {
"status": "EXPIRED",
"qris_image": "https://.../expired.png"
}
}
API Engine terbaru dengan dukungan multi-provider dan pengecekan mutasi otomatis yang lebih cepat.
API V3 direkomendasikan untuk beban transaksi tinggi dan mendukung integrasi Bot Telegram secara otomatis.
Integrasikan QRIS pribadi Anda (Tokopay/Qiospay) untuk menikmati QRIS No MDR (0%). YoBasePay bertindak sebagai jembatan mutasi otomatis.
Notifikasi otomatis ke server Anda saat pembayaran BERHASIL atau EXPIRED.
Wajib: Verifikasi header X-YoBasePay-Signature menggunakan Secret Anda demi keamanan.
<?php
$secret = 'YOUR_WEBHOOK_SECRET';
$json = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_YoBasePay_SIGNATURE'] ?? '';
// Verifikasi Signature
if (!hash_equals(hash_hmac('sha256', $json, $secret), $signature)) {
http_response_code(403); exit;
}
$data = json_decode($json, true);
// Logic Anda (Simpan ke DB dsb)
http_response_code(200);
?>
Panduan integrasi untuk aplikasi berbasis Node.js yang berjalan di VPS (Ubuntu/Debian) menggunakan Express.
0.0.0.0 saat listen agar bisa diakses dari IP Publik.
const express = require('express');
const crypto = require('crypto');
const app = express();
app.use(express.json());
const WEBHOOK_SECRET = 'YOUR_WEBHOOK_SECRET'; // Ambil dari Dashboard
app.post('/yobasepay-webhook', (req, res) => {
const signature = req.headers['x-yobasepay-signature'];
const payload = JSON.stringify(req.body);
// 1. Verifikasi Signature (Untuk Keamanan)
const hmac = crypto.createHmac('sha256', WEBHOOK_SECRET);
const expectedSignature = hmac.update(payload).digest('hex');
if (signature !== expectedSignature) {
console.error("Signature mismatch!");
return res.status(403).send('Invalid Signature');
}
// 2. Proses Data Transaksi
const { trxid, status, amount } = req.body;
console.log(`Transaksi ${trxid} statusnya adalah ${status} sebesar ${amount}`);
// Simpan ke Database Anda di sini...
// 3. Kirim Respon 200 OK ke YoBasePay
res.status(200).send('OK');
});
// PENTING: Gunakan 0.0.0.0 agar bisa diakses dari IP Publik VPS
const PORT = 3000;
app.listen(PORT, '0.0.0.0', () => {
console.log(`Webhook Listener jalan di http://IP-VPS-ANDA:${PORT}/yobasepay-webhook`);
});