Payment Links
Lihat Panduan Payment Links untuk konsep dan siklus hidupnya.
Membuat Payment Link
Bagian berjudul "Membuat Payment Link"Ringkasan
Bagian berjudul "Ringkasan"Membuat halaman checkout hosting untuk nominal tetap.
POST
/v1/payment-linksAutentikasi
Bagian berjudul "Autentikasi"Membutuhkan API key — lihat Autentikasi.
Authorization: Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxRequest body
Bagian berjudul "Request body"| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
project_id |
string | Ya | Harus cocok dengan project milik API key |
title |
string | Ya | Ditampilkan ke pelanggan di halaman checkout |
amount |
integer | Ya | IDR, rupiah utuh. Minimum 100 untuk qris, 10.000 untuk virtual_account (batas yang lebih tinggi berlaku jika keduanya diizinkan) |
reference |
string | Tidak | ID order/invoice Anda sendiri. Dibuat otomatis jika dikosongkan |
description |
string | Tidak | Ditampilkan di bawah title |
expires_at |
date-time | Tidak | Harus di masa depan |
allowed_payment_methods |
array | Tidak | Membatasi link ke sebagian metode. Kosongkan untuk memakai default project |
allow_multiple_payments |
boolean | Tidak | Default false. Jika true, link tetap bisa dipakai berulang alih-alih dinonaktifkan setelah pembayaran pertama |
customer_fields |
object | Tidak | Field mana dari name/email/phone/address yang dikumpulkan halaman checkout |
curl https://api.baiyar.id/v1/payment-links \ -H "Authorization: Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "project_id": "018f1f29-7c00-73e4-a310-744d2167fc60", "title": "Invoice Agustus", "amount": 125000, "allowed_payment_methods": [{ "type": "qris" }, { "type": "virtual_account", "bank": "bca" }] }'const response = await fetch("https://api.baiyar.id/v1/payment-links", { method: "POST", headers: { Authorization: "Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json", }, body: JSON.stringify({ project_id: "018f1f29-7c00-73e4-a310-744d2167fc60", title: "Invoice Agustus", amount: 125000, allowed_payment_methods: [{ type: "qris" }, { type: "virtual_account", bank: "bca" }], }),});import requests
response = requests.post( "https://api.baiyar.id/v1/payment-links", headers={"Authorization": "Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}, json={ "project_id": "018f1f29-7c00-73e4-a310-744d2167fc60", "title": "Invoice Agustus", "amount": 125000, "allowed_payment_methods": [{"type": "qris"}, {"type": "virtual_account", "bank": "bca"}], },)body := strings.NewReader(`{"project_id":"018f1f29-7c00-73e4-a310-744d2167fc60","title":"Invoice Agustus","amount":125000,"allowed_payment_methods":[{"type":"qris"},{"type":"virtual_account","bank":"bca"}]}`)req, _ := http.NewRequest("POST", "https://api.baiyar.id/v1/payment-links", body)req.Header.Set("Authorization", "Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")req.Header.Set("Content-Type", "application/json")resp, err := http.DefaultClient.Do(req)Response
Bagian berjudul "Response"{ "id": "018f1f29-8a10-73e4-a310-744d2167fc90", "project_id": "018f1f29-7c00-73e4-a310-744d2167fc60", "merchant_name": "Zara Store", "reference": "001/P/IX/26", "title": "Invoice Agustus", "description": "", "amount": 125000, "currency": "IDR", "fee_bearer": "merchant", "fee_previews": [ { "payment_method": { "type": "qris" }, "fee_amount": 875, "customer_amount": 125000, "merchant_net": 124125 }, { "payment_method": { "type": "virtual_account", "bank": "bca" }, "fee_amount": 6000, "customer_amount": 125000, "merchant_net": 119000 } ], "allowed_payment_methods": [{ "type": "qris" }, { "type": "virtual_account", "bank": "bca" }], "allow_multiple_payments": false, "customer_fields": { "name": false, "email": false, "phone": false, "address": false }, "status": "active", "created_at": "2026-09-02T08:00:00Z", "url": "https://checkout.baiyar.id/p/018f1f29-8a10-73e4-a310-744d2167fc90"}| Status | Code | Arti |
|---|---|---|
400 |
VALIDATION_ERROR |
Sebuah field gagal validasi (lihat error.message) |
401 |
UNAUTHORIZED |
API key tidak ada atau tidak valid |
403 |
FORBIDDEN |
Project belum bisa dipakai sekarang |
404 |
PROJECT_NOT_FOUND |
Tidak ada project tersebut, atau milik API key lain |
Melihat Daftar Payment Link
Bagian berjudul "Melihat Daftar Payment Link"GET
/v1/payment-linksBerpaginasi, dibatasi ke project milik API key.
Query parameter
Bagian berjudul "Query parameter"| Parameter | Tipe | Deskripsi |
|---|---|---|
page |
integer | Default 1 |
page_size |
integer | 1–100, default 20 |
search |
string | Mencocokkan title/reference |
Response
Bagian berjudul "Response"{ "data": [ /* objek Payment Link, seperti di atas */ ], "pagination": { "page": 1, "page_size": 20, "total_items": 3, "total_pages": 1 }}Mengambil Payment Link
Bagian berjudul "Mengambil Payment Link"GET
/v1/payment-links/{paymentLinkID}Mengembalikan 404 jika link tidak ada atau milik project lain selain
API key.
Membatalkan Payment Link
Bagian berjudul "Membatalkan Payment Link"POST
/v1/payment-links/{paymentLinkID}/cancelMenonaktifkan link seketika — tanpa request body. Mengembalikan 409 jika
link sedang tidak active.