curl --request PATCH \
--url https://api.agentaos.ai/api/v1/gateway/payment-links/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"amount": 59.99
}
'import requests
url = "https://api.agentaos.ai/api/v1/gateway/payment-links/{id}"
payload = { "amount": 59.99 }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: 59.99})
};
fetch('https://api.agentaos.ai/api/v1/gateway/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.agentaos.ai/api/v1/gateway/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([
'amount' => 59.99
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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.agentaos.ai/api/v1/gateway/payment-links/{id}"
payload := strings.NewReader("{\n \"amount\": 59.99\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<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.agentaos.ai/api/v1/gateway/payment-links/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 59.99\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agentaos.ai/api/v1/gateway/payment-links/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 59.99\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"secure_link_id": "<string>",
"amount": 123,
"currency": "<string>",
"description": "<string>",
"metadata": {},
"checkout_fields": [
{
"key": "<string>",
"label": "<string>",
"required": true,
"placeholder": "<string>",
"options": [
"<string>"
]
}
],
"webhook_url": "<string>",
"success_url": "<string>",
"cancel_url": "<string>",
"tax_rate_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payment_count": 123,
"supported_networks": [
"<string>"
],
"expires_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"image_url": "<string>",
"max_uses": 123,
"checkoutUrl": "<string>"
}{
"statusCode": 400,
"message": "amount is required when creating a session without a link",
"timestamp": "2026-08-06T12:00:00.000Z"
}{
"statusCode": 401,
"message": "Invalid API key",
"timestamp": "2026-08-06T12:00:00.000Z"
}{
"statusCode": 403,
"message": "Payment link belongs to another organization",
"timestamp": "2026-08-06T12:00:00.000Z"
}{
"statusCode": 404,
"message": "Payment link not found",
"timestamp": "2026-08-06T12:00:00.000Z"
}Update a payment link
Partial update: only send the fields you want to change.
curl --request PATCH \
--url https://api.agentaos.ai/api/v1/gateway/payment-links/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"amount": 59.99
}
'import requests
url = "https://api.agentaos.ai/api/v1/gateway/payment-links/{id}"
payload = { "amount": 59.99 }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: 59.99})
};
fetch('https://api.agentaos.ai/api/v1/gateway/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.agentaos.ai/api/v1/gateway/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([
'amount' => 59.99
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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.agentaos.ai/api/v1/gateway/payment-links/{id}"
payload := strings.NewReader("{\n \"amount\": 59.99\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<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.agentaos.ai/api/v1/gateway/payment-links/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 59.99\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agentaos.ai/api/v1/gateway/payment-links/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 59.99\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"secure_link_id": "<string>",
"amount": 123,
"currency": "<string>",
"description": "<string>",
"metadata": {},
"checkout_fields": [
{
"key": "<string>",
"label": "<string>",
"required": true,
"placeholder": "<string>",
"options": [
"<string>"
]
}
],
"webhook_url": "<string>",
"success_url": "<string>",
"cancel_url": "<string>",
"tax_rate_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payment_count": 123,
"supported_networks": [
"<string>"
],
"expires_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"image_url": "<string>",
"max_uses": 123,
"checkoutUrl": "<string>"
}{
"statusCode": 400,
"message": "amount is required when creating a session without a link",
"timestamp": "2026-08-06T12:00:00.000Z"
}{
"statusCode": 401,
"message": "Invalid API key",
"timestamp": "2026-08-06T12:00:00.000Z"
}{
"statusCode": 403,
"message": "Payment link belongs to another organization",
"timestamp": "2026-08-06T12:00:00.000Z"
}{
"statusCode": 404,
"message": "Payment link not found",
"timestamp": "2026-08-06T12:00:00.000Z"
}Authorizations
Your secret key, from app.agentaos.ai -> Settings -> Developers -> API Keys. The key's prefix is both its identity and its environment: sk_test_... (sandbox, free, no verification) or sk_live_... (real money, requires business verification). A missing or invalid key returns 401.
Path Parameters
Payment link UUID.
Body
Partial update. Every field is optional; only fields present are changed.
120100020480.01 <= x <= 1000000Checked against the resulting merged state.
one_time, subscription month, year Response
The updated payment link.
Payment link UUID.
Public ID used in the checkout URL.
Currency units.
Settlement currency or token.
Your custom data.
Show child attributes
Show child attributes
active, cancelled Successful payments against this link so far.
null means unlimited.
mor (card + bank) or crypto (on-chain). The snake_case column equivalent of the computed sellerMode.
mor, crypto one_time, subscription month, year, null test, live Full URL to share with buyers. Computed, camelCase, no snake_case equivalent.
mor, crypto