ShannonPay API

Dokumentasi API ShannonPay

Integrasikan ShannonPay langsung ke aplikasi Anda. Buat transaksi QRIS, cek status pembayaran, batalkan transaksi, ambil riwayat transaksi, dan cek saldo merchant menggunakan satu API Key.

REST API
JSON
Bearer API Key
QRIS
Base URL https://shannon.web.id/api/v1
Authentication

Autentikasi API

Semua Public API ShannonPay memerlukan API Key merchant. API Key dikirimkan menggunakan HTTP Authorization header dengan format Bearer Token.

Authorization

Gunakan API Key yang tersedia pada Dashboard Merchant bagian Integrasi API.

Authorization: Bearer YOUR_API_KEY

Response

API mengembalikan response dalam format JSON menggunakan struktur success dan data.

Content-Type: application/json

Contoh Header

http
Authorization: Bearer YOUR_API_KEY
Public API

Cek Saldo Merchant

Mengambil saldo dan nama merchant berdasarkan API Key yang digunakan.

Saldo Merchant

Mengambil informasi saldo akun merchant yang sedang terautentikasi.

GET /saldo
Auth Required
Request
curl
curl -X GET "https://shannon.web.id/api/v1/saldo" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
json
{
  "success": true,
  "data": {
    "saldo": 100000,
    "nama": "Nama Merchant"
  }
}
Public API

Daftar Transaksi

Mengambil daftar transaksi milik merchant yang sedang terautentikasi.

Daftar Transaksi

Mengambil transaksi terbaru dengan jumlah data yang dapat dikontrol melalui query parameter.

GET /transactions
Default: 20
Query Parameter
Parameter Tipe Wajib Keterangan
limit integer Tidak Jumlah transaksi yang ingin diambil. Default 20.
Request
curl
curl -X GET "https://shannon.web.id/api/v1/transactions?limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
json
{
  "success": true,
  "data": {
    "transactions": [
      {
        "id": "transaction-id",
        "order_id": "ARTSHNN-...",
        "user_id": "user-id",
        "amount_base": 10000,
        "fee": 0,
        "fee_percent": 0,
        "amount_total": 10000,
        "status": "PENDING",
        "qr_url": "https://...",
        "checkout_url": "https://...",
        "qr_string": "...",
        "expiry_time": "...",
        "created_at": "..."
      }
    ]
  }
}
Ordering: Transaksi terbaru berada di atas.
Public API

Detail Transaksi

Mengambil satu transaksi berdasarkan Transaction ID.

Detail Transaksi

Hanya transaksi milik merchant terautentikasi yang dapat diakses.

GET /transactions/:id
Auth Required
Path Parameter
Parameter Tipe Wajib Keterangan
id string Wajib Transaction ID yang ingin diperiksa.
Request
curl
curl -X GET "https://shannon.web.id/api/v1/transactions/TRANSACTION_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
json
{
  "success": true,
  "data": {
    "id": "transaction-id",
    "order_id": "ARTSHNN-...",
    "user_id": "user-id",
    "amount_base": 10000,
    "fee": 0,
    "fee_percent": 0,
    "amount_total": 10000,
    "status": "SETTLED",
    "qr_url": "https://...",
    "checkout_url": "https://...",
    "qr_string": "...",
    "expiry_time": "...",
    "created_at": "...",
    "paid_at": "..."
  }
}
Security: Jika transaksi tidak dimiliki oleh API Key yang digunakan, API akan mengembalikan response Not found.
QRIS API

Generate QRIS

Membuat transaksi QRIS baru melalui API. Sistem akan membuat Transaction ID, Order ID, QR URL, QR String, dan Checkout URL untuk pelanggan.

Generate Transaksi QRIS

Buat transaksi pembayaran QRIS baru untuk merchant.

POST /qris/generate
Rate Limited
Request Body
Parameter Tipe Wajib Keterangan
amount number Wajib Nominal pembayaran dalam rupiah. Minimum Rp 1.000 dan maksimum Rp 10.000.000.
Request
curl
curl -X POST "https://shannon.web.id/api/v1/qris/generate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 10000
  }'
Request JSON
json
{
  "amount": 10000
}
Response
json
{
  "success": true,
  "data": {
    "id": "transaction-id",
    "order_id": "ARTSHNN-...",
    "user_id": "user-id",
    "amount_base": 10000,
    "fee": 0,
    "fee_percent": 0,
    "amount_total": 10000,
    "status": "PENDING",
    "qr_url": "https://...",
    "checkout_url": "https://shannon.web.id/pay/...",
    "qr_string": "...",
    "expiry_time": "...",
    "created_at": "..."
  }
}
Checkout URL: Gunakan checkout_url untuk mengarahkan pelanggan ke halaman pembayaran ShannonPay.
QRIS API

Status QRIS

Memeriksa status transaksi QRIS melalui Transaction ID.

Cek Status Pembayaran

Mengecek status terbaru transaksi dari provider pembayaran.

POST /qris/status
Transaction ID
Request Body
Parameter Tipe Wajib Keterangan
transaction_id string Wajib Transaction ID yang diperoleh dari Generate QRIS.
Request
curl
curl -X POST "https://shannon.web.id/api/v1/qris/status" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "TRANSACTION_ID"
  }'
Request JSON
json
{
  "transaction_id": "TRANSACTION_ID"
}
Contoh Response
json
{
  "success": true,
  "data": {
    "transaction_status": "settlement"
  }
}
Settlement: Ketika transaksi berubah menjadi settlement dan sebelumnya masih PENDING, sistem akan memperbarui transaksi menjadi SETTLED.
QRIS API

Cancel QRIS

Membatalkan transaksi QRIS yang masih berstatus PENDING.

Batalkan Transaksi QRIS

Membatalkan transaksi melalui provider dan memperbarui status transaksi ShannonPay.

POST /qris/cancel
Pending Only
Request Body
Parameter Tipe Wajib Keterangan
transaction_id string Wajib Transaction ID yang ingin dibatalkan.
Request
curl
curl -X POST "https://shannon.web.id/api/v1/qris/cancel" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "TRANSACTION_ID"
  }'
Request JSON
json
{
  "transaction_id": "TRANSACTION_ID"
}
Response
json
{
  "success": true,
  "data": null,
  "message": "Transaksi berhasil dibatalkan"
}
Rule: Transaksi hanya dapat dibatalkan selama status internal masih PENDING.
Reference

Status Transaksi

Status internal yang digunakan ShannonPay untuk transaksi QRIS.

PENDING
Transaksi dibuat dan masih menunggu pembayaran.
SETTLED
Pembayaran berhasil diselesaikan.
EXPIRED
Pembayaran melewati masa berlaku transaksi.
CANCEL
Transaksi berhasil dibatalkan.
Provider Webhook

Webhook AutoGoPay

Endpoint webhook berikut digunakan oleh provider pembayaran untuk mengirim event kepada ShannonPay. Endpoint ini bukan endpoint yang perlu dipanggil oleh merchant.

AutoGoPay Webhook

Menerima notifikasi transaksi dari provider pembayaran.

POST /webhook/autogopay
Provider → ShannonPay
Signature Header
http
X-Signature: PROVIDER_SIGNATURE
Event
json
{
  "event": "transaction.received",
  "transaction": {
    "id": "transaction-id",
    "status": "settlement",
    "time": "..."
  }
}
Security: Webhook memverifikasi signature sebelum event diproses oleh ShannonPay.