Create Checkout Link
curl --request POST \
--url https://api-sandbox.revolv3.com/api/Checkout \
--header 'Content-Type: application/json-patch+json' \
--header 'x-revolv3-token: <api-key>' \
--data '
{
"returnUrl": "https%3A%2F%2Fsite.com",
"oneTimePayment": {
"checkoutLineItems": [
{
"name": "Item 1",
"description": "Item Description",
"value": 9.99,
"valueType": "Standard"
},
{
"name": "Item 2",
"description": "Item Description",
"value": 21.99,
"valueType": "Standard"
}
]
}
}
'import requests
url = "https://api-sandbox.revolv3.com/api/Checkout"
payload = {
"returnUrl": "https%3A%2F%2Fsite.com",
"oneTimePayment": { "checkoutLineItems": [
{
"name": "Item 1",
"description": "Item Description",
"value": 9.99,
"valueType": "Standard"
},
{
"name": "Item 2",
"description": "Item Description",
"value": 21.99,
"valueType": "Standard"
}
] }
}
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({
returnUrl: 'https%3A%2F%2Fsite.com',
oneTimePayment: {
checkoutLineItems: [
{
name: 'Item 1',
description: 'Item Description',
value: 9.99,
valueType: 'Standard'
},
{
name: 'Item 2',
description: 'Item Description',
value: 21.99,
valueType: 'Standard'
}
]
}
})
};
fetch('https://api-sandbox.revolv3.com/api/Checkout', 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/Checkout",
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([
'returnUrl' => 'https%3A%2F%2Fsite.com',
'oneTimePayment' => [
'checkoutLineItems' => [
[
'name' => 'Item 1',
'description' => 'Item Description',
'value' => 9.99,
'valueType' => 'Standard'
],
[
'name' => 'Item 2',
'description' => 'Item Description',
'value' => 21.99,
'valueType' => 'Standard'
]
]
]
]),
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/Checkout"
payload := strings.NewReader("{\n \"returnUrl\": \"https%3A%2F%2Fsite.com\",\n \"oneTimePayment\": {\n \"checkoutLineItems\": [\n {\n \"name\": \"Item 1\",\n \"description\": \"Item Description\",\n \"value\": 9.99,\n \"valueType\": \"Standard\"\n },\n {\n \"name\": \"Item 2\",\n \"description\": \"Item Description\",\n \"value\": 21.99,\n \"valueType\": \"Standard\"\n }\n ]\n }\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/Checkout")
.header("x-revolv3-token", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"returnUrl\": \"https%3A%2F%2Fsite.com\",\n \"oneTimePayment\": {\n \"checkoutLineItems\": [\n {\n \"name\": \"Item 1\",\n \"description\": \"Item Description\",\n \"value\": 9.99,\n \"valueType\": \"Standard\"\n },\n {\n \"name\": \"Item 2\",\n \"description\": \"Item Description\",\n \"value\": 21.99,\n \"valueType\": \"Standard\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/Checkout")
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 \"returnUrl\": \"https%3A%2F%2Fsite.com\",\n \"oneTimePayment\": {\n \"checkoutLineItems\": [\n {\n \"name\": \"Item 1\",\n \"description\": \"Item Description\",\n \"value\": 9.99,\n \"valueType\": \"Standard\"\n },\n {\n \"name\": \"Item 2\",\n \"description\": \"Item Description\",\n \"value\": 21.99,\n \"valueType\": \"Standard\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"checkoutId": "12345678-ABCD-1234-EFGH-987654321000",
"checkoutLink": "http://localhost:4200/checkout/12345678-ABCD-1234-EFGH-987654321000"
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}Checkout
Create Checkout Link
Generates a secure, one-time checkout link that can be shared with a customer to initiate a payment. This URL can be seamlessly integrated into your payment flow — embedded into your payment page, or used to redirect customers to a hosted payment page managed by the platform.
The link is automatically deactivated once the customer opens the checkout page, ensuring it can’t be reused. It’s especially useful for scenarios where merchants avoid handling sensitive data directly (e.g., to maintain PCI compliance).
POST
/
api
/
Checkout
Create Checkout Link
curl --request POST \
--url https://api-sandbox.revolv3.com/api/Checkout \
--header 'Content-Type: application/json-patch+json' \
--header 'x-revolv3-token: <api-key>' \
--data '
{
"returnUrl": "https%3A%2F%2Fsite.com",
"oneTimePayment": {
"checkoutLineItems": [
{
"name": "Item 1",
"description": "Item Description",
"value": 9.99,
"valueType": "Standard"
},
{
"name": "Item 2",
"description": "Item Description",
"value": 21.99,
"valueType": "Standard"
}
]
}
}
'import requests
url = "https://api-sandbox.revolv3.com/api/Checkout"
payload = {
"returnUrl": "https%3A%2F%2Fsite.com",
"oneTimePayment": { "checkoutLineItems": [
{
"name": "Item 1",
"description": "Item Description",
"value": 9.99,
"valueType": "Standard"
},
{
"name": "Item 2",
"description": "Item Description",
"value": 21.99,
"valueType": "Standard"
}
] }
}
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({
returnUrl: 'https%3A%2F%2Fsite.com',
oneTimePayment: {
checkoutLineItems: [
{
name: 'Item 1',
description: 'Item Description',
value: 9.99,
valueType: 'Standard'
},
{
name: 'Item 2',
description: 'Item Description',
value: 21.99,
valueType: 'Standard'
}
]
}
})
};
fetch('https://api-sandbox.revolv3.com/api/Checkout', 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/Checkout",
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([
'returnUrl' => 'https%3A%2F%2Fsite.com',
'oneTimePayment' => [
'checkoutLineItems' => [
[
'name' => 'Item 1',
'description' => 'Item Description',
'value' => 9.99,
'valueType' => 'Standard'
],
[
'name' => 'Item 2',
'description' => 'Item Description',
'value' => 21.99,
'valueType' => 'Standard'
]
]
]
]),
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/Checkout"
payload := strings.NewReader("{\n \"returnUrl\": \"https%3A%2F%2Fsite.com\",\n \"oneTimePayment\": {\n \"checkoutLineItems\": [\n {\n \"name\": \"Item 1\",\n \"description\": \"Item Description\",\n \"value\": 9.99,\n \"valueType\": \"Standard\"\n },\n {\n \"name\": \"Item 2\",\n \"description\": \"Item Description\",\n \"value\": 21.99,\n \"valueType\": \"Standard\"\n }\n ]\n }\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/Checkout")
.header("x-revolv3-token", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"returnUrl\": \"https%3A%2F%2Fsite.com\",\n \"oneTimePayment\": {\n \"checkoutLineItems\": [\n {\n \"name\": \"Item 1\",\n \"description\": \"Item Description\",\n \"value\": 9.99,\n \"valueType\": \"Standard\"\n },\n {\n \"name\": \"Item 2\",\n \"description\": \"Item Description\",\n \"value\": 21.99,\n \"valueType\": \"Standard\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/Checkout")
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 \"returnUrl\": \"https%3A%2F%2Fsite.com\",\n \"oneTimePayment\": {\n \"checkoutLineItems\": [\n {\n \"name\": \"Item 1\",\n \"description\": \"Item Description\",\n \"value\": 9.99,\n \"valueType\": \"Standard\"\n },\n {\n \"name\": \"Item 2\",\n \"description\": \"Item Description\",\n \"value\": 21.99,\n \"valueType\": \"Standard\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"checkoutId": "12345678-ABCD-1234-EFGH-987654321000",
"checkoutLink": "http://localhost:4200/checkout/12345678-ABCD-1234-EFGH-987654321000"
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}Authorizations
Body
application/json-patch+jsonapplication/jsontext/jsonapplication/*+json
⌘I

