Dokumentasi API

Integrasikan pembayaran QRIS ke aplikasi Anda dengan mudah menggunakan REST API ODZRESHOP.

Base URL & Autentikasi

Semua endpoint menggunakan prefix:

https://pg.odzreshop.id/api/v1

Header wajib untuk setiap request:

Authorization: Bearer {api_key}

Format Response

{
  "success": true|false,
  "message": "...",
  "data": {...}
}
GET

/profile

Mengembalikan data profil user yang sedang login, termasuk saldo.

Response Sukses

{
  "success": true,
  "message": "Profil ditemukan.",
  "data": {
    "name": "Nama User",
    "email": "user@example.com",
    "phone": "081234567890",
    "balance": 500000,
    "status": "active"
  }
}
POST

/create-payment

Membuat transaksi QRIS baru untuk customer Anda.

Request Body

{
  "nominal": 50000,
  "expired_minutes": 30,
  "webhook_url": "https://aplikasi-anda.com/callback"
}

Response Sukses

{
  "success": true,
  "message": "Order dibuat.",
  "data": {
    "trx_id": "TRX-A1B2C3D4",
    "reffid": "GOPAY-XXXX",
    "nominal": 50000,
    "unique_code": 187,
    "nominal_display": 50187,
    "qris_url": "https://...",
    "qris_string": "000201010211...",
    "expires_at": "2026-08-12T04:36:58.929Z"
  }
}

Penting: Customer wajib membayar persis sejumlah nominal_display, bukan nominal. Kode unik digunakan untuk identifikasi pembayaran exact-match di mutasi GoPay.

GET

/cek-status?trx_id={trx_id}

Mengecek status transaksi milik user yang sedang login.

Response Sukses

{
  "success": true,
  "message": "Status transaksi.",
  "data": {
    "trx_id": "TRX-A1B2C3D4",
    "reffid": "GOPAY-XXXX",
    "nominal": 50000,
    "nominal_display": 50187,
    "status": "success",
    "expires_at": "2026-08-12T04:36:58.929Z",
    "paid_at": "2026-08-12T04:40:00Z"
  }
}

Webhook ke Aplikasi Anda

Saat pembayaran berhasil, ODZRESHOP akan mengirimkan POST request ke webhook_url yang Anda cantumkan saat create-payment.

Payload Webhook

{
  "trx_id": "TRX-A1B2C3D4",
  "reffid": "GOPAY-XXXX",
  "status": "success",
  "nominal": 50000,
  "nominal_display": 50187,
  "paid_at": "2026-08-12T04:40:00Z",
  "signature": "hmac_sha256(payload, api_secret)"
}

Verifikasi webhook dengan menghitung HMAC SHA256 dari JSON payload menggunakan api_secret user.

Status Transaksi