Skip to main content
WEBHOOK

Headers

OrsunPay-Signature
string
required

t=,v1=<hex HMAC-SHA256(timestamp + "." + exact raw body)>; never log this header

Pattern: ^t=[0-9]+,v1=[a-f0-9]{64}$
OrsunPay-Event-Id
string
required

Convenience copy of body id (evt_…); deduplicate only after verifying the signed body

Pattern: ^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$
OrsunPay-Event-Type
string
required

Convenience copy of body type

Example:

"transaction.updated"

Body

application/json

Signed merchant event envelope (ADR-005/010). Event id and created_at remain unchanged on retries. Additional fields and event types may be added.

api_version
string
required

Payload version, fixed for the event (retries and re-drives keep it). Current: 2026-10-31. See the webhook event catalogue.

Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
Example:

"2026-10-31"

created_at
string<date-time>
required

UTC time when the event was recorded, not delivery time

data
object
required
id
string
required

Stable event identifier (TypeID with prefix evt_); identical on every retry and re-drive. Use the signed body id for deduplication

Pattern: ^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"evt_0j7s2pft4v8b9t8nj2cra1eg00"

livemode
boolean
required

Mode of the transaction snapshot; false for sandbox.

type
string
required

Payment status event type; refund events use RefundWebhookEvent

Example:

"transaction.updated"

Response

2XX

Any 2xx acknowledges delivery. Response body is ignored but must be empty or at most 64 KiB (MERCHANT_WEBHOOK_MAX_RESPONSE_BYTES); a larger body fails the delivery attempt. Prefer HTTP 204 No Content.