Skip to main content
Flight webhooks notify your webhook_url when a flight order status changes. Add webhook_url when you create a flight order to receive status updates for that order. Webhook delivery is asynchronous. Always verify the signature, make your webhook handler idempotent, and use Get Order if you need to confirm the latest state.

Headers

PayVessel sends flight webhooks as JSON POST requests.
Some frameworks expose PAYVESSEL-HTTP-SIGNATURE as HTTP_PAYVESSEL_HTTP_SIGNATURE. Verify the signature against the raw request body before parsing or formatting the JSON.

Signature verification

To verify a flight webhook:
  1. Read the raw request body exactly as received.
  2. Compute HMAC-SHA512(raw_body, api_secret).
  3. Compare the hex digest with the PAYVESSEL-HTTP-SIGNATURE header using a constant-time comparison.
See Verifying Webhooks for implementation examples.

Event types

The data.status field contains the current order status:

Payload structure

Completed order payload

Failed order payload

Cancelled order payload

A confirmed cancellation uses event: order.cancelled and data.status: cancelled. The order retains its original pricing snapshot. See Cancel Order for cancellation eligibility and refund retries.
This notification is sent on a confirmed cancellation transition, even if its eligible wallet refund is pending. It does not include a refund settlement status. A repeated cancellation request does not send another cancellation notification for the same transition.

Important notes

  • Return a 2xx response only after your system has processed the webhook successfully.
  • Webhooks may be retried. Handle repeated notifications for the same order_reference and event idempotently, while allowing later status transitions for that order.
  • The ticket_info object is usually present for order.completed events and may be null for non-completed events.
  • The PAYVESSEL-HTTP-SIGNATURE is calculated over the exact JSON body sent to your endpoint.
  • order.cancelled confirms cancellation, not wallet refund settlement. See Cancel Order for full-refund behavior and refund-pending retries.

Create Flight Order

Add webhook_url when creating an order