← Balik ke XyPay

XyPay API Docs

API publik — CORS terbuka, tanpa auth. Bisa dipakai di Android native, iOS, Flutter, web, bot, apapun yang bisa HTTP.

Endpoint

GET/api/qrGenerate QR PNG custom (+logo) — untuk semua platform
POST/api/payment/createBikin transaksi QRIS/VA → dapat order_id + qr_image
GET/api/payment/statusCek status pembayaran (pending/completed/paid)
POST/api/payment/webhookNotifikasi otomatis dari Pakasir saat dibayar
GET/api/healthCek server hidup

QR Custom + Logo

Return image/png langsung — tempel di <img>, ImageView, Image.network, dll. QR pakai error correction H jadi aman ditutup logo.

https://api.xyspace.my.id/api/qr?data=ISI-DATA&size=512&logo=1&dark=000000&light=ffffff
ParameterKetKeterangan
datawajibIsi/URL yang di-encode (maks 1200 karakter)
sizeopsionalLebar gambar px, 256–2048 (default 512)
logoopsional1 = pakai logo XySpace (default), 0 = polos
styleopsionalrounded (default) / dots / square — bentuk tiap bit QR
darkopsionalWarna modul hex, contoh 000000 / 4f6ef7
lightopsionalWarna background hex, default ffffff

Contoh per platform

// Web / JavaScript — langsung pakai sebagai <img>
<img src="https://api.xyspace.my.id/qr?data=Hello+World&size=512&logo=1" />

// atau fetch sebagai blob:
const res = await fetch("https://api.xyspace.my.id/qr?data=Hello&size=512&logo=1");
const blob = await res.blob();
imgEl.src = URL.createObjectURL(blob);
// Android Native (Kotlin) — pakai Coil
imageView.load("https://api.xyspace.my.id/qr?data=Hello&size=512&logo=1")

// atau tanpa library:
val url = URL("https://api.xyspace.my.id/qr?data=Hello&size=512&logo=1")
val bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream())
imageView.setImageBitmap(bitmap)
// Flutter / Dart
Image.network('https://api.xyspace.my.id/qr?data=Hello&size=512&logo=1')
# Python
import requests
r = requests.get("https://api.xyspace.my.id/qr", params={
    "data": "Hello", "size": 512, "logo": 1
})
open("qr.png", "wb").write(r.content)

Payment API

Metode: qris, bni_va, bri_va, cimb_niaga_va, maybank_va, permata_va, bnc_va, sampoerna_va, atm_bersama_va, artha_graha_va. QRIS yang dikembalikan otomatis pakai logo XySpace di tengah.

# Bikin transaksi pembayaran (QRIS otomatis ada logo XySpace)
curl -X POST https://api.xyspace.my.id/payment/create \
  -H "Content-Type: application/json" \
  -d '{"amount": 25000, "method": "qris", "buyer": "user@xy.com"}'

# Response:
# {
#   "order_id": "INV1789...",
#   "amount": 25000,
#   "payment": { "total_payment": 25380, "payment_number": "00020101...", ... },
#   "qr_image": "data:image/png;base64,..."   ← QRIS + logo, tinggal ditampilin
# }

# Cek status pembayaran:
curl "https://api.xyspace.my.id/payment/status?order_id=INV1789...&amount=25000"

Live Demo

Buka URL PNG langsung ↗
QR demo

Rate limit & abuse: dilindungi Vercel Firewall.