Skip to main content
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

x-revolv3-token
string
header
required

Path Parameters

invoiceId
integer<int64>
required

The unique identifier for the invoice

Query Parameters

includeRawProcessorResponse
boolean

Body

reportGroup
string

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).

Response

OK

invoice
object
rawResponse
string | null