Typescript (SDK)
import { Crevio } from "@crevio/sdk";
const crevio = new Crevio({
apiKey: process.env["CREVIO_API_KEY"] ?? "",
});
async function run() {
const result = await crevio.checkoutLinks.update({
id: "<id>",
checkoutLinkRequest: {},
});
console.log(result);
}
run();curl --request PATCH \
--url https://api.crevio.co/v1/checkout_links/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"metadata": {}
}'import requests
url = "https://api.crevio.co/v1/checkout_links/{id}"
payload = { "metadata": {} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({metadata: {}})
};
fetch('https://api.crevio.co/v1/checkout_links/{id}', 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.crevio.co/v1/checkout_links/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/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.crevio.co/v1/checkout_links/{id}"
payload := strings.NewReader("{\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.crevio.co/v1/checkout_links/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crevio.co/v1/checkout_links/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "<string>",
"name": "<string>",
"success_url": "<string>",
"allow_discount_codes": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"metadata": {},
"url": "<string>",
"discount": "<string>",
"price_variants": [
{
"id": "<string>",
"object": "<string>",
"name": "<string>",
"amount": 123,
"amount_type": "free",
"billing_type": "subscription",
"recurring_interval": "day",
"interval_count": 123,
"installment_count": 123,
"setup_fee_amount": 123,
"trial_period_days": 123,
"revoke_after_days": 123,
"quantity_available": 123,
"archived": true,
"position": 123,
"hidden": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"currency": "<string>",
"discounted_from_amount": 123,
"minimum_amount": 123,
"maximum_amount": 123,
"preset_amount": 123,
"waitlist": true,
"purchase_url": "<string>",
"product": "<string>",
"benefits": [
"<string>"
]
}
]
}{
"error": {
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request was malformed or contained invalid parameters"
}
}{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"message": "You did not provide an API key."
}
}{
"error": {
"type": "invalid_request_error",
"code": "forbidden",
"message": "You do not have permission to perform this action"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "The requested resource was not found"
}
}{
"error": {
"type": "validation_error",
"code": "validation_failed",
"message": "Email is required",
"errors": {
"email": [
"can't be blank"
]
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry later."
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "An unexpected error occurred"
}
}Checkout links
Update checkout link
Updates an existing checkout link
PATCH
/
checkout_links
/
{id}
Typescript (SDK)
import { Crevio } from "@crevio/sdk";
const crevio = new Crevio({
apiKey: process.env["CREVIO_API_KEY"] ?? "",
});
async function run() {
const result = await crevio.checkoutLinks.update({
id: "<id>",
checkoutLinkRequest: {},
});
console.log(result);
}
run();curl --request PATCH \
--url https://api.crevio.co/v1/checkout_links/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"metadata": {}
}'import requests
url = "https://api.crevio.co/v1/checkout_links/{id}"
payload = { "metadata": {} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({metadata: {}})
};
fetch('https://api.crevio.co/v1/checkout_links/{id}', 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.crevio.co/v1/checkout_links/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/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.crevio.co/v1/checkout_links/{id}"
payload := strings.NewReader("{\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.crevio.co/v1/checkout_links/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crevio.co/v1/checkout_links/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "<string>",
"name": "<string>",
"success_url": "<string>",
"allow_discount_codes": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"metadata": {},
"url": "<string>",
"discount": "<string>",
"price_variants": [
{
"id": "<string>",
"object": "<string>",
"name": "<string>",
"amount": 123,
"amount_type": "free",
"billing_type": "subscription",
"recurring_interval": "day",
"interval_count": 123,
"installment_count": 123,
"setup_fee_amount": 123,
"trial_period_days": 123,
"revoke_after_days": 123,
"quantity_available": 123,
"archived": true,
"position": 123,
"hidden": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"currency": "<string>",
"discounted_from_amount": 123,
"minimum_amount": 123,
"maximum_amount": 123,
"preset_amount": 123,
"waitlist": true,
"purchase_url": "<string>",
"product": "<string>",
"benefits": [
"<string>"
]
}
]
}{
"error": {
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request was malformed or contained invalid parameters"
}
}{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"message": "You did not provide an API key."
}
}{
"error": {
"type": "invalid_request_error",
"code": "forbidden",
"message": "You do not have permission to perform this action"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "The requested resource was not found"
}
}{
"error": {
"type": "validation_error",
"code": "validation_failed",
"message": "Email is required",
"errors": {
"email": [
"can't be blank"
]
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry later."
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "An unexpected error occurred"
}
}Authorizations
API key in the format: Bearer {api_token}
Path Parameters
The resource ID (e.g., "prod_abc123") or slug (e.g., "my-product")
Body
application/json
Set of key-value pairs you can attach to the object — store your own system's IDs or grouping labels. Keys max 40 chars (up to 50 keys), values stored as strings max 500 chars. On update, keys merge individually; set a key to null or "" to remove it. Echoed back on reads and in webhook payloads.
Show child attributes
Show child attributes
Response
Checkout link updated
ID by default, full object when expanded
Show child attributes
Show child attributes
Was this page helpful?

