NAV undefined
bash php javascript java go python csharp

Kode QR V1

Pembayaran QR codes memungkinkan Anda untuk menerima pembayaran langsung dari saldo aplikasi mobile banking atau saldo eWallet milik customer. Di Indonesia, Anda dapat menerima pembayaran dari penyedia layanan manapun yang terkoneksi dengan jaringan QRIS (misal, OVO, Gopay, Dana, LinkAja, BCA, Shopeepay, lihat lebih banyak).

Buat Kode QR

Endpoint: Buat Kode QR

POST https://api.xendit.co/qr_codes

Parameter Request

Contoh: Pembuatan QRIS QR Code

curl https://api.xendit.co/qr_codes -X POST \
   -u xnd_development_O46JfOtygef9kMNsK+ZPGT+TeStIngw3Dn+R1k+2fT/7GlCAN3jg==: \
   -d external_id='testing_id_123' \
   -d type='DYNAMIC' \
   -d callback_url='https://yourwebsite.com/callback'\
   -d nominal=1500
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.xendit.co/qr_codes');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "external_id=testing_id_123&type=DYNAMIC&callback_url=https://yourwebsite.com/callback&nominal=1500");
curl_setopt($ch, CURLOPT_USERPWD, 'xnd_development_O46JfOtygef9kMNsK+ZPGT+TeStIngw3Dn+R1k+2fT/7GlCAN3jg==' . ':' . '');

$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
const x = new require("xendit-node")({
  secretKey:
    "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==",
});

const { QrCode } = x;
const qrcodeSpecificOptions = {};
const q = new QrCode(qrcodeSpecificOptions);

const resp = await q.createCode({
  externalID: "testing_id_123",
  type: "DYNAMIC",
  callbackURL: "https://yourwebsite.com/callback",
  amount: 1500,
});
console.log(resp);
from xendit import Xendit, QRCodeType

api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
QRCode = xendit_instance.QRCode

qrcode = QRCode.create(
    external_id="qrcode-id-1594794038",
    type=QRCodeType.DYNAMIC,
    callback_url="https://webhook.site",
    amount=4000,
)
print(qrcode)
Parameter Header Tipe Deskripsi
for-user-id
optional
string Sub-account user-id untuk transaksi ini.

Header ini hanya digunakan apabila Anda memiliki akses Xenplatform. Silakan akses xenPlatform untuk informasi lebih lengkap.
with-fee-rule
optional
string ID Fee Rule yang ingin Anda aplikasikan ke transaksi yang dilakukan.

Catatan: Jika Anda memasukkan parameter ini, kami akan mengembalikan fee_rule_id pada header response API.

Apabila for-user-id header tidak tersedia, Fee Rule akan menggunakan Akun Master sebagai sumber dana untuk mengirimkan Fee ke akun destinasi

Header tersebut hanya dapat digunakan apabila Anda memiliki akses ke xenPlatform. Lihat xenPlatform untuk informasi lebih lanjut
Parameter Body Tipe Deskripsi
external_id
wajib
string ID transaksi unik yang dibuat oleh merchant
Catatan: ID transaksi harus unik
type
wajib
string DYNAMIC or STATIC
Catatan: QR Code DYNAMIC mengandung nilai pembayaran ketika dilakukan pemindaian dan dapat dibayarkan satu-kali, transaksi selanjutnya akan dikembalikan
Catatan: QR code STATIC membutuhkan customer untuk memasukkan nilai pembayaran dan dapat dibayarkan berkali-kali
callback_url
wajib
string URL untuk dapat menerima notifikasi pembayaran setelah pembayaran dilakukan oleh customer
amount
opsional
number Nilai pembayaran yang tercantum pada QR Code, customer hanya dapat melakukan pembayaran sesuai dengan nilai yang tertera setelah pemindaian QR Code. Untuk QR Code STATIC, parameter nominal akan diabaikan.
Catatan: Minimum nominal adalah Rp 1,500
Catatan: Maximum nominal adalah Rp 10,000,000
metadata
opsional
object Objek dari informasi tambahan yang mungkin digunakan oleh user.
Anda dapat menambahkan hingga 50 keys, dengan masing-masing key hingga 40 karakter dan nilai hingga 500 karakter.

Parameter Respon

Contoh: Respon Sukses Pembuatan QRIS QR Code API

{
    "id": "qr_8182837te-87st-49ing-8696-1239bd4d759c",
    "external_id": "testing_id_123",
    "nominal": 1500,
    "qr_string": "0002010102##########CO.XENDIT.WWW011893600#######14220002152#####414220010303TTT####015CO.XENDIT.WWW02180000000000000000000TTT52045######ID5911XenditQRIS6007Jakarta6105121606##########3k1mOnF73h11111111#3k1mOnF73h6v53033605401163040BDB",
    "callback_url": "https://yourwebsite.com/callback",
    "type": "DYNAMIC",
    "status": "ACTIVE",
    "created": "2020-01-08T18:18:18.661Z",
    "updated": "2020-01-08T18:18:18.661Z",
    "metadata": {
        "branch_code": "senayan_372",
    }
}
Parameter Tipe Deskripsi
id
wajib
string Pengidentifikasi unik dari sebuah transaksi
external_id
wajib
string Pengidentifikasi unik yang secara spesifik dibuat oleh merchant untuk pembuatan QR Code
amount
wajib
number nominal yang tertera pada request
Catatan: nilai akan NULL jika tipe yang dimaksud adalah STATIC
qr_string
wajib
string QR string yang akan ditampilkan kepada customer. Untuk dapat menampilkan QR string dalam bentuk image dapat dilakukan melalui software libraries yang tersedia (e.g Nodejs, PHP, Java)
callback_url
wajib
string URL untuk dapat menerima notifikasi pembayaran setelah pembayaran dilakukan oleh customer
type
wajib
string DYNAMIC atau STATIC
status
wajib
string ACTIVE (QR code dapat dibayar) atau INACTIVE (DYNAMIC QR code telah dibayar )
created
wajib
string Timestamp ISO 8601 ketika QR Code telah dibuat when (dalam UTC)
updated
wajib
string Timestamp ISO 8601 ketika QR code telah diperbaharui (dalam UTC)
metadata
opsional
object Objek yang ditentukan pengguna dengan properti dan nilai JSON yang diteruskan selama pembuatan charge.
Objek dapat terdiri hingga 50 keys, dengan masing-masing key hingga 40 karakter dan nilai hingga 500 karakter.

Kode Error

Contoh: Create QRIS QR Code API Error Respon Error API Pembuatan QRIS Code

{
    "error_code": "API_VALIDATION_ERROR",
    "message": "nominal must be within range [1500, 10000000]"
}
Kode Error Description
DUPLICATE_ERROR
409
Pembayaran dengan external_id yang sama telah dibuat sebelumnya
DATA_NOT_FOUND
409
Merchant QRIS tidak ditemukan. Silakan hubungi tim customer success kami untuk aktivasi.
REQUEST_FORBIDDEN_ERROR
403
API key yang digunakan tidak memiliki ijin untuk melakukan request . Silakan atur ijin yang sesuai untuk API key yang Anda gunakan. Pelajari selengkapnya here
API_VALIDATION_ERROR
400
Terdapat input yang salah pada salah satu parameter wajib pada request

Cek Kode QR

GET https://api.xendit.co/qr_codes/:external_id

Parameter Request

Contoh: Get QR Code by external_id

curl https://api.xendit.co/qr_codes/external_id -X GET \
   -u xnd_development_O46JfOtygef9kMNsK+ZPGT+TeStIngw3Dn+R1k+2fT/7GlCAN3jg==: \
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.xendit.co/qr_codes/external_id');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

curl_setopt($ch, CURLOPT_USERPWD, 'xnd_development_O46JfOtygef9kMNsK+ZPGT+TeStIngw3Dn+R1k+2fT/7GlCAN3jg==' . ':' . '');

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
const x = new require("xendit-node")({
  secretKey:
    "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==",
});

const { QrCode } = x;
const qrcodeSpecificOptions = {};
const q = new QrCode(qrcodeSpecificOptions);

const resp = await q.getCode({
  externalID: "testing_id_123",
});
console.log(resp);
from xendit import Xendit

api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
QRCode = xendit_instance.QRCode

qrcode = QRCode.get_by_ext_id(
    external_id="qrcode-id-1594794038",
)
print(qrcode)
Parameter Header Tipe Deskripsi
for-user-id
optional
string User-id yang Anda inginkan untuk membuat transaksi.

Header ini hanya bisa digunakan jika Anda memiliki akses ke xenPlatform. Silahkan buka xenPlatform untuk informasi lebih lanjut.

Parameter Path Tipe Deskripsi
external_id
wajib
string ID transaksi unik yang dibuat oleh merchant

Parameter Respon

Contoh: Respon Sukses Get QR Code menggunakan external_id

{
    "id": "qr_8182837te-87st-49ing-8696-1239bd4d759c",
    "external_id": "testing_id_123",
    "nominal": 1500,
    "qr_string": "0002010102##########CO.XENDIT.WWW011893600#######14220002152#####414220010303TTT####015CO.XENDIT.WWW02180000000000000000000TTT52045######ID5911XenditQRIS6007Jakarta6105121606##########3k1mOnF73h11111111#3k1mOnF73h6v53033605401163040BDB",
    "callback_url": "https://yourwebsite.com/callback",
    "type": "DYNAMIC",
    "status": "ACTIVE",
    "created": "2020-01-08T18:18:18.661Z",
    "updated": "2020-01-08T18:18:18.661Z",
    "metadata": {
        "branch_code": "senayan_372",
    }
}
Parameter Tipe Deskripsi
id
wajib
string Pengidentifikasi unik dari sebuah transaksi
external_id
wajib
string Pengidentifikasi unik yang secara spesifik dibuat oleh merchant untuk pembuatan QR Code
nominal
wajib
number nominal yang tertera pada request
Catatan: nilai akan NULL jika tipe yang dimaksud adalah STATIC
qr_string
wajib
string QR string yang akan ditampilkan kepada customer. Untuk dapat menampilkan QR string dalam bentuk image dapat dilakukan melalui software libraries yang tersedia (e.g Nodejs, PHP, Java)
callback_url
wajib
string URL untuk dapat menerima notifikasi pembayaran setelah pembayaran dilakukan oleh customer
type
wajib
string DYNAMIC atau STATIC
status
wajib
string ACTIVE (QR code dapat dibayar) atau INACTIVE (DYNAMIC QR code telah dibayar)
created
wajib
string Timestamp ISO 8601 ketika QR Code telah dibuat when (dalam UTC)
updated
wajib
string Timestamp ISO 8601 ketika QR code telah diperbaharui (dalam UTC)
metadata
opsional
object Objek yang ditentukan pengguna dengan properti dan nilai JSON yang diteruskan selama pembuatan charge.
Objek dapat terdiri hingga 50 keys, dengan masing-masing key hingga 40 karakter dan nilai hingga 500 karakter.

Kode Error

Contoh: Create QRIS QR Code API Error Respon

{
    "error_code": "DATA_NOT_FOUND",
    "message": "QR code with external_id testing_id_123 not found"
}
Kode Error Deskripsi
DATA_NOT_FOUND
404
QR code dengan spesifik external_id tidak ditemukan.
REQUEST_FORBIDDEN_ERROR
403
API key yang digunakan tidak memiliki ijin untuk melakukan request . Silakan atur ijin yang sesuai untuk API key yang Anda gunakan. Pelajari selengkapnya here

Daftar Pembayaran

GET https://api.xendit.co/qr_codes/payments?external_id={external_id}&from={created}&to={created}&limit={number}

Get Array of Payments menggunakan external_id

Contoh: Get Array of Payments menggunakan external_id

curl 'https://api.xendit.co/qr_codes/payments?external_id=testing_qr&from=2021-01-04T08:09:30.000Z&to=2021-01-04T08:22:29.000Z&limit=2' -X GET \
   -u xnd_development_O46JfOtygef9kMNsK+ZPGT+TeStIngw3Dn+R1k+2fT/7GlCAN3jg==: \
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.xendit.co/qr_codes/payments?external_id=testing_qr&from=2021-01-04T08:09:30.000Z&to=2021-01-04T08:22:29.000Z&limit=2');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

curl_setopt($ch, CURLOPT_USERPWD, 'xnd_development_O46JfOtygef9kMNsK+ZPGT+TeStIngw3Dn+R1k+2fT/7GlCAN3jg==' . ':' . '');

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
const x = new require("xendit-node")({
  secretKey:
    "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==",
});

const { QrCode } = x;
const qrcodeSpecificOptions = {};
const q = new QrCode(qrcodeSpecificOptions);

const resp = await q.getPayments({
  externalID: "testing_id_123",
  from: "2021-01-04T08:09:30.000Z",
  to: "2021-02-04T07:44:20.332Z",
  limit: 10,
});
console.log(resp);
Path Parameter Type Description
external_id
wajib
string ID transaksi unik dari merchant untuk membuat QR code
limit
optional
number Default = 10. Jumlah transaksi pembayaran yang dikembalikan pada response
from
optional
string Timestamp awal untuk filter berdasarkan waktu menggunakancreated, timestamp seharusnya lebih awal dari parameter to
to
optional
string Timestamp akhir untuk filter berdasarkan waktu menggunakan created, timestamp harus lebih dari parameter from

Respon Get Array of Payments menggunakan external_id

Contoh: Respon Sukses Get Array of Payments menggunakan external_id

[
  {
    "id": "qrpy_8182837te-87st-49ing-8696-1239bd4d759c",
    "amount": 1500,
    "created": "2020-01-08T18:18:18.857Z",
    "qr_code": {
      "id": "qr_8182837te-87st-49ing-8696-1239bd4d759c",
      "external_id": "testing_id_123",
      "qr_string": "0002010102##########CO.XENDIT.WWW011893600#######14220002152#####414220010303TTT####015CO.XENDIT.WWW02180000000000000000000TTT52045######ID5911XenditQRIS6007Jakarta6105121606##########3k1mOnF73h11111111#3k1mOnF73h6v53033605401163040BDB",
      "type": "DYNAMIC",
      "metadata": {
        "branch_code": "senayan_372"
      }
    },
    "status": "COMPLETED",
    "payment_detail": {
      "receipt_id": "120318666",
      "source": "GOPAY"
    }
  },
  {
    "id": "qrpy_8182837te-87st-49ing-8696-1229bd22222",
    "amount": 1500,
    "created": "2020-01-08T18:18:20.857Z",
    "qr_code": {
      "id": "qr_8182837te-87st-49ing-8696-1239bd4d759c",
      "external_id": "testing_id_123",
      "qr_string": "0002010102##########CO.XENDIT.WWW011893600#######14220002152#####414220010303TTT####015CO.XENDIT.WWW02180000000000000000000TTT52045######ID5911XenditQRIS6007Jakarta6105121606##########3k1mOnF73h11111111#3k1mOnF73h6v53033605401163040BDB",
      "type": "DYNAMIC",
      "metadata": {
        "branch_code": "senayan_372"
      }
    },
    "status": "COMPLETED",
    "payment_detail": {
      "receipt_id": "000111666",
      "source": "GOPAY"
    }
  }
]
Parameter Deskripsi
id
wajib
string Pengidentifikasi unik dari sebuah transaksi
nominal
wajib
number nominal yang dibayarkan oleh customer
created
wajib
string Timestamp ISO 8601 ketika QR Code telah dibayarkan (dalam UTC)
qr_code
wajib
object Objek QR code yang diasosiasikan dengan pembayaran QR code
parameter QR code
Key Value
id
wajib
string Pengidentifikasi unik untuk pembuatan transaksi QR code
external_id
wajib
string Pengidentifikasi unik untuk request pembayaran spesifik dari merchant
qr_string
wajib
string QR string yang akan ditampilkan untuk user
type
wajib
string Tipe QR code - DYNAMIC atau STATIC
metadata
opsional
object Objek yang ditentukan pengguna dengan properti dan nilai JSON yang diteruskan selama pembuatan charge.
Objek dapat terdiri hingga 50 keys, dengan masing-masing key hingga 40 karakter dan nilai hingga 500 karakter.
status
wajib
string Status pembayaran. Nilai yang mungkin muncul: COMPLETED
payment_detail
wajib
object Berisi informasi mengenai pembayaran yang telah dibagikan di jaringan pembayaran
payment_detail fields
Key Value
receipt_id
wajib
string Request Reference Number (RRN) yang telah dibagikan di jaringan pembayaran
source
wajib
enum Sumber pembayaran yang menerima dana end user dalam penyelesaian pembayaran (e.g. BCA, OVO, GOPAY)

API Respon Eror

Contoh: Respon Error API Get Array of Payments menggunakan external_id

{
    "error_code": "DATA_NOT_FOUND",
    "message": "QR code with external_id testing_id_123 not found"
}
Kode Eror Deskripsi
DATA_NOT_FOUND
404
QR code external_id spesifik tersebut tidak ditemukan.
REQUEST_FORBIDDEN_ERROR
403
API key yang digunakan tidak memiliki ijin untuk melakukan request . Silakan atur ijin yang sesuai untuk API key yang Anda gunakan. Pelajari selengkapnya here

Simulasi Pembayaran

Parameter Request

Contoh: Simulasi pembayaran pada mode test

curl https://api.xendit.co/qr_codes/:external_id/payments/simulate -X POST \
   -u xnd_development_O46JfOtygef9kMNsK+ZPGT+TeStIngw3Dn+R1k+2fT/7GlCAN3jg==: \
   -d nominal=1500
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.xendit.co/qr_codes/:external_id/payments/simulate');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "nominal=1500");
curl_setopt($ch, CURLOPT_USERPWD, 'xnd_development_O46JfOtygef9kMNsK+ZPGT+TeStIngw3Dn+R1k+2fT/7GlCAN3jg==' . ':' . '');

$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
const x = new require("xendit-node")({
  secretKey:
    "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==",
});

const { QrCode } = x;
const qrcodeSpecificOptions = {};
const q = new QrCode(qrcodeSpecificOptions);

const resp = await q.simulate({
  externalID: "testing_id_123",
});
console.log(resp);
Parameter Header Tipe Deskripsi
for-user-id
optional
string User-id yang Anda inginkan untuk membuat transaksi.

Header ini hanya bisa digunakan jika Anda memiliki akses ke xenPlatform. Silahkan buka xenPlatform untuk informasi lebih lanjut.

Parameter Path Tipe Deskripsi
external_id
wajib
string Merchant provided unique transaction ID used to create QR code
Parameter Body Tipe Deskripsi
nominal
optional
number The payment value for simulation in callback to test mode endpoint
Catatan: Min nominal is Rp 1,500
Catatan: Max nominal is Rp 10,000,000

Parameter Respon

Contoh: Respon Sukses Simulasi Pembayaran (mode test)

{
  "id": "qrpy_8182837te-87st-49ing-8696-1239bd4d759c",
  "nominal": 1500,
  "created": "2020-01-08T18:18:18.857Z",
  "qr_code": {
    "id": "qr_8182837te-87st-49ing-8696-1239bd4d759c",
    "external_id": "testing_id_123",
    "qr_string": "0002010102##########CO.XENDIT.WWW011893600#######14220002152#####414220010303TTT####015CO.XENDIT.WWW02180000000000000000000TTT52045######ID5911XenditQRIS6007Jakarta6105121606##########3k1mOnF73h11111111#3k1mOnF73h6v53033605401163040BDB",
    "type": "DYNAMIC",
    "metadata": {
        "branch_code": "senayan_372",
    }
  },
  "status": "COMPLETED"
}
Parameter Tipe Deskripsi
id
wajib
string Pengidentifikasi unik dari sebuah transaksi
nominal
wajib
number nominal yang dibayarkan oleh customer
Catatan: nilai akan NULL jika tipe yang dimaksud adalah STATIC
created
wajib
string Timestamp ISO 8601 ketika QR code telah dibayarkan (dalam UTC)
qr_code
wajib
object Objeck QR code yang diasosiasikan dengan pembayaran QR code
parameter QR code
Key Value
id
wajib
string Pengidentifikasi unik untuk pembuatan transaksi QR Code
external_id
wajib
string Pengidentifikasi unik yang secara spesifik dibuat oleh merchant untuk pembuatan QR Code
qr_string
wajib
string QR string yang akan ditampilkan kepada customer. Untuk dapat menampilkan QR string dalam bentuk image dapat dilakukan melalui software libraries yang tersedia (e.g Nodejs, PHP, Java)
type
wajib
string Tipe QR code - DYNAMIC or STATIC
metadata
opsional
object Objek yang ditentukan pengguna dengan properti dan nilai JSON yang diteruskan selama pembuatan charge.
Objek dapat terdiri hingga 50 keys, dengan masing-masing key hingga 40 karakter dan nilai hingga 500 karakter.
status
wajib
string Status pembayaran. Nilai yang mungkin muncul: COMPLETED

Kode Error

Contoh: Create QRIS QR Code API Error Respon

{
    "error_code": "DATA_NOT_FOUND",
    "message": "QR code with external_id testing_id_123 not found"
}
Kode Error Deskripsi
INACTIVE_QR_CODE
410
Simulasi pembayaran untuk DYNAMIC QRIS telah selesai sebelumnya. QRIS DYNAMIC tidak aktif.
DATA_NOT_FOUND
404
QR code dengan spesifik external_id tidak ditemukan.
REQUEST_FORBIDDEN_ERROR
403
API key yang digunakan tidak memiliki ijin untuk melakukan request . Silakan atur ijin yang sesuai untuk API key yang Anda gunakan. Pelajari selengkapnya here
API_VALIDATION_ERROR
400
Terdapat input yang salah pada salah satu parameter wajib pada request.

Notifikasi Pembayaran

Xendit mengirim notifikasi pembayaran ke sistem Anda melalui callback. Anda perlu mempersiapkan URL untuk menerima callback.

Ketika pembayaran berhasil diproses, Xendit mengirimkan pesan ke URL menggunakan metode POST secara langsung melalui callback. Xendit turut melampirkan x-callback-token header yang dapat Anda validasi dengan Token Verifikasi di Setelan Callback untuk mengecek keaslian pesan tersebut.

Kami harap sistem Anda dapat merespon callback dengan status 200 secepatnya. Xendit mengganggap callback gagal ketika kami tidak menerima respon dari sistem Anda selama 30 detik.

Pelajari lebih lanjut mengenai Callback.

Data Callback

{
  "event": "qr.payment",
  "id": "qrpy_8182837te-87st-49ing-8696-1239bd4d759c",
  "nominal": 1500,
  "created": "2020-01-08T18:18:18.857Z",
  "qr_code": {
    "id": "qr_8182837te-87st-49ing-8696-1239bd4d759c",
    "external_id": "testing_id_123",
    "qr_string": "0002010102##########CO.XENDIT.WWW011893600#######14220002152#####414220010303TTT####015CO.XENDIT.WWW02180000000000000000000TTT52045######ID5911XenditQRIS6007Jakarta6105121606##########3k1mOnF73h11111111#3k1mOnF73h6v53033605401163040BDB",
    "type": "DYNAMIC",
    "metadata": {
      "branch_code": "senayan_372"
    }
  },
  "status": "COMPLETED",
  "payment_detail": {
    "receipt_id": "120318666",
    "source": "GOPAY"
  }
}
Header Parameter Tipe Description
x-callback-token
required
string Token unik akun Anda yang dapat digunakan untuk mengecek keaslian pesan

Body Parameter Tipe Deskripsi
event
wajib
string Nilai yang tersedia: "qr.payment"
id
wajib
string Pengidentifikasi unik dari sebuah transaksi
nominal
wajib
number nominal yang dibayarkan oleh customer
Catatan: nilai akan NULL jika tipe yang dimaksud adalah STATIC
created
wajib
string Timestamp ISO 8601 ketika QR code telah dibayarkan (dalam UTC)
qr_code
wajib
object Objeck QR code yang diasosiasikan dengan pembayaran QR code
parameter QR code
Key Value
id
wajib
string Pengidentifikasi unik untuk pembuatan transaksi QR Code
external_id
wajib
string Pengidentifikasi unik yang secara spesifik dibuat oleh merchant untuk pembuatan QR Code
qr_string
wajib
string QR string yang akan ditampilkan kepada customer. Untuk dapat menampilkan QR string dalam bentuk image dapat dilakukan melalui software libraries yang tersedia (e.g Nodejs, PHP, Java)
type
wajib
string Tipe QR code - DYNAMIC or STATIC
metadata
opsional
object Objek yang ditentukan pengguna dengan properti dan nilai JSON yang diteruskan selama pembuatan charge.
Objek dapat terdiri hingga 50 keys, dengan masing-masing key hingga 40 karakter dan nilai hingga 500 karakter.
status
wajib
string Status pembayaran. Nilai yang mungkin muncul: COMPLETED
payment_detail
wajib
object Berisi informasi mengenai pembayaran yang telah dibagikan di jaringan pembayaran
payment_detail fields
Key Value
receipt_id
wajib
string Request Reference Number (RRN) yang telah dibagikan di jaringan pembayaran
source
wajib
string Sumber pembayaran yang menerima dana end user dalam penyelesaian pembayaran