Dokumentasi lengkap untuk integrasi API PayGet. Gunakan API Key Anda untuk mengakses semua endpoint yang tersedia.
Mendapatkan detail profil pengguna berdasarkan API Key. Endpoint ini mengembalikan informasi username, level, dan saldo akun.
| Type | Key | Value |
|---|---|---|
| Header | x-api-key |
YOUR_API_KEY |
| Query Param | apiKey |
YOUR_API_KEY |
curl -X GET "https://payget.sakuin.id/api/profile" \
-H "x-api-key: YOUR_API_KEY"
const https = require('https');
const apiKey = 'YOUR_API_KEY';
const options = {
hostname: 'payget.sakuin.id',
path: '/api/profile',
method: 'GET',
headers: { 'x-api-key': apiKey }
};
https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => console.log(JSON.parse(data)));
}).end();
import requests
api_key = 'YOUR_API_KEY'
url = 'https://payget.sakuin.id/api/profile'
headers = {'x-api-key': api_key}
response = requests.get(url, headers=headers)
print(response.json())
{
"success": true,
"profile": {
"username": "john_doe",
"level": "member",
"balance": 100000
}
}
{
"success": false,
"message": "API Key is required."
}
{
"success": false,
"message": "Invalid API Key."
}
Membuat permintaan pembayaran (top up saldo)
| Type | Key | Value |
|---|---|---|
| Header | x-api-key |
YOUR_API_KEY |
| Header | Content-Type |
application/json |
| Parameter | Type | Required | Description |
|---|---|---|---|
amount |
number | Required | Minimal 100, maksimal 5.000.000 |
curl -X POST "https://payget.sakuin.id/api/payment" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount": 50000}'
const https = require('https');
const apiKey = 'YOUR_API_KEY';
const data = JSON.stringify({ amount: 50000 });
const options = {
hostname: 'payget.sakuin.id',
path: '/api/payment',
method: 'POST',
headers: {
'x-api-key': apiKey,
'Content-Type': 'application/json',
'Content-Length': data.length
}
};
const req = https.request(options, (res) => {
let responseData = '';
res.on('data', (chunk) => responseData += chunk);
res.on('end', () => console.log(JSON.parse(responseData)));
});
req.write(data);
req.end();
import requests
api_key = 'YOUR_API_KEY'
url = 'https://payget.sakuin.id/api/payment'
headers = {
'x-api-key': api_key,
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, json={'amount': 50000})
print(response.json())
{
"success": true,
"message": "Payment request created successfully.",
"paymentId": "a1b2c3d4e5f6g7h8",
"qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"amount": 50000,
"totalAmount": 50001,
"uniqueFee": 1,
"balanceReceived": 50001,
"fee": 0
}
{
"success": false,
"message": "Maximum amount is 5,000,000"
}
Membatalkan payment milik API key yang sedang berstatus Pending
| Type | Key | Value |
|---|---|---|
| Header | x-api-key |
YOUR_API_KEY |
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Required | Payment ID yang ingin dibatalkan |
curl -X POST "https://payget.sakuin.id/api/payment/a1b2c3d4e5f6g7h8/cancel" \
-H "x-api-key: YOUR_API_KEY"
const https = require('https');
const apiKey = 'YOUR_API_KEY';
const paymentId = 'a1b2c3d4e5f6g7h8';
const options = {
hostname: 'payget.sakuin.id',
path: `/api/payment/${paymentId}/cancel`,
method: 'POST',
headers: { 'x-api-key': apiKey }
};
https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => console.log(JSON.parse(data)));
}).end();
import requests
api_key = 'YOUR_API_KEY'
payment_id = 'a1b2c3d4e5f6g7h8'
url = f'https://payget.sakuin.id/api/payment/{payment_id}/cancel'
headers = {'x-api-key': api_key}
response = requests.post(url, headers=headers)
print(response.json())
{
"success": true,
"message": "Payment cancelled successfully",
"payment": {
"id": "a1b2c3d4e5f6g7h8",
"status": "Expired"
}
}
{
"success": false,
"message": "Only pending payment can be cancelled",
"status": "Success"
}
PayGet akan mengirim callback otomatis ke URL yang Anda atur di Dashboard saat status transaksi berubah. Endpoint payment status tetap tersedia sebagai fallback/manual check.
X-PayGet-Signature| Event | Keterangan |
|---|---|
payment.success |
Pembayaran berhasil dikonfirmasi |
payment.expired |
Pembayaran kadaluarsa |
payment.cancelled |
Pembayaran dibatalkan |
withdraw.completed |
Penarikan berhasil diselesaikan |
withdraw.cancelled |
Penarikan dibatalkan |
{
"event": "payment.success",
"paymentId": "a1b2c3d4e5f6g7h8",
"status": "Success",
"amount": 50000,
"totalAmount": 50001,
"balanceReceived": 50001,
"fee": 0,
"uniqueFee": 1,
"transactionId": "trx123",
"createdAt": "2026-06-22T13:30:00.000Z",
"completedAt": "2026-06-22T13:32:00.000Z"
}
Signature adalah HMAC SHA256 dari timestamp.body menggunakan Webhook Secret.
const crypto = require('crypto');
function verifyPayGetSignature(secret, timestamp, rawBody, signature) {
const expected = crypto
.createHmac('sha256', secret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
}
Mengecek status pembayaran berdasarkan Payment ID. Endpoint ini tidak memerlukan API Key.
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
id |
string | Ya | Payment ID yang ingin dicek statusnya |
curl -X GET "https://payget.sakuin.id/api/payment-status/a1b2c3d4e5f6g7h8"
const https = require('https');
const paymentId = 'a1b2c3d4e5f6g7h8';
const options = {
hostname: 'payget.sakuin.id',
path: `/api/payment-status/${paymentId}`,
method: 'GET'
};
https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => console.log(JSON.parse(data)));
}).end();
import requests
payment_id = 'a1b2c3d4e5f6g7h8'
url = f'https://payget.sakuin.id/api/payment-status/{payment_id}'
response = requests.get(url)
print(response.json())
{
"success": true,
"status": "Pending",
"id": "a1b2c3d4e5f6g7h8",
"amount": 50000
}
{
"success": false,
"message": "Payment not found"
}