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
}
},
"invoiceStatus": "Void",
"subtotal": 25,
"tax": 5.99,
"total": 30.99,
"billingDate": "01.07.2026",
"merchantLegalName": "Test Merchant Inc.",
"merchantCustomerRefId": "customer-001",
"customerFirstName": "John",
"customerLastName": "Doe",
"subscriptionId": null,
"installmentId": null,
"eligibilityFailReason": null,
"merchantSubscriptionRefId": null,
"networkTransactionId": "1215ff97-b5dd-4257-925d-e6d71f2b9b9e",
"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-07-01T11:31:35.7306839Z",
"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-07-01T11:31:35.7306858Z",
"paymentProcessor": null,
"processorTransactionId": null,
"responseCode": null,
"responseMessage": null,
"revolv3ResponseCode": "1000",
"revolv3ResponseMessage": "Approved",
"processorResponseDateTime": "2026-07-01T11:31:35.7306869Z",
"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
}
]
}{
"message": "Attempted to perform an unauthorized operation."
}{
"message": "Unable to process this operation."
}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
}
},
"invoiceStatus": "Void",
"subtotal": 25,
"tax": 5.99,
"total": 30.99,
"billingDate": "01.07.2026",
"merchantLegalName": "Test Merchant Inc.",
"merchantCustomerRefId": "customer-001",
"customerFirstName": "John",
"customerLastName": "Doe",
"subscriptionId": null,
"installmentId": null,
"eligibilityFailReason": null,
"merchantSubscriptionRefId": null,
"networkTransactionId": "1215ff97-b5dd-4257-925d-e6d71f2b9b9e",
"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-07-01T11:31:35.7306839Z",
"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-07-01T11:31:35.7306858Z",
"paymentProcessor": null,
"processorTransactionId": null,
"responseCode": null,
"responseMessage": null,
"revolv3ResponseCode": "1000",
"revolv3ResponseMessage": "Approved",
"processorResponseDateTime": "2026-07-01T11:31:35.7306869Z",
"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
}
]
}{
"message": "Attempted to perform an unauthorized operation."
}{
"message": "Unable to process this operation."
}Authorizations
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).
⌘I

