API ReferenceWebhooks

Late deposit received on an expired invoice.

Fired when a payment arrives after the invoice has already expired. The merchant can decide whether to credit the customer.

Signature: X-Halfin-Signature: t={timestamp},v1={hmac} where hmac = HMAC-SHA256(secret, "{timestamp}.{raw_body}"). Reject if abs(now - timestamp) > 300 seconds.

eventstring

Event type identifier.

Value in"invoice.late_deposit"
created_atstring

Event creation timestamp.

Formatdate-time
dataLateDepositWebhookData

Payload data for invoice.late_deposit events.

Commit 2 of the rate-freshness + offerability refactor adds four OPTIONAL fields (rate_applied, rate_updated_at, rate_age_ms, rate_stale) that land ONLY on static-address credits. Invoice-based late deposits carry a slot-locked rate and omit these fields — the slot's exchange_rate is authoritative for the invoice-based case. Merchant SDK consumers that depend on additionalProperties: false are unaffected because the new keys are explicitly listed.