Docs API

Panduan lengkap untuk integrasi Payment Gateway API

Status API: Beroperasi

Pengenalan

Selamat datang di dokumentasi Payment Gateway API. API ini memungkinkan Anda untuk mengintegrasikan pemrosesan pembayaran, deposit, dan manajemen saldo ke dalam aplikasi Anda.

URL Dasar

https://ramashop.my.id/api/public

Mulai Cepat

1

Dapatkan API Key Anda

Login ke dashboard Anda dan buat API key unik dari bagian pengaturan API.

2

Autentikasi Permintaan

Sertakan API key Anda di header X-API-Key untuk semua permintaan API.

3

Mulai Mengintegrasikan

Gunakan endpoint di bawah ini untuk menerapkan pemrosesan pembayaran di aplikasi Anda.

Integrasi Cepat

Endpoint yang mudah digunakan dengan dokumentasi jelas untuk implementasi cepat

Aman

Keamanan tingkat bank dengan autentikasi API key dan data terenkripsi

Terpercaya

Uptime 99.9% dengan pemantauan real-time dan failover otomatis

Dukungan

Dukungan teknis 24/7 dan dokumentasi komprehensif

✅ Fitur:
  • Deposit via QRIS dengan kode unik
  • Manajemen saldo
  • Pemrosesan pembayaran
  • Riwayat transaksi
  • Pembaruan status real-time

Autentikasi

Semua permintaan API memerlukan autentikasi menggunakan API key. Anda dapat membuat API key dari dashboard setelah login.

Cara Autentikasi

Sertakan API key Anda di header permintaan:

X-API-Key: your_api_key_here
⚠️ Peringatan Keamanan: Jangan pernah membagikan API key Anda atau menyimpannya di repositori publik. Simpan dengan aman dan rahasia.

Mendapatkan API Key

  1. Login ke dashboard Anda
  2. Klik menu (☰) di kanan atas
  3. Pilih "API Key"
  4. Klik "Generate API Key"
  5. Salin dan simpan API key Anda dengan aman

Mendapatkan Saldo

GET /balance

Mengambil saldo akun Anda saat ini.

Headers
X-API-Key string wajib

API key Anda untuk autentikasi

Response (200 OK)
{
  "success": true,
  "data": {
    "balance": 50000,
    "username": "john_doe",
    "email": "john@example.com"
  }
}

Membuat Deposit

POST /deposit/create

Buat permintaan deposit baru. Anda akan menerima kode QR dengan jumlah unik untuk dibayar.

Headers
X-API-Key string wajib
Content-Type string wajib

Harus: application/json

Request Body
amount number wajib

Jumlah deposit (minimum: 100)

method string opsional

Metode pembayaran (default: "qris")

Contoh Request
{
  "amount": 10000,
  "method": "qris"
}
Response (200 OK)
{
  "success": true,
  "data": {
    "depositId": "DEP1234567890",
    "amount": 10000,
    "uniqueCode": 73,
    "totalAmount": 10073,
    "fee": 0,
    "getBalance": 10000,
    "qrImage": "https://api.qrserver.com/...",
    "qrString": "00020101021126670016...",
    "status": "pending",
    "expiredAt": "2024-01-01T13:00:00.000Z"
  },
  "message": "Silakan bayar Rp 10.073 (10.000 + kode unik 73)"
}

Membuat Pembayaran

POST /payment/create

Proses pembayaran dari saldo Anda. Saldo akan dikurangi secara otomatis.

Request Body
amount number wajib

Jumlah pembayaran

description string opsional

Deskripsi pembayaran

Contoh Request
{
  "amount": 5000,
  "description": "Topup Pulsa"
}
Response (200 OK)
{
  "success": true,
  "data": {
    "paymentId": "PAY1234567890",
    "amount": 5000,
    "remainingBalance": 5000,
    "status": "success"
  }
}
Response (400 Bad Request) - Saldo Tidak Cukup
{
  "success": false,
  "error": "Insufficient balance"
}

Riwayat Transaksi

GET /history

Dapatkan riwayat transaksi Anda (deposit dan pembayaran).

Response (200 OK)
{
  "success": true,
  "data": {
    "total": 10,
    "transactions": [
      {
        "id": "DEP1234567890",
        "type": "deposit",
        "amount": 10000,
        "status": "success",
        "createdAt": "2024-01-01T12:00:00.000Z"
      },
      {
        "id": "PAY1234567890",
        "type": "payment",
        "amount": 5000,
        "description": "Topup Pulsa",
        "status": "success",
        "createdAt": "2024-01-01T13:00:00.000Z"
      }
    ]
  }
}

Kode Error

API menggunakan kode status HTTP standar untuk menunjukkan keberhasilan atau kegagalan.

Kode Status Deskripsi
200 OK Permintaan berhasil
400 Bad Request Parameter tidak valid atau saldo tidak cukup
401 Unauthorized API key tidak valid atau tidak ada
404 Not Found Sumber daya tidak ditemukan
500 Internal Server Error Kesalahan server

Contoh Kode

JavaScript (Fetch API)

// Mendapatkan Saldo
fetch('https://ramashop.my.id/api/public/balance', {
  headers: {
    'X-API-Key': 'your_api_key_here'
  }
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

// Membuat Deposit
fetch('https://ramashop.my.id/api/public/deposit/create', {
  method: 'POST',
  headers: {
    'X-API-Key': 'your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    amount: 10000,
    method: 'qris'
  })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

// Membuat Pembayaran
fetch('https://ramashop.my.id/api/public/payment/create', {
  method: 'POST',
  headers: {
    'X-API-Key': 'your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    amount: 5000,
    description: "Topup Pulsa"
  })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

cURL

# Mendapatkan Saldo
curl -H "X-API-Key: your_api_key_here" \
  https://ramashop.my.id/api/public/balance

# Membuat Deposit
curl -X POST https://ramashop.my.id/api/public/deposit/create \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"amount": 10000, "method": "qris"}'

# Membuat Pembayaran
curl -X POST https://ramashop.my.id/api/public/payment/create \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"amount": 5000, "description": "Topup Pulsa"}'

# Memeriksa Status Deposit
curl -H "X-API-Key: your_api_key_here" \
  https://ramashop.my.id/api/public/deposit/status/DEP1234567890

# Mendapatkan Riwayat Transaksi
curl -H "X-API-Key: your_api_key_here" \
  https://ramashop.my.id/api/public/history

Python (Requests)

import requests

API_KEY = 'your_api_key_here'
BASE_URL = 'https://ramashop.my.id/api/public'

headers = {
    'X-API-Key': API_KEY,
    'Content-Type': 'application/json'
}

// Mendapatkan Saldo
response = requests.get(f'{BASE_URL}/balance', headers=headers)
print(response.json())

// Membuat Deposit
data = {
    'amount': 10000,
    'method': 'qris'
}
response = requests.post(f'{BASE_URL}/deposit/create', 
                        headers=headers, 
                        json=data)
print(response.json())

// Membuat Pembayaran
data = {
    'amount': 5000,
    'description': 'Topup Pulsa'
}
response = requests.post(f'{BASE_URL}/payment/create', 
                        headers=headers, 
                        json=data)
print(response.json())

// Memeriksa Status Deposit
deposit_id = "DEP1234567890"
response = requests.get(f'{BASE_URL}/deposit/status/{deposit_id}', headers=headers)
print(response.json())

// Mendapatkan Riwayat Transaksi
response = requests.get(f'{BASE_URL}/history', headers=headers)
print(response.json())

PHP

<?php
$apiKey = 'your_api_key_here';
$baseUrl = 'https://ramashop.my.id/api/public';

// Mendapatkan Saldo
$ch = curl_init($baseUrl . '/balance');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: ' . $apiKey
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

// Membuat Deposit
$data = json_encode([
    'amount' => 10000,
    'method' => 'qris'
]);

$ch = curl_init($baseUrl . '/deposit/create');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: ' . $apiKey,
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

// Membuat Pembayaran
$data = json_encode([
    'amount' => 5000,
    'description' => 'Topup Pulsa'
]);

$ch = curl_init($baseUrl . '/payment/create');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: ' . $apiKey,
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

// Memeriksa Status Deposit
$depositId = "DEP1234567890";
$ch = curl_init($baseUrl . '/deposit/status/' . $depositId);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: ' . $apiKey
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

// Mendapatkan Riwayat Transaksi
$ch = curl_init($baseUrl . '/history');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: ' . $apiKey
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>