Void Order

Overview

Use the Void Order endpoint to void orders where funds have been authorized but not settled. An order amount can be voided in full or partially voided (up to the amount of funds that have been authorized but not captured).

API Request

❗️

Limits on Payment Links

PayLink is different than Expedited Guest Checkout or The Skipify Button in that it accepts payments from both registered Skipify users as well as guests. For guest payments, Skipify does not store customer data, so it is not always possible for Skipify to process order captures, voids or refunds for those orders via the Skipify API.

However, the payment gateway responses are shared with you after order completion so that you can contact the gateway directly to process your any voids, captures or refunds. The payment processor gateway response is provided through Skipify's webhooks. Simply subscribe to the ORDER_PAYMENT_SUCCEEDED or the ORDER_PAYMENT_FAILED webhooks; data received via these webhooks include a gatewayTransactionId that you can reference to communicate with your payment processor.

Alternatively, you can retrieve order details using the Skipify orderId (using the GET endpoint), available in the request bodies from the ORDER_PAYMENT_SUCCEEDED and the ORDER_PAYMENT_FAILED webhooks.

Note that Order details only include lists of gateway transactions processed for the order through Skipify. Currently, Skipify guest payments processed via Express can be captured or voided using Skipify's API, but Express refunds & RAFT captures, voids, and refunds for unrecognized users cannot currently be processed using Skipify's API.

Because of these limitations on guest/unregistered customers, we recommend that you do not use Skipify's endpoints for capture, refund and void for your PayLink integration, and instead utilize the webhook structure described above.

👍

This endpoint uses MAC with SHA-256

Please read our API Authentication section to ensure you are crafting your request properly.

The request body may contain a voidAmount. If this field is not passed with the request body, the total amount of the order be voided.

To Void an order, send an API call to:

POST {{baseUrl}}/orders/{{orderId}}/void

Request Body Parameters
ParameterRequired?TypeDescription
voidAmountNoIntegerInclude this field for partial order voiding. If this field is not passed with the request body, the total amount of the order be voided.

Note: that the void amount cannot exceed the total amount of funds that have been captured.
Request Body Example
{
  "voidAmount": 1523 // $15.23
}

API Response:

Response Body Parameters
Response ParameterTypeDescription
voidTransactionIdstringTransactionId from the Payment Gateway
statusstring"success" or "failure"
errorCodestring, nullableError code supplied by the payment gateway if a failure occurred
transactionIdsarrayList of all transactionIds related to the order, supplied to us from the payment gateway
gatewayResponsestringRaw response from the payment gateway
Response Body Example
{
  "voidTransactionId": "115245",
  "status": "Failure", 
  "errorCode": "102",
  "transactionIds": [
    "54270a3e-a0b6-424b-83c2-4d3ab976acd2",
  ],
  "gatewayResponse": "string"
}

👍

API Reference

Our API Reference contains additional details about this endpoint and its use.