payment_link.created
Sent when a payment link is created, via POST /v1/payment-links — see
Payment Links for how they work.
Headers
Section titled “Headers”| Header | Description |
|---|---|
X-Baiyar-Signature |
t=<unix timestamp>,v1=<hex HMAC-SHA256> — see Verifying Webhook Signatures |
Content-Type |
application/json |
Payload
Section titled “Payload”{ "id": "evt_QpL9jZ4mR1sVn6TdWX78", "type": "payment_link.created", "created_at": "2026-09-02T08:00:00Z", "data": { "id": "pl_test_8Kx3mQ9dPz2Nc7RwAB12", "project_id": "project_IChAi2NR4vzKN3SgEYPI", "merchant_name": "Zara Store", "reference": "001/P/IX/26", "title": "Invoice August", "description": "", "amount": 125000, "currency": "IDR", "fee_bearer": "merchant", "fee_previews": [ { "payment_method": { "type": "qris" }, "fee_amount": 875, "customer_amount": 125000, "merchant_net": 124125 } ], "allowed_payment_methods": [{ "type": "qris" }], "usage_type": "single_use", "customer_fields": { "name": false, "email": false, "phone": false, "address": false }, "status": "active", "created_at": "2026-09-02T08:00:00Z" }}| Field | Type | Description |
|---|---|---|
id |
string | Unique event ID — use it to deduplicate retried deliveries, not data.id |
type |
string | Always payment_link.created |
created_at |
date-time | When the event was generated |
data.id |
string | The payment link’s public ID |
data.fee_bearer |
string | merchant or customer — resolved: the link’s own override if set, otherwise the project’s default |
data.fee_previews |
array | Estimated fee/net amount per allowed payment method |
data.usage_type |
string | single_use (default) or reusable |
data.status |
string | Always active at creation |
data doesn’t include the checkout URL — construct it yourself as
https://checkout.baiyar.id/p/<data.id>, the same format returned by the
synchronous POST /v1/payment-links response.
Testing
Section titled “Testing”There’s no sandbox simulator for this event — trigger it by actually
creating a sandbox payment link (POST /v1/payment-links, or from the
dashboard) and watching your endpoint receive the delivery within a few
seconds.
Next steps
Section titled “Next steps”payment_link.cancelled — the other payment link event.