curl --request PATCH \
--url https://api.withflex.com/v1/payment_links/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"payment_link": {
"label": "Example",
"after_completion": {
"type": "redirect",
"hosted_confirmation": {
"custom_message": "Premium SPF 50 mineral sunscreen"
},
"redirect": {
"url": "https://example.com"
}
},
"active": false,
"shipping_address_collection": false
}
}
'import requests
url = "https://api.withflex.com/v1/payment_links/{id}"
payload = { "payment_link": {
"label": "Example",
"after_completion": {
"type": "redirect",
"hosted_confirmation": { "custom_message": "Premium SPF 50 mineral sunscreen" },
"redirect": { "url": "https://example.com" }
},
"active": False,
"shipping_address_collection": False
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
payment_link: {
label: 'Example',
after_completion: {
type: 'redirect',
hosted_confirmation: {custom_message: 'Premium SPF 50 mineral sunscreen'},
redirect: {url: 'https://example.com'}
},
active: false,
shipping_address_collection: false
}
})
};
fetch('https://api.withflex.com/v1/payment_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.withflex.com/v1/payment_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([
'payment_link' => [
'label' => 'Example',
'after_completion' => [
'type' => 'redirect',
'hosted_confirmation' => [
'custom_message' => 'Premium SPF 50 mineral sunscreen'
],
'redirect' => [
'url' => 'https://example.com'
]
],
'active' => false,
'shipping_address_collection' => false
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.withflex.com/v1/payment_links/{id}"
payload := strings.NewReader("{\n \"payment_link\": {\n \"label\": \"Example\",\n \"after_completion\": {\n \"type\": \"redirect\",\n \"hosted_confirmation\": {\n \"custom_message\": \"Premium SPF 50 mineral sunscreen\"\n },\n \"redirect\": {\n \"url\": \"https://example.com\"\n }\n },\n \"active\": false,\n \"shipping_address_collection\": false\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.withflex.com/v1/payment_links/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"payment_link\": {\n \"label\": \"Example\",\n \"after_completion\": {\n \"type\": \"redirect\",\n \"hosted_confirmation\": {\n \"custom_message\": \"Premium SPF 50 mineral sunscreen\"\n },\n \"redirect\": {\n \"url\": \"https://example.com\"\n }\n },\n \"active\": false,\n \"shipping_address_collection\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withflex.com/v1/payment_links/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"payment_link\": {\n \"label\": \"Example\",\n \"after_completion\": {\n \"type\": \"redirect\",\n \"hosted_confirmation\": {\n \"custom_message\": \"Premium SPF 50 mineral sunscreen\"\n },\n \"redirect\": {\n \"url\": \"https://example.com\"\n }\n },\n \"active\": false,\n \"shipping_address_collection\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"payment_link": {
"payment_link_id": "fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"label": "Example",
"active": false,
"line_items": [
{
"price": "fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"price_data": {
"description": "Premium SPF 50 mineral sunscreen",
"unit_amount": 2500,
"recurring": {
"interval": "day",
"interval_count": 0,
"trial_period_days": 0
},
"metadata": {
"order_id": "8842",
"channel": "shopify"
},
"product": "fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"product_data": {
"name": "Example",
"description": "Premium SPF 50 mineral sunscreen",
"upc_code": "example_value",
"gtin": "example_value",
"reference_gtin": "example_value",
"url": "https://example.com",
"client_reference_id": "example_value",
"metadata": {
"order_id": "8842",
"channel": "shopify"
},
"image_urls": [
"https://example.com/image.png"
],
"categories": [
"string"
],
"components": [
"string"
]
}
},
"quantity": 0,
"shipping_options": {
"shipping_rate_id": "fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"shipping_rate_data": {
"display_name": "Example",
"amount": 2500,
"metadata": {
"order_id": "8842",
"channel": "shopify"
}
}
},
"tax_rate": {
"amount": 2500
},
"components": [
{
"quantity": 1,
"dressing_mode": "MIXED",
"component_id": "fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"client_reference_id": "string"
}
]
}
],
"allow_promotion_codes": false,
"shipping_address_collection": false,
"shipping_options": {
"shipping_rate_id": "fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"shipping_amount": 2500,
"display_name": "Example"
},
"metadata": {
"order_id": "8842",
"channel": "shopify"
},
"url": "https://example.com",
"created_at": "2026-06-15T14:30:00Z",
"payment_intent_data": {
"capture_method": "automatic",
"metadata": {
"order_id": "8842",
"channel": "shopify"
}
},
"after_completion": {
"type": "redirect",
"hosted_confirmation": {
"custom_message": "Premium SPF 50 mineral sunscreen"
},
"redirect": {
"url": "https://example.com"
}
},
"origin": "shopify",
"tax_rate": {
"amount": 2500
},
"discounts": [
"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"
],
"setup_future_use": "on_session",
"test_mode": false
}
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}{
"code": "string",
"detail": "string"
}Update Payment Link
Updates an existing payment link. Only the supplied fields are changed; omitted fields are
left unchanged. The mutable fields are the label, the after-completion behavior, the active
flag, and shipping address collection — line items, discounts, and other parameters are fixed
once the link is created. Set active to false to archive the link, which removes it from
list results and makes checkout session generation from the link return a 404. Set active
back to true to restore it.
curl --request PATCH \
--url https://api.withflex.com/v1/payment_links/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"payment_link": {
"label": "Example",
"after_completion": {
"type": "redirect",
"hosted_confirmation": {
"custom_message": "Premium SPF 50 mineral sunscreen"
},
"redirect": {
"url": "https://example.com"
}
},
"active": false,
"shipping_address_collection": false
}
}
'import requests
url = "https://api.withflex.com/v1/payment_links/{id}"
payload = { "payment_link": {
"label": "Example",
"after_completion": {
"type": "redirect",
"hosted_confirmation": { "custom_message": "Premium SPF 50 mineral sunscreen" },
"redirect": { "url": "https://example.com" }
},
"active": False,
"shipping_address_collection": False
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
payment_link: {
label: 'Example',
after_completion: {
type: 'redirect',
hosted_confirmation: {custom_message: 'Premium SPF 50 mineral sunscreen'},
redirect: {url: 'https://example.com'}
},
active: false,
shipping_address_collection: false
}
})
};
fetch('https://api.withflex.com/v1/payment_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.withflex.com/v1/payment_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([
'payment_link' => [
'label' => 'Example',
'after_completion' => [
'type' => 'redirect',
'hosted_confirmation' => [
'custom_message' => 'Premium SPF 50 mineral sunscreen'
],
'redirect' => [
'url' => 'https://example.com'
]
],
'active' => false,
'shipping_address_collection' => false
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.withflex.com/v1/payment_links/{id}"
payload := strings.NewReader("{\n \"payment_link\": {\n \"label\": \"Example\",\n \"after_completion\": {\n \"type\": \"redirect\",\n \"hosted_confirmation\": {\n \"custom_message\": \"Premium SPF 50 mineral sunscreen\"\n },\n \"redirect\": {\n \"url\": \"https://example.com\"\n }\n },\n \"active\": false,\n \"shipping_address_collection\": false\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.withflex.com/v1/payment_links/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"payment_link\": {\n \"label\": \"Example\",\n \"after_completion\": {\n \"type\": \"redirect\",\n \"hosted_confirmation\": {\n \"custom_message\": \"Premium SPF 50 mineral sunscreen\"\n },\n \"redirect\": {\n \"url\": \"https://example.com\"\n }\n },\n \"active\": false,\n \"shipping_address_collection\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withflex.com/v1/payment_links/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"payment_link\": {\n \"label\": \"Example\",\n \"after_completion\": {\n \"type\": \"redirect\",\n \"hosted_confirmation\": {\n \"custom_message\": \"Premium SPF 50 mineral sunscreen\"\n },\n \"redirect\": {\n \"url\": \"https://example.com\"\n }\n },\n \"active\": false,\n \"shipping_address_collection\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"payment_link": {
"payment_link_id": "fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"label": "Example",
"active": false,
"line_items": [
{
"price": "fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"price_data": {
"description": "Premium SPF 50 mineral sunscreen",
"unit_amount": 2500,
"recurring": {
"interval": "day",
"interval_count": 0,
"trial_period_days": 0
},
"metadata": {
"order_id": "8842",
"channel": "shopify"
},
"product": "fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"product_data": {
"name": "Example",
"description": "Premium SPF 50 mineral sunscreen",
"upc_code": "example_value",
"gtin": "example_value",
"reference_gtin": "example_value",
"url": "https://example.com",
"client_reference_id": "example_value",
"metadata": {
"order_id": "8842",
"channel": "shopify"
},
"image_urls": [
"https://example.com/image.png"
],
"categories": [
"string"
],
"components": [
"string"
]
}
},
"quantity": 0,
"shipping_options": {
"shipping_rate_id": "fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"shipping_rate_data": {
"display_name": "Example",
"amount": 2500,
"metadata": {
"order_id": "8842",
"channel": "shopify"
}
}
},
"tax_rate": {
"amount": 2500
},
"components": [
{
"quantity": 1,
"dressing_mode": "MIXED",
"component_id": "fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"client_reference_id": "string"
}
]
}
],
"allow_promotion_codes": false,
"shipping_address_collection": false,
"shipping_options": {
"shipping_rate_id": "fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"shipping_amount": 2500,
"display_name": "Example"
},
"metadata": {
"order_id": "8842",
"channel": "shopify"
},
"url": "https://example.com",
"created_at": "2026-06-15T14:30:00Z",
"payment_intent_data": {
"capture_method": "automatic",
"metadata": {
"order_id": "8842",
"channel": "shopify"
}
},
"after_completion": {
"type": "redirect",
"hosted_confirmation": {
"custom_message": "Premium SPF 50 mineral sunscreen"
},
"redirect": {
"url": "https://example.com"
}
},
"origin": "shopify",
"tax_rate": {
"amount": 2500
},
"discounts": [
"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"
],
"setup_future_use": "on_session",
"test_mode": false
}
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}{
"code": "string",
"detail": "string"
}Authorizations
Use a Bearer token to access this API.
Path Parameters
"fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA"
Body
An envelope wrapping a single payment link object.
An envelope wrapping a single payment link object.
The payment link.
Show child attributes
Show child attributes
{
"label": "Example",
"after_completion": {
"type": "redirect",
"hosted_confirmation": {
"custom_message": "Premium SPF 50 mineral sunscreen"
},
"redirect": { "url": "https://example.com" }
},
"active": false,
"shipping_address_collection": false
}
Response
An envelope wrapping a single payment link object.
An envelope wrapping a single payment link object.
The payment link.
Show child attributes
Show child attributes
{
"payment_link_id": "fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"label": "Example",
"active": false,
"line_items": [
{
"price": "fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"price_data": {
"description": "Premium SPF 50 mineral sunscreen",
"unit_amount": 2500,
"recurring": {
"interval": "day",
"interval_count": 0,
"trial_period_days": 0
},
"metadata": { "order_id": "8842", "channel": "shopify" },
"product": "fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"product_data": {
"name": "Example",
"description": "Premium SPF 50 mineral sunscreen",
"upc_code": "example_value",
"gtin": "example_value",
"reference_gtin": "example_value",
"url": "https://example.com",
"client_reference_id": "example_value",
"metadata": { "order_id": "8842", "channel": "shopify" },
"image_urls": ["https://example.com/image.png"],
"categories": ["string"],
"components": ["string"]
}
},
"quantity": 0,
"shipping_options": {
"shipping_rate_id": "fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"shipping_rate_data": {
"display_name": "Example",
"amount": 2500,
"metadata": { "order_id": "8842", "channel": "shopify" }
}
},
"tax_rate": { "amount": 2500 },
"components": [
{
"quantity": 1,
"dressing_mode": "MIXED",
"component_id": "fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"client_reference_id": "string"
}
]
}
],
"allow_promotion_codes": false,
"shipping_address_collection": false,
"shipping_options": {
"shipping_rate_id": "fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"shipping_amount": 2500,
"display_name": "Example"
},
"metadata": { "order_id": "8842", "channel": "shopify" },
"url": "https://example.com",
"created_at": "2026-06-15T14:30:00Z",
"payment_intent_data": {
"capture_method": "automatic",
"metadata": { "order_id": "8842", "channel": "shopify" }
},
"after_completion": {
"type": "redirect",
"hosted_confirmation": {
"custom_message": "Premium SPF 50 mineral sunscreen"
},
"redirect": { "url": "https://example.com" }
},
"origin": "shopify",
"tax_rate": { "amount": 2500 },
"discounts": ["fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"],
"setup_future_use": "on_session",
"test_mode": false
}