Skip to main content
Cancel an eligible, unticketed flight reservation belonging to your business. PayVessel confirms the booking status before cancellation and confirms that cancellation succeeded before refunding a charged wallet.

Usage

This endpoint has no request body. Use the PayVessel order id, not your merchant reference, in the URL. The API keys identify your business; do not send a business_id.

Path parameters

Cancellation eligibility

A reservation can exist before a ticket is issued. Order creation automatically attempts ticket issuance, so an unticketed reservation may only be available for cancellation briefly. PayVessel rechecks its eligibility when you request cancellation.
Orders without a booking reference are not ready for cancellation. Some bookings do not support online cancellation and require support assistance.

Refunds

For an eligible cancellation, PayVessel requests a reversal of the entire original wallet debit:
For example, an order with a base fare of 487500.00 NGN and a service charge of 24375.00 NGN reverses the original 511875.00 NGN wallet debit. The service charge is not retained. No wallet refund is requested if the wallet was never charged. Cancelled orders do not earn the successful-booking reward. The response retains the original pricing snapshot, including wallet_reward_on_success; that field is not confirmation that a reward was credited. Repeated requests do not issue a second completed refund. If cancellation succeeds but the wallet refund fails, the endpoint returns 424 with a refund-pending message. Repeat this cancellation request for the same order_id to retry the refund without cancelling the reservation again.

Example response

HTTP 200:
data uses the same order structure as Get Order. ticket_info may be null or contain available booking details. Pricing records the original charge, not a separate refund transaction.

Errors

Issued ticket

HTTP 409:

Cancellation not confirmed

HTTP 424:
Use Get Order to check the current booking state before retrying. A timeout or failed confirmation does not establish whether cancellation occurred.

Refund pending

HTTP 424:
The booking is already cancelled. Repeat POST /flight/orders/{order_id}/cancel to retry the wallet refund. Fetching the order alone does not retry it.

Webhook notification

If the order has a webhook_url, PayVessel sends a signed order.cancelled notification when cancellation is confirmed. An order without a webhook URL is still updated internally.
order.cancelled confirms the booking state. It can also be sent when a refund is pending, so it is not proof that funds have reached your wallet. See Flight Webhooks for the headers and payload.

API Reference

Full request and response schema