Refunds

The refunding process in the API consists of a single call which does two things:

  • Cancels transaction lines on the booking.
  • Refunds the payments associated with the booking.

Standard refund call flow

Get completed order
Client application determines if order is eligible for refund
Refund full order

Get Completed Order

The GetCompletedOrder endpoint will do the following:

  • Return all the order details to display to the patron prior to performing a refund.
  • Return the refund status of all the tickets, items, and booking fees in the order.
  • Determine if a full refund can be performed, and if the booking fee is also refundable.

A refund can only be performed if refundAvailability.isAvailable is true and refundAvailability.availableMethods contains Full.

Example refundAvailability object that is returned in the response:

Copy
Copied
"refundAvailability": {
    "isAvailable": true,
    "unavailableReason": "NotApplicable",
    "availableMethods": [
        "Full"
    ],
    "isBookingFeeRefundable": false
},

Create Full Order Refund

The CreateFullOrderRefund endpoint has the following caveats:

  • It can only be used for completed orders.
  • A refundable completed order can only be fully refunded when the order refund availability availableMethods includes the order refund method Full .
  • Booking fees may or may not be refunded, as indicated by order refund availability isBookingFeeRefundable .

If successful, the response will return the order with updated properties to indicate the refund has been performed.

Copy
Copied
{
  "id": "945aec46974c40f49d217336b149e8ca",
  "type": "Standard",
  "status": "Completed",
  "totalPrice": {
    "valueIncludingTax": 2.0,
    "valueExcludingTax": 1.72,
    "tax": 0.28
  },
  "originalPrice": {
    "valueIncludingTax": 26.0,
    "valueExcludingTax": 22.46,
    "tax": 3.54
  },
  "booking": {
    "id": "WX4KZBW",
    "totalBookingFee": {
      "valueIncludingTax": 2.0,
      "valueExcludingTax": 1.72,
      "tax": 0.28
    },
    "originalBookingFee": {
      "valueIncludingTax": 2.0,
      "valueExcludingTax": 1.72,
      "tax": 0.28
    },
    "mode": "Paid"
  },
  "refundAvailability": {
    "isAvailable": false,
    "unavailableReason": "AlreadyRefunded",
    "availableMethods": [],
    "isBookingFeeRefundable": false
  },
  "totalRefunded": {
    "valueIncludingTax": 24.0,
    "valueExcludingTax": 20.74,
    "tax": 3.26
  }
}
NOTE

Some properties have been omitted from the code snippet above for brevity.

Limitations

We don't currently support partial refunds in OCAPI, only full refunds. However, if booking fees are configured to be non-refundable, a full refund will refund everything in the order except any booking fees.