Skip to content

payment.paid

Sent when a payment (from a payment link or a direct payment) reaches succeeded.

Header Description
X-Baiyar-Signature t=<unix timestamp>,v1=<hex HMAC-SHA256> — see Verifying Webhook Signatures
Content-Type application/json
{
"id": "018f1f29-a012-73e4-a310-744d2167fcb3",
"type": "payment.paid",
"created_at": "2026-09-02T09:12:00Z",
"data": {
"id": "018f1f29-9b21-73e4-a310-744d2167fca1",
"project_id": "018f1f29-7c00-73e4-a310-744d2167fc60",
"reference": "ORDER-2026-0002",
"amount": 15000,
"currency": "IDR",
"status": "succeeded",
"paid_at": "2026-09-02T09:12:00Z"
}
}
Field Type Description
id string Unique event ID — use it to deduplicate retried deliveries, not data.id
type string Always payment.paid
created_at date-time When the event was generated
data.status string Always succeeded for this event
data.paid_at date-time When the payment succeeded

data is a summary, not the full payment. Call GET /v1/payments/{data.id} with your API key if you need the rest (fee breakdown, customer info, payment instructions).

Terminal window
curl -X POST https://api.baiyar.id/sandbox/payments/{providerPaymentID}/simulate \
-H "Content-Type: application/json" \
-d '{"outcome": "paid"}'

See Sandbox Simulation and Handling Webhook Deliveries.

payment.failed — the other transaction event.