curl --request POST \
--url https://api-sandbox.revolv3.com/api/PaymentMethod/authorize \
--header 'Content-Type: application/json-patch+json' \
--header 'x-revolv3-token: <api-key>' \
--data '
{
"paymentMethod": {
"billingAddress": {
"addressId": null,
"addressLine1": "100 Main Street",
"addressLine2": "",
"city": "Santa Ana",
"state": "CA",
"postalCode": "90000",
"phoneNumber": null,
"email": null,
"country": "US"
},
"creditCard": {
"paymentAccountNumber": "4111111111111111",
"expirationDate": "1025",
"securityCode": null,
"networkToken": null
},
"ach": null,
"googlePay": null,
"applePay": null,
"merchantPaymentMethodRefId": null,
"billingFirstName": "John",
"billingLastName": "Smith",
"billingFullName": null
},
"paymentMethodId": null,
"amount": 5,
"reportGroup": null
}
'import requests
url = "https://api-sandbox.revolv3.com/api/PaymentMethod/authorize"
payload = {
"paymentMethod": {
"billingAddress": {
"addressId": None,
"addressLine1": "100 Main Street",
"addressLine2": "",
"city": "Santa Ana",
"state": "CA",
"postalCode": "90000",
"phoneNumber": None,
"email": None,
"country": "US"
},
"creditCard": {
"paymentAccountNumber": "4111111111111111",
"expirationDate": "1025",
"securityCode": None,
"networkToken": None
},
"ach": None,
"googlePay": None,
"applePay": None,
"merchantPaymentMethodRefId": None,
"billingFirstName": "John",
"billingLastName": "Smith",
"billingFullName": None
},
"paymentMethodId": None,
"amount": 5,
"reportGroup": None
}
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({
paymentMethod: {
billingAddress: {
addressId: null,
addressLine1: '100 Main Street',
addressLine2: '',
city: 'Santa Ana',
state: 'CA',
postalCode: '90000',
phoneNumber: null,
email: null,
country: 'US'
},
creditCard: {
paymentAccountNumber: '4111111111111111',
expirationDate: '1025',
securityCode: null,
networkToken: null
},
ach: null,
googlePay: null,
applePay: null,
merchantPaymentMethodRefId: null,
billingFirstName: 'John',
billingLastName: 'Smith',
billingFullName: null
},
paymentMethodId: null,
amount: 5,
reportGroup: null
})
};
fetch('https://api-sandbox.revolv3.com/api/PaymentMethod/authorize', 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/authorize",
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([
'paymentMethod' => [
'billingAddress' => [
'addressId' => null,
'addressLine1' => '100 Main Street',
'addressLine2' => '',
'city' => 'Santa Ana',
'state' => 'CA',
'postalCode' => '90000',
'phoneNumber' => null,
'email' => null,
'country' => 'US'
],
'creditCard' => [
'paymentAccountNumber' => '4111111111111111',
'expirationDate' => '1025',
'securityCode' => null,
'networkToken' => null
],
'ach' => null,
'googlePay' => null,
'applePay' => null,
'merchantPaymentMethodRefId' => null,
'billingFirstName' => 'John',
'billingLastName' => 'Smith',
'billingFullName' => null
],
'paymentMethodId' => null,
'amount' => 5,
'reportGroup' => null
]),
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/PaymentMethod/authorize"
payload := strings.NewReader("{\n \"paymentMethod\": {\n \"billingAddress\": {\n \"addressId\": null,\n \"addressLine1\": \"100 Main Street\",\n \"addressLine2\": \"\",\n \"city\": \"Santa Ana\",\n \"state\": \"CA\",\n \"postalCode\": \"90000\",\n \"phoneNumber\": null,\n \"email\": null,\n \"country\": \"US\"\n },\n \"creditCard\": {\n \"paymentAccountNumber\": \"4111111111111111\",\n \"expirationDate\": \"1025\",\n \"securityCode\": null,\n \"networkToken\": null\n },\n \"ach\": null,\n \"googlePay\": null,\n \"applePay\": null,\n \"merchantPaymentMethodRefId\": null,\n \"billingFirstName\": \"John\",\n \"billingLastName\": \"Smith\",\n \"billingFullName\": null\n },\n \"paymentMethodId\": null,\n \"amount\": 5,\n \"reportGroup\": null\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/PaymentMethod/authorize")
.header("x-revolv3-token", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"paymentMethod\": {\n \"billingAddress\": {\n \"addressId\": null,\n \"addressLine1\": \"100 Main Street\",\n \"addressLine2\": \"\",\n \"city\": \"Santa Ana\",\n \"state\": \"CA\",\n \"postalCode\": \"90000\",\n \"phoneNumber\": null,\n \"email\": null,\n \"country\": \"US\"\n },\n \"creditCard\": {\n \"paymentAccountNumber\": \"4111111111111111\",\n \"expirationDate\": \"1025\",\n \"securityCode\": null,\n \"networkToken\": null\n },\n \"ach\": null,\n \"googlePay\": null,\n \"applePay\": null,\n \"merchantPaymentMethodRefId\": null,\n \"billingFirstName\": \"John\",\n \"billingLastName\": \"Smith\",\n \"billingFullName\": null\n },\n \"paymentMethodId\": null,\n \"amount\": 5,\n \"reportGroup\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/PaymentMethod/authorize")
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 \"paymentMethod\": {\n \"billingAddress\": {\n \"addressId\": null,\n \"addressLine1\": \"100 Main Street\",\n \"addressLine2\": \"\",\n \"city\": \"Santa Ana\",\n \"state\": \"CA\",\n \"postalCode\": \"90000\",\n \"phoneNumber\": null,\n \"email\": null,\n \"country\": \"US\"\n },\n \"creditCard\": {\n \"paymentAccountNumber\": \"4111111111111111\",\n \"expirationDate\": \"1025\",\n \"securityCode\": null,\n \"networkToken\": null\n },\n \"ach\": null,\n \"googlePay\": null,\n \"applePay\": null,\n \"merchantPaymentMethodRefId\": null,\n \"billingFirstName\": \"John\",\n \"billingLastName\": \"Smith\",\n \"billingFullName\": null\n },\n \"paymentMethodId\": null,\n \"amount\": 5,\n \"reportGroup\": null\n}"
response = http.request(request)
puts response.read_body{
"paymentMethodAuthorizationId": 1,
"paymentMethod": {
"paymentMethodId": 1,
"billingAddressId": 1,
"billingAddress": {
"addressId": 1,
"addressLine1": "123 Main",
"addressLine2": null,
"city": "Santa Ana",
"state": "CA",
"postalCode": "90000",
"phoneNumber": null,
"email": null,
"country": "US"
},
"billingFirstName": "John",
"billingLastName": "Smith",
"merchantPaymentMethodRefId": "payment-method-ref-id_hgays-213-4rf4",
"paymentMethodAchDetails": null,
"paymentMethodCreditCardDetails": {
"binNumber": "411111",
"paymentLast4Digit": "1111",
"paymentExpirationDate": "1025",
"accountUpdateMessage": null,
"accountUpdateDateTime": null,
"accountUpdateCode": null
}
}
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}Authorize Payment Method
Performs a payment authorization for a specified amount on a stored payment method or provided card, without capturing the funds. This is typically used to verify that the card or bank account is valid, has sufficient funds, and is accepted by the processor.
You define the authorization amount, and the system attempts to place a hold on the customer’s account — which can later be captured or reversed. This is useful for scenarios like booking flows, fraud screening, or pre-checkout validation, where upfront payment isn’t required but authorization is needed.
Note: The authorization may appear as a pending transaction on the customer’s statement.
⚠️ Deprecated: This endpoint is still supported but is no longer recommended for new integrations. Please use the newer endpoints Authorize With Payment Method or Authorize With Payment Method Id instead, which provides extended functionality and improved error handling.
curl --request POST \
--url https://api-sandbox.revolv3.com/api/PaymentMethod/authorize \
--header 'Content-Type: application/json-patch+json' \
--header 'x-revolv3-token: <api-key>' \
--data '
{
"paymentMethod": {
"billingAddress": {
"addressId": null,
"addressLine1": "100 Main Street",
"addressLine2": "",
"city": "Santa Ana",
"state": "CA",
"postalCode": "90000",
"phoneNumber": null,
"email": null,
"country": "US"
},
"creditCard": {
"paymentAccountNumber": "4111111111111111",
"expirationDate": "1025",
"securityCode": null,
"networkToken": null
},
"ach": null,
"googlePay": null,
"applePay": null,
"merchantPaymentMethodRefId": null,
"billingFirstName": "John",
"billingLastName": "Smith",
"billingFullName": null
},
"paymentMethodId": null,
"amount": 5,
"reportGroup": null
}
'import requests
url = "https://api-sandbox.revolv3.com/api/PaymentMethod/authorize"
payload = {
"paymentMethod": {
"billingAddress": {
"addressId": None,
"addressLine1": "100 Main Street",
"addressLine2": "",
"city": "Santa Ana",
"state": "CA",
"postalCode": "90000",
"phoneNumber": None,
"email": None,
"country": "US"
},
"creditCard": {
"paymentAccountNumber": "4111111111111111",
"expirationDate": "1025",
"securityCode": None,
"networkToken": None
},
"ach": None,
"googlePay": None,
"applePay": None,
"merchantPaymentMethodRefId": None,
"billingFirstName": "John",
"billingLastName": "Smith",
"billingFullName": None
},
"paymentMethodId": None,
"amount": 5,
"reportGroup": None
}
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({
paymentMethod: {
billingAddress: {
addressId: null,
addressLine1: '100 Main Street',
addressLine2: '',
city: 'Santa Ana',
state: 'CA',
postalCode: '90000',
phoneNumber: null,
email: null,
country: 'US'
},
creditCard: {
paymentAccountNumber: '4111111111111111',
expirationDate: '1025',
securityCode: null,
networkToken: null
},
ach: null,
googlePay: null,
applePay: null,
merchantPaymentMethodRefId: null,
billingFirstName: 'John',
billingLastName: 'Smith',
billingFullName: null
},
paymentMethodId: null,
amount: 5,
reportGroup: null
})
};
fetch('https://api-sandbox.revolv3.com/api/PaymentMethod/authorize', 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/authorize",
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([
'paymentMethod' => [
'billingAddress' => [
'addressId' => null,
'addressLine1' => '100 Main Street',
'addressLine2' => '',
'city' => 'Santa Ana',
'state' => 'CA',
'postalCode' => '90000',
'phoneNumber' => null,
'email' => null,
'country' => 'US'
],
'creditCard' => [
'paymentAccountNumber' => '4111111111111111',
'expirationDate' => '1025',
'securityCode' => null,
'networkToken' => null
],
'ach' => null,
'googlePay' => null,
'applePay' => null,
'merchantPaymentMethodRefId' => null,
'billingFirstName' => 'John',
'billingLastName' => 'Smith',
'billingFullName' => null
],
'paymentMethodId' => null,
'amount' => 5,
'reportGroup' => null
]),
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/PaymentMethod/authorize"
payload := strings.NewReader("{\n \"paymentMethod\": {\n \"billingAddress\": {\n \"addressId\": null,\n \"addressLine1\": \"100 Main Street\",\n \"addressLine2\": \"\",\n \"city\": \"Santa Ana\",\n \"state\": \"CA\",\n \"postalCode\": \"90000\",\n \"phoneNumber\": null,\n \"email\": null,\n \"country\": \"US\"\n },\n \"creditCard\": {\n \"paymentAccountNumber\": \"4111111111111111\",\n \"expirationDate\": \"1025\",\n \"securityCode\": null,\n \"networkToken\": null\n },\n \"ach\": null,\n \"googlePay\": null,\n \"applePay\": null,\n \"merchantPaymentMethodRefId\": null,\n \"billingFirstName\": \"John\",\n \"billingLastName\": \"Smith\",\n \"billingFullName\": null\n },\n \"paymentMethodId\": null,\n \"amount\": 5,\n \"reportGroup\": null\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/PaymentMethod/authorize")
.header("x-revolv3-token", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"paymentMethod\": {\n \"billingAddress\": {\n \"addressId\": null,\n \"addressLine1\": \"100 Main Street\",\n \"addressLine2\": \"\",\n \"city\": \"Santa Ana\",\n \"state\": \"CA\",\n \"postalCode\": \"90000\",\n \"phoneNumber\": null,\n \"email\": null,\n \"country\": \"US\"\n },\n \"creditCard\": {\n \"paymentAccountNumber\": \"4111111111111111\",\n \"expirationDate\": \"1025\",\n \"securityCode\": null,\n \"networkToken\": null\n },\n \"ach\": null,\n \"googlePay\": null,\n \"applePay\": null,\n \"merchantPaymentMethodRefId\": null,\n \"billingFirstName\": \"John\",\n \"billingLastName\": \"Smith\",\n \"billingFullName\": null\n },\n \"paymentMethodId\": null,\n \"amount\": 5,\n \"reportGroup\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/PaymentMethod/authorize")
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 \"paymentMethod\": {\n \"billingAddress\": {\n \"addressId\": null,\n \"addressLine1\": \"100 Main Street\",\n \"addressLine2\": \"\",\n \"city\": \"Santa Ana\",\n \"state\": \"CA\",\n \"postalCode\": \"90000\",\n \"phoneNumber\": null,\n \"email\": null,\n \"country\": \"US\"\n },\n \"creditCard\": {\n \"paymentAccountNumber\": \"4111111111111111\",\n \"expirationDate\": \"1025\",\n \"securityCode\": null,\n \"networkToken\": null\n },\n \"ach\": null,\n \"googlePay\": null,\n \"applePay\": null,\n \"merchantPaymentMethodRefId\": null,\n \"billingFirstName\": \"John\",\n \"billingLastName\": \"Smith\",\n \"billingFullName\": null\n },\n \"paymentMethodId\": null,\n \"amount\": 5,\n \"reportGroup\": null\n}"
response = http.request(request)
puts response.read_body{
"paymentMethodAuthorizationId": 1,
"paymentMethod": {
"paymentMethodId": 1,
"billingAddressId": 1,
"billingAddress": {
"addressId": 1,
"addressLine1": "123 Main",
"addressLine2": null,
"city": "Santa Ana",
"state": "CA",
"postalCode": "90000",
"phoneNumber": null,
"email": null,
"country": "US"
},
"billingFirstName": "John",
"billingLastName": "Smith",
"merchantPaymentMethodRefId": "payment-method-ref-id_hgays-213-4rf4",
"paymentMethodAchDetails": null,
"paymentMethodCreditCardDetails": {
"binNumber": "411111",
"paymentLast4Digit": "1111",
"paymentExpirationDate": "1025",
"accountUpdateMessage": null,
"accountUpdateDateTime": null,
"accountUpdateCode": null
}
}
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}
