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

Important notes

  • Return a 2xx response only after your system has processed the webhook successfully.
  • Webhooks may be retried, so use order_reference or merchant_reference to prevent duplicate processing.
  • 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.

Create Flight Order

Add webhook_url when creating an order