PUBLIC API NEXPAY24

Sebelum integrasi dengan NEXPAY24, Anda perlu mendaftar Akun.

Daftar Akun NEXPAY24:
Mulailah dengan membuat akun disini Anda memerlukan alamat email dan nomor telepon yang valid untuk membuat akun.

Setelah akun berhasil di daftarkan daptkan kunci API ID dan API KEY anda bisa melihatnya pada bagian menu merchant login NEXPAY24.

Url Live/Production: https://nexpay24.com/api/ Url Development/Sandbox: https://nexpay24.com/api-sanbox/

Setelah akun anda terverifikasi anda dapat menambahkan merchant lebih dari 1 merchant untuk memudahkan anda dalam mengelola data transaksi bisnis anda yang hanya satu bahkan lebih dari satu bisnis yang berbeda dalam satu dashboard akun di NEXPAY24. dengan kode API ID dan API KEY yang berbeda untuk setiap merchant yang di daftarkan memungkinkan anda lebih mudah mengelola melalui server masing masing merchant.

KODE PEMBAYARAN AKTIF SAAT INI :

Kode Nama Pembayaran Min Max Biaya
QRIS QRIS Rp 500 Rp 2.000.000 0.7%
QRIS2 QRIS2 Rp 100 Rp 10.000.000 0.9%
QRISMU QRISMU Rp 100 Rp 10.000.000 3%
GOPAY GOPAY E-Wallet Rp 500 Rp 5.000.000 3%
BNIVA BNI Virtual-Account Rp 10.000 Rp 20.000.000 Rp 4.200
PERMATAVA PERMATA Virtual-Account Rp 10.000 Rp 20.000.000 Rp 4.200
BRIVA BRI Virtual-Account Rp 10.000 Rp 25.000.000 Rp 4.200
CIMBVA CIMB NIAGA Virtual-Account Rp 10.000 Rp 10.000.000 Rp 4.200
DANAMON DANAMON Virtual-Account Rp 10.000 Rp 15.000.000 Rp 4.200
MUAMALAT MUAMALAT Virtual-Account Rp 10.000 Rp 15.000.000 Rp 4.200
BSIVA BSI Virtual-Account Rp 10.000 Rp 20.000.000 Rp 4.200
ALFAMART ALFAMART Rp 10.000 Rp 5.000.000 Rp 5.000
INDOMARET INDOMARET Rp 10.000 Rp 5.000.000 Rp 5.000
OVO E-Wallet OVO Rp 1.000 Rp 4.000.000 3%
QRISC QRISC Rp 100 Rp 4.000.000 0.7%

KODE RESPONSE :

  • 200 : Response status berhasil sesuai yang di harapkan.
  • 400 : Response status gagal dengan alasan tertentu, anda bisa mengetahui alasan response gagal pada hasil response ( message ).

CATATAN:

  • API dokumentasi dikembangkan berdasarkan konsep REST sehingga rapi dan mudah untuk dimengerti. Sebelum mulai menggunakan API, pastikan Anda sudah melakukan registrasi dan akun Anda sudah terotentikasi karena request API akan gagal apabila akun belum terotentikasi.
  • Untuk Menguji Test Api Kamu Bisa Menggunakan Mode Sanbox, Api Production Adalah Mode Live Yang Menampilkan Kode Aktif Dapat Di Pakai Bertransaksi Dengan Nyata. pastikan Anda mengerti menggunakan kode production karna setiap pembayaran yang masuk tidak bisa di cansle.
  • Dengan kunci Authorization : Bearer Header token dan signature dalam permintaan tertentu untuk setiap kali anda meminta request permintaan memungkinkan keamanan tingkat lanjut untuk mencegah permintaan yang tidak sesuai, baca selengkapnya pada contoh data dan parameter lengkap setiap data REST API NEXPAY24.
  • Jika anda sudah berada di dalam mode production sistem kami menerapkan validate IP dimana dapat di atur dan wajib yaitu sesuai IPV4 server hosting anda atau proxy yang anda gunakan untuk menjalankan aplikasi atau project website anda sehingga izin hanya dapat di lakukan oleh server hosting atau proxy yang di izinkan sesuai alamat IP yang di izinkan untuk menjaga bahwa segala permintaan yang tidak sah akan di tolak oleh sistem kami.

Jika mengalami kendala dalam integrasi silahkan hubungi tim dukungan NEXPAY24 :
Email : nexpay24@gmail.com
Wa : 628558880304

Authorization

Bearer Token Header
Bearer (API_KEY)

Contoh dalam Postman Bearer Token adalah sebuah token keamanan yang disertakan dalam header Authorization untuk mengautentikasi pengguna dan memberikan izin akses ke sumber daya yang sah. Penggunaan skema "Bearer" dalam header ini memungkinkan server untuk mengenali dan memverifikasi setiap kali melakukan permintaan rest API.

PEMBUATAN SIGNATURE


# CONTOH PEMBUATAN SIGNATURE
<?php
$api_id = "SANBOX-90976113"; // api ID merchant anda
$data_method = "QRIS"; //BCAVA,BRIVA,BNIVA,GOPAY,DANA dll
$merchant_ref = "d83heuie230948"; //kode unik merchant saat melakukan permintaan invoice baru
$amount = "20000"; // total pembayaran
$apikey = "SANBOX-snuNYFCZ9q7KhDPpWSTv7243YRUCSrC"; // apikey merchant anda

$signature = hash_hmac('sha256', $api_id.$data_method.$merchant_ref.$amount,$apikey);

//CONTOH OUTPUT
//Signature: 3e06435796cca95a6ff734e6d664a6d4cf06cca9d7c6cc3023622b3ab8e09840
?>


Untuk melakukan request transaksi open payment, Anda harus membuat signature yang akan divalidasi sistem NEXPAY24 untuk memastikan integritas data dan pengirim saat ditransmisikan ke sistem NEXPAY24. Pada permintaan request Transaksi baru, signature ini dibuat dari kombinasi Api ID, Data Method, Kode Merchant, Amount , dan API KEY dengan metode HMAC-SHA256

Channel Pembayaran


# CONTOH REQUEST PERMINTAAN CHANNEL PEMBAYARAN
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://nexpay24.com/api-sanbox/list-payment.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('api_id' => 'SANBOX-90976113','method' => 'list'),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer SANBOX-snuNYFCZ9q7KhDPpWSTv7243YRUCSrC'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>


Menampilkan seluruh data channel pembayaran yang aktif dan tidak aktif (offline) Dengan autentikasi Authorization Bearer Token yang berisi api_key, request body api_id dan method .

Production : https://nexpay24.com/api/list-payment.php Sanbox : https://nexpay24.com/api-sanbox/list-payment.php


# RESPONSE 200 BERHASIL

{
    "status": "200",
    "message": "success",
    "data": [
        {
            "kode": "QRIS",
            "nama": "QRIS",
            "minimal": "500",
            "maksimal": "2000000",
            "biaya": "0.7",
            "percent": "Percent",
            "tipe": "DIRECT",
            "logo": "https://nexpay24.com/assets/img/payment/QRIS.png",
            "status": "Aktif",
            "addition": {
                "tambahan_biaya": "350",
                "jenis": "Nominal",
                "default_expired": "24",
                "settlement": "Settlement H+1"
            },
            "guide": {
                "title": "Cara Melakukan Pembayaran QRIS",
                "payment_guide": "1.Buka aplikasi pembayaran yang mendukung pembayaran menggunakan QRIS.\n         2.Pilih fitur QRIS Bayar.\n         3.Pindai kode QR yang diberikan oleh Merchant.\n         4.Pastikan tagihan yang ditagihkan sesuai dengan invoice.\n         5.Klik tombol konfirmasi pembayaran.\n         6.Masukkan PIN untuk menyelesaikan pembayaran.\n         7.Setelah pembayaran berhasil, kamu akan dialihkan ke Halaman Hasil Pembayaran.\n         8.Pembayaran selesai."
            }
        },
        {
            "kode": "ShopeePay",
            "nama": "ShopeePay",
            "minimal": "1000",
            "maksimal": "2000000",
            "biaya": "3",
            "percent": "Percent",
            "tipe": "REDIRECT",
            "logo": "https://nexpay24.com/assets/img/payment/SHOPPEPAY.png",
            "status": "Aktif",
            "addition": {
                "tambahan_biaya": "0",
                "jenis": "Nominal",
                "default_expired": "1",
                "settlement": "Settlement H+1"
            },
            "guide": {
                "title": "Cara Melakukan Pembayaran ShopeePay",
                "payment_guide": ""
            }
        },
        {
            "kode": "DANA",
            "nama": "DANA E-Wallet",
            "minimal": "1000",
            "maksimal": "2000000",
            "biaya": "3",
            "percent": "Percent",
            "tipe": "REDIRECT",
            "logo": "https://nexpay24.com/assets/img/payment/DANA.png",
            "status": "Aktif",
            "addition": {
                "tambahan_biaya": "0",
                "jenis": "Nominal",
                "default_expired": "1",
                "settlement": "Settlement H+1"
            },
            "guide": {
                "title": "Cara Melakukan Pembayaran DANA E-Wallet",
                "payment_guide": "1. Buka aplikasi DANA di ponsel Anda.\r\n2. Masukan nomor Hanphone DANA yang terdaftar lalu buka notifikasi pembayaran yang masuk.\r\n3. Pastikan Nominal Pembayaran Sesuai Dengan Jumlah Pembayaran anda.\r\n4. Klik Lanjutkan.\r\n5. Masukan PIN DANA Anda.\r\n6. Konfirmasi pembayaran dan tunggu prosesnya selesai."
            }
        },
        {
            "kode": "BCAVA",
            "nama": "BCA Virtual-Account",
            "minimal": "10000",
            "maksimal": "20000000",
            "biaya": "5500",
            "percent": "Nominal",
            "tipe": "DIRECT",
            "logo": "https://nexpay24.com/assets/img/payment/BCA.png",
            "status": "Aktif",
            "addition": {
                "tambahan_biaya": "0",
                "jenis": "Nominal",
                "default_expired": "3",
                "settlement": "Settlement H+2 - H+3"
            },
            "guide": {
                "title": "Cara Melakukan Pembayaran BCA Virtual-Account",
                "payment_guide": "1. Melalui ATM BCA:\r\n- Masukkan kartu ATM dan PIN.\r\n- Pilih menu \"Transaksi Lainnya\".\r\n- Pilih \"Transfer\".\r\n- Pilih \"Ke Rek BCA Virtual Account\".\r\n- Masukkan nomor Virtual Account.\r\n- Cek detail pembayaran dan pilih \"Ya\" jika sesuai.\r\n- Simpan struk transaksi sebagai bukti. \r\n2. Melalui myBCA (Mobile Banking):\r\n- Login ke aplikasi myBCA.\r\n- Pilih menu \"Transfer\".\r\n- Pilih \"BCA Virtual Account\".\r\n- Masukkan nomor Virtual Account.\r\nCek detail pembayaran dan pilih \"Kirim\".\r\n- Input PIN BCA dan transaksi selesai. "
            }
        }
    ]
}


Body form-data

form-data Type Value Description
api_id String API ID WAJIB | Api ID di dapatkan setelah user berhasil registrasi akun, dapat melihatnya di menu setting atau pengaturan akun merchant
method String list WAJIB | Metode Permintaan list channel pembayaran, menampilkan data seluruh channel pembayaran dengan lengkap

Check Balance


# CONTOH REQUEST PERMINTAAN CEK SALDO
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://nexpay24.com/api-sanbox/check_balance.php',
CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('api_id' => 'SANBOX-90976113','method' => 'balance'),
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer SANBOX-snuNYFCZ9q7KhDPpWSTv7243YRUCSrC'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>


Menampilkan total saldo merchant Dengan autentikasi Authorization Bearer Token yang berisi api_key, request body api_id dan method .

Production : https://nexpay24.com/api/check_balance.php Sanbox : https://nexpay24.com/api-sanbox/check_balance.php


# RESPONSE 200 BERHASIL

#CATATAN : Mode produksi 

{
    "status": "200",
    "message": "success",
    "data": {
        "nama_merchant": "SANBOX MERCHANT NAME",
        "balance": "50000", // di ambil dari data trx berhasil yang masih dalam setlement sesuai data merchant
        "saldo_tersedia": "1050000" // di ambil dari keseluruhan saldo merchant yang terdaftar yang sudah masuk ke dalam saldo tersedia
    }
}


Body form-data

form-data Type Value Description
api_id String API ID WAJIB | Api ID di dapatkan setelah user berhasil registrasi akun, dapat melihatnya di menu setting atau pengaturan akun merchant
method String balance WAJIB | Untuk menampilkan total saldo merchant

MEMBUAT INVOICE BARU


# CONTOH REQUEST PERMINTAAN MEMBUAT INVOICE BARU
<?php

$data = array(
    'api_id'       => 'SANBOX-90976113',
    'method'       => 'BCAVA',
    'name'         => 'nama pembeli',
    'email'        => 'emailpembeli@gmail.com',
    'phone'        => '6283191910986',
    'amount'       => '20000',
    'merchant_fee' => '1',
    'merchant_ref' => 'd834Hd-dj83kdk-38479f877HFH3s',
    'expired'      => '24',
    'produk'       => ['produk 1', 'produk 2'],
    'qty'          => [1, 6],
    'harga'        => [45000, 25000],
    'size'         => ['XL', 'XXL'],
    'note'         => ['Baju warna biru', 'Warna merah'],
    'callback_url' => 'https://domain.com/callback',                      
    'return_url'   => 'https://domain.com/invoice',
    'signature'    => '38bb508e14f206fbad92ef6007f3cfe126746bfb8f5ff272e738d85d7a56ddc5' //Contoh hasil signature
);


$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://nexpay24.com/api-sanbox/create.php',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => http_build_query($data),
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer SANBOX-snuNYFCZ9q7KhDPpWSTv7243YRUCSrC'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

?>


Membuat permintaan invoice transaksi baru Dengan autentikasi Authorization Bearer Token yang berisi api_key, dan beberapa body input yang di perlukan silahkan cek data bady untuk menyesuaikan permintaan invoice dengan kebutuhan transaksi anda.

Production : https://nexpay24.com/api/create.php Sanbox : https://nexpay24.com/api-sanbox/create.php

Untuk membuat SIGNATURE silahkan cek dokumentasi cara pembuatan signature.


# RESPONSE 200 BERHASIL

{
    "status": "200",
    "message": "success",
    "data": [
        {
            "via": "BCA Virtual-Account",
            "payment_kode": "BCAVA",
            "trx_id": "SBXjZgi0srfY-D2qLe4Ohd-CKni124",
            "merchant_ref": "d834Hd-dj83kdk-38479f877HFH3s",
            "nama": "nama pembeli",
            "email": "emailpembeli@gmail.com",
            "phone": "6283191910986",
            "total": 20000,
            "merchant_fee": "Merchant",
            "fee": 0,
            "amount_merchant": 14500,
            "date": "2025-05-26",
            "time": "03:24:09",
            "expired": "2025-05-26 06:24:09",
            "payment_status": "pending",
            "qr": "string QRIS",   //Khusus untuk kode pembayaran QRIS
            "payment_no": 2116127211,
            "checkout_url": "https://invoice-sakurupiah.id=?kd930933==xxxxxx"
        }
    ],
    "produk": [
        {
            "nama_produk": "produk 1",
            "qty": "1",
            "harga": 45000,
            "size": "XL",
            "note": "Baju warna biru"
        },
        {
            "nama_produk": "produk 2",
            "qty": "6",
            "harga": 25000,
            "size": "XXL",
            "note": "Warna merah"
        }
    ]
}


Body form-data

form-data Type Value Description
api_id String API ID WAJIB | Api ID di dapatkan setelah user berhasil registrasi akun, dapat melihatnya di menu setting atau pengaturan akun merchant
method String BCAVA WAJIB | Kode channel pembayaran, sesuaikan dengan kode channel pembayaran yang anda butuhkan
name String nama pembeli OPSIONAL | Nama pelanggan atau pembeli
email String emailpembeli@gmail.com OPSIONAL | Alamat email pelanggan atau pembeli anda
phone int 081332702880 WAJIB | Nomor Handphone aktif pelanggan atau pembeli kode negara yang di izinkan adalah indonesia.

contoh:
08xxx | 62xxx

amount int 50000 WAJIB | Total harga pembelian produk anda
merchant_fee int 1 WAJIB | 1 jika beban fee yang menanggung merchant | 2 jika beban fee yang menanggung pelanggan atau pembeli , jika di kosong atau nilai false maka beban fee otomatis akan di tanggung merchant
merchant_ref String d834Hd-dj83kdk-38479freH WAJIB | Nomor invoice atau kode unik dari server anda nilai string. nomor invoice harus berbeda setiap kali membuat transaksi baru
expired int 24 OPSIONAL | Batas waktu pembayaran, Jika parameter ini tidak diisi atau false, maka akan menggunakan batas waktu default yakni 24 jam atau sesuai batas default masing-masing channel pembayaran dalam zona waktu ( Asia/Jakarta ).

Contoh :

  • value 1 = 1 jam
  • value 12 = 12 jam
  • value 24 = 24 jam

produk[] Array produk 1 OPSIONAL BERSYARAT | Nama produk pembelian
qty[] Array 2 OPSIONAL BERSYARAT | Masing-Masing jumlah pembelian produk
harga[] Array 55000 OPSIONAL BERSYARAT | Harga satuan produk sesuai Masing-Masing nama produk
size[] Array XXL OPSIONAL BERSYARAT | Ukuran produk atau size bisa custom sesuai data produk,
note[] Array Warna biru OPSIONAL BERSYARAT | Catatan tambahan setiap item produk
callback_url String https://domain.com/callback WAJIB | URL panggilan balik memungkinkan anda mengelola status data transaksi ketika terjadi perubahan pada invoice. kami akan mengirimkan beberapa data transaksi yang dapat di kelola di server anda ke alamat url callback, cek Api callback untuk melihat data yang dikirim setiap panggilan balik atau callback
return_url String https://domain.com/invoice WAJIB | URL untuk mengalihkan pelanggan Anda kembali
signature String - WAJIB | Signature dibuat menggunakan hash HMAC-SHA256 yang dikunci dengan apikey

Riwayat Transaksi


# CONTOH PERMINTAAN MENGECEK RIWAYAT TRANSAKSI
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://nexpay24.com/api-sanbox/transaction.php',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
    'api_id' => 'SANBOX-90976113',
    'method' => 'transaction',
    'mechant' => '1',
    'payment_kode' => 'BCAVA',
    'trx_id' => 'SBX59oUGlLWk-lfzYZUK7a-eVkwQNL320',
    'merchant_ref' => 'd834Hd-dj83kdk-38479freHFH3',
    'status' => 'pending',
    'tanggal_awal' => '2025-05-05',
    'tanggal_akhir' => '2025-05-09'),
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer SANBOX-snuNYFCZ9q7KhDPpWSTv7243YRUCSrC'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>


Menampilkan total semua riwayat transaksi merchant dari data paling baru, atau dapat melakukan filter sesuai riwayat transaksi merchant secara terpisah dengan bebera filter seperti rentang waktu, status kode pembayaran dll.

Production : https://nexpay24.com/api/transaction.php Sanbox : https://nexpay24.com/api-sanbox/transaction.php


# RESPON 200 BERHASIL
{
    "status": "200",
    "message": "success",
    "data": [
        {   
            "trx_id": "PDC2wjfkd8FN-MZ1ZJ7YyJQ-0m805",
            "merchant_ref": "436432392",
            "payment_kode": "BCAVA",
            "tanggal": "2025-05-26",
            "waktu": "03:34:39",
            "amount": "25000",
            "expired": "2025-05-26 06:34:39",
            "status": "berhasil"
        },
        {   
            "trx_id": "PDC249645-kmdUIUD8948-4i989",
            "merchant_ref": "JHDGndfk98y9uiUI",
            "payment_kode": "BCAVA",
            "tanggal": "2025-05-26",
            "waktu": "03:24:09",
            "amount": "20000",
            "expired": "2025-05-26 06:24:09",
            "status": "berhasil"
        },
        {   
            "trx_id": "PDC2wjOseREFN-84jdfjd-jddg4654",
            "merchant_ref": "jsdfj4-84hd84-ejrfu4",
            "payment_kode": "QRIS",
            "tanggal": "2025-05-25",
            "waktu": "01:47:26",
            "amount": "171000",
            "expired": "2025-05-26 01:47:26",
            "status": "berhasil"
        },
        {  
            "trx_id": "PDC495kiJDI84-358j45",
            "merchant_ref": "djfk84494vfe4rf44",
            "payment_kode": "BCAVA",
            "tanggal": "2025-05-25",
            "waktu": "01:45:13",
            "amount": "20000",
            "expired": "2025-05-25 04:45:13",
            "status": "expired"
        },
        {
            "trx_id": "PDC2wjOj8JF-464-4985jjk4et5ri",
            "merchant_ref": "hgt5575u75475",
            "payment_kode": "DANA",
            "tanggal": "2025-05-25",
            "waktu": "01:42:25",
            "amount": "5150",
            "expired": "2025-05-25 02:42:25",
            "status": "berhasil"
        },
        {
            "trx_id": "PDC2wjOseREFN-dfg4u-dft48",
            "merchant_ref": "436476y547854",
            "payment_kode": "QRIS",
            "tanggal": "2025-05-25",
            "waktu": "01:41:43",
            "amount": "3250",
            "expired": "2025-05-25 02:41:43",
            "status": "pending"
        }
    ]
}


Body form-data

form-data Type Value Description
api_id String API ID WAJIB | Api ID di dapatkan setelah user berhasil registrasi akun, dapat melihatnya di menu setting atau pengaturan akun merchant
method String transaction WAJIB | Metode untuk mengecek riwayat transaksi merchant
mechant int 1 OPSIONAL | Value = 1 yaitu mengecek transaksi sesuai data API ID dan APIKEY Merchant, jika nilai value merchant 0 atau false maka menampilkan keseluruhan data transaksi dari semua merchant yang di daftarkan dalam satu akun NEXPAY24
payment_kode String BCAVA OPSIONAL | filter data berdasarkan kode channel pembayaran
trx_id String SBX59oxxxxx OPSIONAL | filter data transaksi berdasarkan trx_id dari sistem NEXPAY24
merchant_ref String d834Hd-dj8xxxx OPSIONAL | filter data transaksi sesuai kode pembayaran merchant anda
status String pending OPSIONAL | pilih status yang ingin di cek (pending, berhasil, expired), jika kosong atau 0 maka menampilkan seluruh data status transaksi
tanggal_awal String 2025-05-05 OPSIONAL | filter data transaksi sesuai tanggal awal yang ingin di cek format date Y-m-d
tanggal_akhir String 2025-05-09 OPSIONAL | filter data transaksi sesuai tanggal akhir yang ingin di cek format date Y-m-d

Cek Status Transaksi


# CONTOH PERMINTAAN CEK STATUS
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://nexpay24.com/api-sanbox/status-transaction.php',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('api_id' => 'SANBOX-90976113','method' => 'status','trx_id' => 'SBXFsYv6tlHl-Tm8faWdA5-Jj0jXfb785'),
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer SANBOX-snuNYFCZ9q7KhDPpWSTv7243YRUCSrC'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

?>


Menampilkan status transaksi merchant (pending, berhasil, expired).

Production : https://nexpay24.com/api/status-transaction.php Sanbox : https://nexpay24.com/api-sanbox/status-transaction.php


# RESPON 200 BERHASIL
{
    "status": "200",
    "message": "success",
    "data": [
        {
            "status": "berhasil"
        }
    ]
}


form-data Type Value Description
api_id String API ID WAJIB | Api ID di dapatkan setelah user berhasil registrasi akun, dapat melihatnya di menu setting atau pengaturan akun merchant
method String status WAJIB | Metode cek status transaksi merchant
trx_id String SBXFsYv6tlHl-Tm8faWdA5-Jj0jXfb785 WAJIB | Nomor ID trx_id transaksi dari sistem NEXPAY24

Callback


#Handle Callback
<?php
//Koneksi database anda

// Ambil data JSON
$json = file_get_contents('php://input');

// Ambil callback signature
$callbackSignature = isset($_SERVER['HTTP_X_CALLBACK_SIGNATURE'])
    ? $_SERVER['HTTP_X_CALLBACK_SIGNATURE']
    : '';

// Isi dengan api key merchant anda
$apiKey = "API_KEY ANDA";

// Generate signature untuk dicocokkan dengan X-Callback-Signature
$signature = hash_hmac('sha256', $json, $apiKey);

// Validasi signature
if ($callbackSignature !== $signature) {
    exit(json_encode([
        'success' => false,
        'message' => 'Invalid signature',
    ]));
}

try {
    
$data = json_decode($json);

if (JSON_ERROR_NONE !== json_last_error()) {
    exit(json_encode([
        'success' => false,
        'message' => 'Invalid data send by payment gateway',
    ]));
}

// Hentikan proses jika callback event-nya bukan payment_status
if ('payment_status' !== $_SERVER['HTTP_X_CALLBACK_EVENT']) {
    exit(json_encode([
        'success' => false,
        'message' => 'Unrecognized callback event: ' . $_SERVER['HTTP_X_CALLBACK_EVENT'],
    ]));
}

// Mengambil data callback
$payment_TrxID = $data->trx_id;
$payment_MerchantRef = $data->merchant_ref;
$payment_Status = $data->status;
$payment_StatusKode = $data->status_kode;


if ($data->status == "berhasil" and $payment_StatusKode == 1) {
    
    //Lakukan sesuatu jika transaksi berhasil contoh seperti updated status transaksi pada database anda dll
    
    exit(json_encode([
            'success' => true,
            'message' => 'Payment status berhasil',
        ]));
        
} else if (($data->status == "expired" and $payment_StatusKode == 2)) {
    
    //Lakukan sesuatu jika transaksi expired / kadaluarsa contoh seperti updated status transaksi pada database anda dll
    
    exit(json_encode([
            'success' => true,
            'message' => 'Payment status expired',
        ]));
        
} else if (($data->status == "pending" and $payment_StatusKode == 0)) {
    
    //Jika status pending mungkin ada beberapa aksi yang ingin di lakukan tambahkan disini atau abaikan jika tidak ada aksi ketika status tetap pending biarkan cukup respon json yang di simpan
    
    exit(json_encode([
            'success' => true,
            'message' => 'Payment status pending',
        ]));
        
} else {
    
   throw new Exception('Error Data Status Callback');
}
} catch (Exception $e) {
exit(json_encode(['success' => false, 'message' => $e->getMessage()]));
}

?>


Endpoint Header Body Contoh Data
Method URL
POST URL callback yang diatur di halaman Merchant atau pada saat request transaksi
Key Contoh Nilai Keterangan
Content-Type application/json Data callback dikirim menggunakan format JSON
X-Callback-Signature f0457a66e085c20c8c8a554d1aebb8 Signature callback
X-Callback-Event payment_status Event callback.
Nilai: payment_status
Parameter Contoh Nilai Tipe Keterangan
trx_id SBXFsYv6tlHl-Tm8faWdA5-Jj0jXfb785 string Nomor ID trx_id transaksi dari sistem SAKURUPIAH
merchant_ref 570JSK7939KD string Nomor trx_id /invoice dari sistem merchant yang dikirim saat request transaksi
status berhasil string Status Transaksi: (pending, berhasil, expired )
status_kode 1 int pending => 0, berhasil => 1, expired => 2
{
"trx_id": "SBXFsYv6tlHl-Tm8faWdA5-Jj0jXfb785",
"merchant_ref": "575yhh-7967686gD",
"status": "berhasil",
"status_kode": 1,
}