Merchant Billing Pause
Stop collecting money from this merchant's customers
Switches collection off. Renewals, checkout and API charges all stop; refunds and the completion of already-authorized payments continue, so no customer is left with a stranded hold. Subscriptions are held rather than cancelled.
A root admin’s pause is owned by Fluid and the merchant cannot lift it. A pause a merchant sets itself can be lifted by either party.
POST
/
api
/
payment
/
v2026-04
/
merchants
/
{merchant_id}
/
billing_pause
Stop collecting money from this merchant's customers
curl --request POST \
--url https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"billing_pause": {
"reason": "Merchant ceased trading"
}
}
'import requests
url = "https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause"
payload = { "billing_pause": { "reason": "Merchant ceased trading" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({billing_pause: {reason: 'Merchant ceased trading'}})
};
fetch('https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause', 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/merchants/{merchant_id}/billing_pause",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'billing_pause' => [
'reason' => 'Merchant ceased trading'
]
]),
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/merchants/{merchant_id}/billing_pause"
payload := strings.NewReader("{\n \"billing_pause\": {\n \"reason\": \"Merchant ceased trading\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"billing_pause\": {\n \"reason\": \"Merchant ceased trading\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"billing_pause\": {\n \"reason\": \"Merchant ceased trading\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"paused": true,
"paused_at": "2026-09-03T18:00:00Z",
"paused_by": "fluid",
"reason": "Merchant ceased trading"
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": "error",
"message": "<string>",
"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"
}
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}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
Company ID of the merchant. The lookup resolves by company ID only, the same as the configuration endpoint.
Body
application/json
Show child attributes
Show child attributes
⌘I
Stop collecting money from this merchant's customers
curl --request POST \
--url https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"billing_pause": {
"reason": "Merchant ceased trading"
}
}
'import requests
url = "https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause"
payload = { "billing_pause": { "reason": "Merchant ceased trading" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({billing_pause: {reason: 'Merchant ceased trading'}})
};
fetch('https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause', 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/merchants/{merchant_id}/billing_pause",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'billing_pause' => [
'reason' => 'Merchant ceased trading'
]
]),
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/merchants/{merchant_id}/billing_pause"
payload := strings.NewReader("{\n \"billing_pause\": {\n \"reason\": \"Merchant ceased trading\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"billing_pause\": {\n \"reason\": \"Merchant ceased trading\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/payment/v2026-04/merchants/{merchant_id}/billing_pause")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"billing_pause\": {\n \"reason\": \"Merchant ceased trading\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"paused": true,
"paused_at": "2026-09-03T18:00:00Z",
"paused_by": "fluid",
"reason": "Merchant ceased trading"
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": "error",
"message": "<string>",
"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"
}
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}