Reverse Authorization
curl --request POST \
--url https://api-sandbox.revolv3.com/api/PaymentMethod/reverse-auth \
--header 'Content-Type: application/json-patch+json' \
--data '
{
"paymentMethodAuthorizationId": 76,
"reason": "Merchant requested reversal of auth",
"amount": 45,
"reportGroup": null
}
'import requests
url = "https://api-sandbox.revolv3.com/api/PaymentMethod/reverse-auth"
payload = {
"paymentMethodAuthorizationId": 76,
"reason": "Merchant requested reversal of auth",
"amount": 45,
"reportGroup": None
}
headers = {"Content-Type": "application/json-patch+json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({
paymentMethodAuthorizationId: 76,
reason: 'Merchant requested reversal of auth',
amount: 45,
reportGroup: null
})
};
fetch('https://api-sandbox.revolv3.com/api/PaymentMethod/reverse-auth', 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/PaymentMethod/reverse-auth",
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([
'paymentMethodAuthorizationId' => 76,
'reason' => 'Merchant requested reversal of auth',
'amount' => 45,
'reportGroup' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json-patch+json"
],
]);
$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/PaymentMethod/reverse-auth"
payload := strings.NewReader("{\n \"paymentMethodAuthorizationId\": 76,\n \"reason\": \"Merchant requested reversal of auth\",\n \"amount\": 45,\n \"reportGroup\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
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/PaymentMethod/reverse-auth")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"paymentMethodAuthorizationId\": 76,\n \"reason\": \"Merchant requested reversal of auth\",\n \"amount\": 45,\n \"reportGroup\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/PaymentMethod/reverse-auth")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"paymentMethodAuthorizationId\": 76,\n \"reason\": \"Merchant requested reversal of auth\",\n \"amount\": 45,\n \"reportGroup\": null\n}"
response = http.request(request)
puts response.read_body{
"paymentProcessor": 4,
"referenceNumber": "5287H65D567",
"message": "Approved",
"responseCode": null,
"responseMessage": null,
"revolv3ResponseCode": null,
"revolv3ResponseMessage": null
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}PaymentMethod
Reverse Authorization
Cancels a previously authorized payment before it has been captured. This is typically used to release a hold placed on the customer’s account — for example, when an order is canceled or the final amount is still uncertain.
The endpoint requires the original paymentMethodAuthorizationId, and will void the existing authorization at the processor level.
It helps avoid unnecessary charges or confusion on the customer’s statement and ensures accurate billing behavior.
Note: Authorizations can only be reversed if they haven’t been captured yet.
POST
/
api
/
PaymentMethod
/
reverse-auth
Reverse Authorization
curl --request POST \
--url https://api-sandbox.revolv3.com/api/PaymentMethod/reverse-auth \
--header 'Content-Type: application/json-patch+json' \
--data '
{
"paymentMethodAuthorizationId": 76,
"reason": "Merchant requested reversal of auth",
"amount": 45,
"reportGroup": null
}
'import requests
url = "https://api-sandbox.revolv3.com/api/PaymentMethod/reverse-auth"
payload = {
"paymentMethodAuthorizationId": 76,
"reason": "Merchant requested reversal of auth",
"amount": 45,
"reportGroup": None
}
headers = {"Content-Type": "application/json-patch+json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({
paymentMethodAuthorizationId: 76,
reason: 'Merchant requested reversal of auth',
amount: 45,
reportGroup: null
})
};
fetch('https://api-sandbox.revolv3.com/api/PaymentMethod/reverse-auth', 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/PaymentMethod/reverse-auth",
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([
'paymentMethodAuthorizationId' => 76,
'reason' => 'Merchant requested reversal of auth',
'amount' => 45,
'reportGroup' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json-patch+json"
],
]);
$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/PaymentMethod/reverse-auth"
payload := strings.NewReader("{\n \"paymentMethodAuthorizationId\": 76,\n \"reason\": \"Merchant requested reversal of auth\",\n \"amount\": 45,\n \"reportGroup\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
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/PaymentMethod/reverse-auth")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"paymentMethodAuthorizationId\": 76,\n \"reason\": \"Merchant requested reversal of auth\",\n \"amount\": 45,\n \"reportGroup\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/PaymentMethod/reverse-auth")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"paymentMethodAuthorizationId\": 76,\n \"reason\": \"Merchant requested reversal of auth\",\n \"amount\": 45,\n \"reportGroup\": null\n}"
response = http.request(request)
puts response.read_body{
"paymentProcessor": 4,
"referenceNumber": "5287H65D567",
"message": "Approved",
"responseCode": null,
"responseMessage": null,
"revolv3ResponseCode": null,
"revolv3ResponseMessage": null
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}Body
application/json-patch+jsonapplication/jsontext/jsonapplication/*+json
Required range:
x > 0Maximum string length:
500Required range:
0.01 <= x <= 10000000Report 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
Required range:
1 <= x <= 1000000000Maximum string length:
100Maximum string length:
500Maximum string length:
10Maximum string length:
500Maximum string length:
10Maximum string length:
500
