Void
curl --request POST \
--url https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId} \
--header 'Content-Type: application/json-patch+json' \
--header 'x-revolv3-token: <api-key>' \
--data '
{
"reportGroup": "<string>"
}
'import requests
url = "https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}"
payload = { "reportGroup": "<string>" }
headers = {
"x-revolv3-token": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-revolv3-token': '<api-key>', 'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({reportGroup: '<string>'})
};
fetch('https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'reportGroup' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json-patch+json",
"x-revolv3-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}"
payload := strings.NewReader("{\n \"reportGroup\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-revolv3-token", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}")
.header("x-revolv3-token", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"reportGroup\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-revolv3-token"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"reportGroup\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"invoice": {
"invoiceId": 1,
"parentInvoiceId": null,
"customerId": 701,
"merchantInvoiceRefId": "1234-5678-9101",
"paymentMethod": {
"paymentMethodId": 1,
"billingAddressId": 1,
"billingFirstName": "John",
"billingLastName": "Doe",
"merchantPaymentMethodRefId": "custom-payment-method-ref-id-001",
"billingAddress": {
"addressId": 1,
"addressLine1": "1 Default Street",
"addressLine2": null,
"city": "Los Angeles",
"state": "CA",
"postalCode": "90210",
"phoneNumber": null,
"email": null,
"country": "US"
},
"paymentMethodAchDetails": null,
"paymentMethodCreditCardDetails": {
"binNumber": "411111",
"paymentLast4Digit": "1111",
"paymentExpirationDate": "0835",
"accountUpdateMessage": null,
"accountUpdateDateTime": null,
"accountUpdateCode": null,
"paymentAccountNumber": null
}
},
"invoiceStatus": "Void",
"subtotal": 25,
"tax": 5.99,
"total": 30.99,
"billingDate": "11/3/2026",
"merchantLegalName": "Test Merchant Inc.",
"merchantCustomerRefId": "customer-001",
"customerFirstName": "John",
"customerLastName": "Doe",
"subscriptionId": null,
"installmentId": null,
"eligibilityFailReason": null,
"merchantSubscriptionRefId": null,
"networkTransactionId": "74da8619-d282-40b4-ad94-e130330f9963",
"currency": "USD",
"invoiceLineItems": [
{
"invoiceId": 0,
"invoiceLineItemId": 1,
"name": null,
"description": "Test Line Item",
"value": 25,
"valueType": null
}
],
"invoiceAttempts": [
{
"invoiceAttemptId": 1,
"amount": 30.99,
"invoiceAttemptStatus": "Success",
"invoiceAttemptDate": "2026-11-03T13:46:27.6570479Z",
"paymentProcessor": null,
"processorTransactionId": null,
"responseCode": null,
"responseMessage": null,
"processorRawResponse": null,
"paymentMethod": null,
"descriptor": null,
"eligibilityCheckOrderCode": null,
"processorMerchantId": null,
"processingMethod": null,
"revolv3ResponseCode": null,
"revolv3ResponseMessage": null,
"authCode": null,
"processorResponseDateTime": "0001-01-01T00:00:00"
}
],
"voidAttempts": [
{
"voidAttemptId": 1,
"voidAttemptStatus": "Success",
"voidAttemptDate": "2026-11-03T13:46:27.6570625Z",
"paymentProcessor": null,
"processorTransactionId": null,
"responseCode": null,
"responseMessage": null,
"revolv3ResponseCode": "1000",
"revolv3ResponseMessage": "Approved",
"processorResponseDateTime": "2026-11-03T13:46:27.6570718Z",
"processorRawResponse": null
}
]
},
"rawResponse": null
}{
"message": "One or more validation failed.",
"errors": [
"'Invoice Id' must not be empty."
],
"fluentValidatorErrors": [
{
"propertyName": "",
"errorMessage": "'Invoice Id' must not be empty.",
"attemptedValue": null,
"customState": null,
"severity": "Error",
"errorCode": null,
"formattedMessagePlaceholderValues": null
}
],
"serverRequestId": "4bf92f3577b34da6a3ce929d0e0e4736",
"clientRequestId": "cddab9d1-7caa-43d9-8b1d-f688134c44b0"
}{
"message": "Attempted to perform an unauthorized operation.",
"serverRequestId": "4bf92f3577b34da6a3ce929d0e0e4736",
"clientRequestId": "cddab9d1-7caa-43d9-8b1d-f688134c44b0"
}{
"message": "Unable to process this operation.",
"serverRequestId": "4bf92f3577b34da6a3ce929d0e0e4736",
"clientRequestId": "cddab9d1-7caa-43d9-8b1d-f688134c44b0"
}Payments
Void
POST
/
api
/
Payments
/
void
/
{invoiceId}
Void
curl --request POST \
--url https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId} \
--header 'Content-Type: application/json-patch+json' \
--header 'x-revolv3-token: <api-key>' \
--data '
{
"reportGroup": "<string>"
}
'import requests
url = "https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}"
payload = { "reportGroup": "<string>" }
headers = {
"x-revolv3-token": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-revolv3-token': '<api-key>', 'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({reportGroup: '<string>'})
};
fetch('https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'reportGroup' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json-patch+json",
"x-revolv3-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}"
payload := strings.NewReader("{\n \"reportGroup\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-revolv3-token", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}")
.header("x-revolv3-token", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"reportGroup\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/Payments/void/{invoiceId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-revolv3-token"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"reportGroup\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"invoice": {
"invoiceId": 1,
"parentInvoiceId": null,
"customerId": 701,
"merchantInvoiceRefId": "1234-5678-9101",
"paymentMethod": {
"paymentMethodId": 1,
"billingAddressId": 1,
"billingFirstName": "John",
"billingLastName": "Doe",
"merchantPaymentMethodRefId": "custom-payment-method-ref-id-001",
"billingAddress": {
"addressId": 1,
"addressLine1": "1 Default Street",
"addressLine2": null,
"city": "Los Angeles",
"state": "CA",
"postalCode": "90210",
"phoneNumber": null,
"email": null,
"country": "US"
},
"paymentMethodAchDetails": null,
"paymentMethodCreditCardDetails": {
"binNumber": "411111",
"paymentLast4Digit": "1111",
"paymentExpirationDate": "0835",
"accountUpdateMessage": null,
"accountUpdateDateTime": null,
"accountUpdateCode": null,
"paymentAccountNumber": null
}
},
"invoiceStatus": "Void",
"subtotal": 25,
"tax": 5.99,
"total": 30.99,
"billingDate": "11/3/2026",
"merchantLegalName": "Test Merchant Inc.",
"merchantCustomerRefId": "customer-001",
"customerFirstName": "John",
"customerLastName": "Doe",
"subscriptionId": null,
"installmentId": null,
"eligibilityFailReason": null,
"merchantSubscriptionRefId": null,
"networkTransactionId": "74da8619-d282-40b4-ad94-e130330f9963",
"currency": "USD",
"invoiceLineItems": [
{
"invoiceId": 0,
"invoiceLineItemId": 1,
"name": null,
"description": "Test Line Item",
"value": 25,
"valueType": null
}
],
"invoiceAttempts": [
{
"invoiceAttemptId": 1,
"amount": 30.99,
"invoiceAttemptStatus": "Success",
"invoiceAttemptDate": "2026-11-03T13:46:27.6570479Z",
"paymentProcessor": null,
"processorTransactionId": null,
"responseCode": null,
"responseMessage": null,
"processorRawResponse": null,
"paymentMethod": null,
"descriptor": null,
"eligibilityCheckOrderCode": null,
"processorMerchantId": null,
"processingMethod": null,
"revolv3ResponseCode": null,
"revolv3ResponseMessage": null,
"authCode": null,
"processorResponseDateTime": "0001-01-01T00:00:00"
}
],
"voidAttempts": [
{
"voidAttemptId": 1,
"voidAttemptStatus": "Success",
"voidAttemptDate": "2026-11-03T13:46:27.6570625Z",
"paymentProcessor": null,
"processorTransactionId": null,
"responseCode": null,
"responseMessage": null,
"revolv3ResponseCode": "1000",
"revolv3ResponseMessage": "Approved",
"processorResponseDateTime": "2026-11-03T13:46:27.6570718Z",
"processorRawResponse": null
}
]
},
"rawResponse": null
}{
"message": "One or more validation failed.",
"errors": [
"'Invoice Id' must not be empty."
],
"fluentValidatorErrors": [
{
"propertyName": "",
"errorMessage": "'Invoice Id' must not be empty.",
"attemptedValue": null,
"customState": null,
"severity": "Error",
"errorCode": null,
"formattedMessagePlaceholderValues": null
}
],
"serverRequestId": "4bf92f3577b34da6a3ce929d0e0e4736",
"clientRequestId": "cddab9d1-7caa-43d9-8b1d-f688134c44b0"
}{
"message": "Attempted to perform an unauthorized operation.",
"serverRequestId": "4bf92f3577b34da6a3ce929d0e0e4736",
"clientRequestId": "cddab9d1-7caa-43d9-8b1d-f688134c44b0"
}{
"message": "Unable to process this operation.",
"serverRequestId": "4bf92f3577b34da6a3ce929d0e0e4736",
"clientRequestId": "cddab9d1-7caa-43d9-8b1d-f688134c44b0"
}Authorizations
Headers
Optional identifier generated by the client to match its own logs with this request.
Allowed values: 1 to 128 characters, letters, digits and ., _, :, -.
Examples: order-12345, 3f2b8c1e-9d4a-4e7b-a1c5-6b0d2e8f7a91 (GUID), checkout:2026-11-02.17, retry_1.order-12345.
A valid value is returned in the Client-Request-Id response header and is stored with Revolv3 request logs, so it can be used when contacting support.
An invalid value is ignored and the request is processed normally. Do not send sensitive data in this header.
Required string length:
1 - 128Pattern:
^[A-Za-z0-9._:-]{1,128}$Path Parameters
The unique identifier for the invoice
Query Parameters
Body
application/json-patch+jsonapplication/jsontext/jsonapplication/*+json
Report Groups could be used to separate your transactions into different categories, so you can view the financial reports by your specific report group names (Worldpay only).

