OPEN API
Coba di PostmanKoleksi Open API
https://staging-api.xepeng.com stagingKoleksi ini memperlihatkan endpoint Xepeng Open API untuk mengelola pesanan (orders) dan tautan pembayaran (payment links). Gunakan pengalih lingkungan di sidebar untuk beralih antara Staging dan Production.
Otentikasi
Semua endpoint dilindungi dan mengharapkan salah satu mekanisme otentikasi berikut:
Token Bearer menggunakan kunci API atau token akses:
Header yang Diperlukan
X-Signature HMAC-SHA256(client_secret, METHOD + PATH + TIMESTAMP + BODY)X-Client-ID client_id from dashboardX-Timestamp DateNow()Tetapkan nilai-nilai ini di:
- Variabel lingkungan Staging, atau
- Postman Vault Anda untuk rahasia sensitif.
Memulai
1. Impor dan buka koleksi
- Buka Ruang Kerja Tim (Team Workspace).
- Cari koleksi bernama "OPEN API".
- Buka koleksi untuk melihat folder:
- Order
- Payment Link
2. Pilih lingkungan Staging
- Di pojok kanan atas Postman, buka dropdown lingkungan.
- Pilih lingkungan bernama "Staging".
- Pastikan variabel berikut ada di lingkungan Staging:
xepengUrl– base URL for the Xepeng API (e.g. https://staging-api.xepeng.com)client_id– your client identifierclient_secret– your client secret- (optional)
api_key– if you use Bearer token authentication
3. Konfigurasi rahasia (Vault vs Environment)
Untuk produksi atau kredensial nyata:
- Lebih disarankan menggunakan Postman Vault untuk menyimpan client_id, client_secret, dan api_key.
- Referensikan di lingkungan sebagai variabel.
Untuk pengujian lokal cepat di Staging:
- Anda dapat mengatur client_id, client_secret, dan api_key langsung di lingkungan Staging.
4. Menjalankan koleksi
Anda dapat:
- Menjalankan permintaan individu dari folder Order atau Payment Link.
- Menggunakan Collection Runner atau Monitor untuk menjalankan beberapa permintaan.
Siklus Transaksi
Berikut adalah gambaran umum proses integrasi untuk menerbitkan tautan transaksi langsung dari sistem Anda hingga pengguna diarahkan ke halaman pembayaran:

1. Create Order (Buat Order)
Langkah awal dimulai dengan menginisiasi order baru melalui endpoint API. Pada tahap ini, sistem akan mencatat rincian item belanjaan dan memberikan status awal berupa 'pending'.
2. Activate Order (Aktivasi Order)
Sebelum tautan pembayaran dapat diterbitkan, Anda perlu memperbarui status order tersebut menjadi 'active'. Langkah konfirmasi ini memastikan tidak ada lagi perubahan pada item dan order siap untuk diproses ke tahap penagihan.
3. Generate Payment Link (Buat Link Pembayaran)
Setelah status order dipastikan aktif, sistem kami akan membuatkan tautan pembayaran (payment_url) unik yang mengikat langsung ke ID order tersebut. Anda juga bisa menentukan waktu kedaluwarsa tautan pada tahap ini.
4. Redirect to Payment Page (Pengalihan Halaman)
Terakhir, backend Anda cukup mengalihkan (redirect) browser pengguna menggunakan tautan pembayaran yang didapat dari langkah sebelumnya. Pengguna akan langsung masuk ke halaman secure checkout untuk menyelesaikan pembayaran.
SDK & Helper
Untuk mempermudah integrasi, kami menyediakan package resmi untuk Node.js dan PHP. Package ini sudah membungkus proses otentikasi dan pemanggilan ke semua endpoint yang tersedia sehingga Anda tinggal menggunakannya langsung di dalam aplikasi.
Node.js (NPM)
Library Node.js resmi untuk integrasi dengan Xepeng API.
npm install xepeng-oauth-js PHP (Composer)
Library PHP resmi untuk integrasi dengan Xepeng API.
composer require xepeng/oauth-php Referensi Permintaan
Di bawah ini adalah deskripsi tingkat tinggi dari setiap permintaan. Setiap permintaan individu dalam koleksi juga berisi deskripsi rinci dan contoh payload.
Pesanan (Order)
https://staging-api.xepeng.com/openapi/ordersBuat
Buat pesanan baru dengan jumlah, mata uang, informasi pelanggan, dan metadata. Memerlukan otentikasi via Token Bearer atau kredensial klien.
https://staging-api.xepeng.com/openapi/orders/:order_uidPerbarui
Perbarui pesanan yang ada berdasarkan UID-nya (parameter jalur).
https://staging-api.xepeng.com/openapi/orders/:order_uidAmbil berdasarkan UID
Ambil satu pesanan berdasarkan UID-nya.
https://staging-api.xepeng.com/openapi/ordersAmbil Daftar
Daftar pesanan dengan dukungan paginasi melalui parameter query page dan limit.
Tautan Pembayaran (Payment Link)
https://staging-api.xepeng.com/openapi/payment-links/generateBuat Tautan
Buat tautan pembayaran baru untuk jumlah dan referensi pesanan tertentu.
https://staging-api.xepeng.com/openapi/payment-linksAmbil Daftar
Daftar tautan pembayaran dengan paginasi.
https://staging-api.xepeng.com/openapi/payment-links/:payment_link_uidGet
Ambil satu tautan pembayaran berdasarkan UID-nya.
https://staging-api.xepeng.com/openapi/payment-links/:payment_link_uid/inactivateNonaktifkan
Nonaktifkan tautan pembayaran yang ada sehingga tidak dapat digunakan lagi.
Contoh permintaan representatif
Contoh: Buat Pesanan
POST https://staging-api.xepeng.com/openapi/orders
cURL
curl --request POST "https://staging-api.xepeng.com/openapi/orders" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer {{api_key}}" \
--data-raw '{
"amount": 100000,
"currency": "IDR",
"description": "Order for product X",
"customer": {
"name": "John Doe",
"email": "john.doe@example.com",
"phone": "+6281234567890"
},
"metadata": {
"order_ref": "ORDER-12345"
}
}'JavaScript (fetch)
const url = `${displayBaseUrl}/openapi/orders`; // Substitute your actual base URL or use an environment variable in Postman
const payload = {
amount: 100000,
currency: "IDR",
description: "Order for product X",
customer: {
name: "John Doe",
email: "john.doe@example.com",
phone: "+6281234567890"
},
metadata: {
order_ref: "ORDER-12345"
}
};
fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${process.env.XEPENG_API_KEY}` // or your stored secret
},
body: JSON.stringify(payload)
})
.then(async (response) => {
const data = await response.json();
console.log("Status:", response.status);
console.log("Response:", data);
})
.catch((error) => {
console.error("Error calling Create Order API:", error);
});