Gateways
Update a gateway
Updates an existing gateway. Only the fields present in the gateway payload
are changed (PATCH semantics); omit credentials to preserve stored secrets.
PUT is also routed to this operation with identical semantics. Returns 200
with the updated gateway. Returns 404 when the gateway does not exist, 409
when expected_country_codes no longer matches the gateway’s countries, and
422 on validation failure.
PATCH
/
api
/
payment
/
v2026-04
/
gateways
/
{id}
Update a gateway
curl --request PATCH \
--url https://api.fluid.app/api/payment/v2026-04/gateways/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"gateway": {
"name": "Stripe (North America)",
"country_codes": [
"US",
"CA"
]
}
}
'import requests
url = "https://api.fluid.app/api/payment/v2026-04/gateways/{id}"
payload = { "gateway": {
"name": "Stripe (North America)",
"country_codes": ["US", "CA"]
} }
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({gateway: {name: 'Stripe (North America)', country_codes: ['US', 'CA']}})
};
fetch('https://api.fluid.app/api/payment/v2026-04/gateways/{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.fluid.app/api/payment/v2026-04/gateways/{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([
'gateway' => [
'name' => 'Stripe (North America)',
'country_codes' => [
'US',
'CA'
]
]
]),
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.fluid.app/api/payment/v2026-04/gateways/{id}"
payload := strings.NewReader("{\n \"gateway\": {\n \"name\": \"Stripe (North America)\",\n \"country_codes\": [\n \"US\",\n \"CA\"\n ]\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.fluid.app/api/payment/v2026-04/gateways/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"gateway\": {\n \"name\": \"Stripe (North America)\",\n \"country_codes\": [\n \"US\",\n \"CA\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/payment/v2026-04/gateways/{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 \"gateway\": {\n \"name\": \"Stripe (North America)\",\n \"country_codes\": [\n \"US\",\n \"CA\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"name": "<string>",
"integration_type": "<string>",
"mode": "live",
"supported_sources": [
"<string>"
],
"country_codes": [
"<string>"
],
"settings": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"status": "<string>"
}{
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"errors": "<string>"
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"errors": "<string>"
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"errors": "<string>"
}Authorizations
Merchant API key (fp_live_* for live, fp_test_* for sandbox) or an
admin-tier JWT (company admin or root admin). Non-admin JWTs are
rejected with 403; live API keys additionally require the merchant's
API access to be enabled.
Path Parameters
Gateway slug, UUID, or ID
Body
application/json
Show child attributes
Show child attributes
⌘I
Update a gateway
curl --request PATCH \
--url https://api.fluid.app/api/payment/v2026-04/gateways/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"gateway": {
"name": "Stripe (North America)",
"country_codes": [
"US",
"CA"
]
}
}
'import requests
url = "https://api.fluid.app/api/payment/v2026-04/gateways/{id}"
payload = { "gateway": {
"name": "Stripe (North America)",
"country_codes": ["US", "CA"]
} }
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({gateway: {name: 'Stripe (North America)', country_codes: ['US', 'CA']}})
};
fetch('https://api.fluid.app/api/payment/v2026-04/gateways/{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.fluid.app/api/payment/v2026-04/gateways/{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([
'gateway' => [
'name' => 'Stripe (North America)',
'country_codes' => [
'US',
'CA'
]
]
]),
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.fluid.app/api/payment/v2026-04/gateways/{id}"
payload := strings.NewReader("{\n \"gateway\": {\n \"name\": \"Stripe (North America)\",\n \"country_codes\": [\n \"US\",\n \"CA\"\n ]\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.fluid.app/api/payment/v2026-04/gateways/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"gateway\": {\n \"name\": \"Stripe (North America)\",\n \"country_codes\": [\n \"US\",\n \"CA\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/payment/v2026-04/gateways/{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 \"gateway\": {\n \"name\": \"Stripe (North America)\",\n \"country_codes\": [\n \"US\",\n \"CA\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"name": "<string>",
"integration_type": "<string>",
"mode": "live",
"supported_sources": [
"<string>"
],
"country_codes": [
"<string>"
],
"settings": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"status": "<string>"
}{
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"errors": "<string>"
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"errors": "<string>"
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"errors": "<string>"
}