For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
HomeGuidesAPI Reference
HomeGuidesAPI Reference
  • Reference
    • Introduction
      • GETList Payments
      • POSTAuth
      • POSTCapture Full Payment
      • GETGet Payment By Order ID
      • PUTUpdate Payment by Order ID
      • POSTCapture Payment
      • PUTUpdate Shipping Courier
      • POSTCreate Refund
      • POSTVoid
      • GETGet Payment By Token
      • POSTReverse Payment By Token
LogoLogo
ReferencePayments

Void

POST
/v2/payments/:orderId/void
POST
/v2/payments/:orderId/void
$curl -X POST https://global-api-sandbox.afterpay.com/v2/payments/orderId/void \
> -H "User-Agent: User-Agent" \
> -H "Content-Type: application/json" \
> -u "<username>:<password>" \
> -d '{}'
1{
2 "id": "300000016189",
3 "token": "002.6bjbsaowxvfqam2nw4u3xudppheuh4gsuat3n2w3f6t44euzgy",
4 "status": "APPROVED",
5 "created": "2024-03-11T20:11:42.487Z",
6 "originalAmount": {
7 "amount": "37.00",
8 "currency": "USD"
9 },
10 "openToCaptureAmount": {
11 "amount": "0.00",
12 "currency": "USD"
13 },
14 "paymentState": "CAPTURED",
15 "merchantReference": "updated-k6-reference-utaddnpx",
16 "refunds": [],
17 "orderDetails": {
18 "consumer": {
19 "email": "test@example.com"
20 },
21 "billing": {
22 "name": "Joe Customer",
23 "line1": "1004 New Avenue",
24 "area1": "Melbourne",
25 "region": "VIC",
26 "postcode": "94121",
27 "countryCode": "AU",
28 "phoneNumber": "2120000000",
29 "countrycode": "US"
30 },
31 "courier": {
32 "shippedAt": "2024-01-01T08:00:00Z",
33 "name": "FedEx",
34 "tracking": "000 000 000 000",
35 "priority": "STANDARD"
36 },
37 "items": [
38 {
39 "name": "Blue Carabiner",
40 "quantity": 1,
41 "price": {
42 "amount": "40.00",
43 "currency": "USD"
44 },
45 "sku": "12341234"
46 }
47 ],
48 "shipping": {
49 "name": "Joe Customer",
50 "line1": "1004 New Avenue",
51 "postcode": "94121",
52 "countrycode": "US",
53 "phoneNumber": "2120000000"
54 },
55 "categories": {
56 "name": "Jeans",
57 "sku": "123412345",
58 "quantity": 1,
59 "price": {
60 "amount": "20.00",
61 "currency": "USD"
62 },
63 "categories": null
64 }
65 },
66 "events": [
67 {
68 "id": "2dYbLXpOtEPQbg1DT7x9D8R4oCY",
69 "created": "2024-03-11T20:11:43.897Z",
70 "expires": {},
71 "type": "CAPTURED",
72 "amount": {
73 "amount": "37.00",
74 "currency": "USD"
75 },
76 "paymentEventMerchantReference": "k6-gsrdqspusf"
77 }
78 ],
79 "discounts": [],
80 "shippingAmount": {
81 "amount": "10.00",
82 "currency": "USD"
83 },
84 "taxAmount": {
85 "amount": "0.00",
86 "currency": "USD"
87 }
88}
This endpoint voids the remaining `openToCapture` amount of the payment auth, and refunds the consumer. <Info> Partial voids can be performed by specifying an amount in the request body. </Info> This operation is idempotent based on the `requestId` (if provided), which allows for the safe retry of multiple requests, guaranteeing the payment operation is only performed once. **Connection Timeouts** | Timeout | Time (Seconds) | |---------|----------------| | Open | 10 | | Read | 70 |
Was this page helpful?
Previous

Get Payment By Token

Next
Built with

This endpoint voids the remaining openToCapture amount of the payment auth, and refunds the consumer.

Partial voids can be performed by specifying an amount in the request body.

This operation is idempotent based on the requestId (if provided), which allows for the safe retry of multiple requests, guaranteeing the payment operation is only performed once.

Connection Timeouts

TimeoutTime (Seconds)
Open10
Read70

Authentication

AuthorizationBasic

Basic authentication of the form Basic <base64(username:password)>.

Path parameters

orderIdstringRequired

The unique ID of the Afterpay Order, returned as the id property of the Auth response.

Headers

User-AgentstringRequired
AcceptstringOptionalDefaults to application/json

Request

amountobjectOptional
The amount to void. Must be less than or equal to the open to capture amount.
requestIdstringOptional
A unique request ID, required for safe retries. It is recommended that the merchant generate a UUID for each unique void.
reasonstringOptional

Can be passed in void requests to conditionally modify wording of the corresponding consumer refund email. This can be set to 1 of 3 values, cancelledItems, amountAdjustment or null

Response

If successful, returns an updated copy of the Payment object. - A new Payment Event object will be appended to the events array, with a type of "VOIDED". - A new Refund object will be prepended to the refunds array. - If the openToCapture amount is reduced to zero as a result of this Void request, the paymentState will be updated as follows: - from "AUTH_APPROVED" to "VOIDED", or - from "PARTIALLY_CAPTURED" to "CAPTURED".
idstring
The unique, permanent, Afterpay generated Order ID.
tokenstring
The token obtained from the checkout call
statusenum
represents the status of the order
Allowed values:
createdstring
The UTC timestamp of when the payment was completed.
originalAmountobject
Total amount charged to the customer for the order.
openToCaptureAmountobject
Remaining amount that can be captured. Will always be zero for Immediate Payment Flow orders.
paymentStateenumRead-only
is the current state for capturing payments
merchantReferencestring

is the merchant’s order id/reference that the payment corresponds to.

refundslist of objects

An array of refunds. Note: in response to a Capture Full Payment call, this array will always be empty, since refunds cannot occur until payment is captured.

orderDetailsobject
The details of the order bound to the payment.
eventslist of objects
One or more payment events that have occurred against the order.
agreementslist of objects

List of billing agreements created if any (field omitted if empty)

Errors

404
Not Found Error
422
Unprocessable Entity Error

If successful, returns an updated copy of the Payment object.

  • A new Payment Event object will be appended to the events array, with a type of “VOIDED”.
  • A new Refund object will be prepended to the refunds array.
  • If the openToCapture amount is reduced to zero as a result of this Void request, the paymentState will be updated as follows:
    • from “AUTH_APPROVED” to “VOIDED”, or
    • from “PARTIALLY_CAPTURED” to “CAPTURED”.