Usage
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.
Refunds
For an eligible cancellation, PayVessel requests a reversal of the entire original wallet debit: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
HTTP200:
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
HTTP409:
Cancellation not confirmed
HTTP424:
Refund pending
HTTP424:
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 awebhook_url, PayVessel sends a signed order.cancelled notification when cancellation is confirmed. An order without a webhook URL is still updated internally.
API Reference
Full request and response schema
