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": {},
"active": false
}
}
'import requests
url = "https://api.withflex.com/v1/payment_links/{id}"
payload = { "payment_link": {
"label": "Example",
"after_completion": {},
"active": 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: {}, active: 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' => [
],
'active' => 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 \"active\": 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 \"active\": 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 \"active\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"payment_link": {
"payment_link_id": "fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"label": "Example",
"active": false,
"line_items": [
{}
],
"allow_promotion_codes": false,
"shipping_address_collection": false,
"shipping_options": {},
"metadata": {
"order_id": "8842",
"channel": "shopify"
},
"url": "https://example.com",
"created_at": "2026-06-15T14:30:00Z",
"payment_intent_data": {},
"after_completion": {},
"origin": "shopify",
"tax_rate": {},
"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 label, after_completion, and active — 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": {},
"active": false
}
}
'import requests
url = "https://api.withflex.com/v1/payment_links/{id}"
payload = { "payment_link": {
"label": "Example",
"after_completion": {},
"active": 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: {}, active: 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' => [
],
'active' => 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 \"active\": 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 \"active\": 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 \"active\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"payment_link": {
"payment_link_id": "fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"label": "Example",
"active": false,
"line_items": [
{}
],
"allow_promotion_codes": false,
"shipping_address_collection": false,
"shipping_options": {},
"metadata": {
"order_id": "8842",
"channel": "shopify"
},
"url": "https://example.com",
"created_at": "2026-06-15T14:30:00Z",
"payment_intent_data": {},
"after_completion": {},
"origin": "shopify",
"tax_rate": {},
"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" },
"active": 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",
"quantity": 0,
"components": []
}
],
"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": {},
"redirect": {}
},
"origin": "shopify",
"tax_rate": { "amount": 2500 },
"discounts": ["fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"],
"setup_future_use": "on_session",
"test_mode": false
}