Show company bank-account setup state
Return the approved ACH authorization version and fingerprint, Stripe publishable key, and the authenticated company’s newest durable setup attempt. Client secrets are returned only when setup is started.
curl --request GET \
--url https://api.fluid.app/api/settings/billing/instrument-setup \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/settings/billing/instrument-setup"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/settings/billing/instrument-setup', 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/settings/billing/instrument-setup",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/settings/billing/instrument-setup"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/settings/billing/instrument-setup")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/settings/billing/instrument-setup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"instrument_setup": {
"id": 5821,
"instrument_type": "us_bank_account",
"status": "usable",
"provider": "stripe",
"billing_email": "angela.martin@dundermifflin.com",
"authorization_version": "fluid-ach-v1",
"authorization_accepted_at": "2026-09-08T17:02:44Z",
"failure_code": null,
"created_at": "2026-09-08T17:02:44Z"
},
"authorization": {
"version": "fluid-ach-v1",
"digest": "b624e6f9fe13a72526ed0cde8e2dbb492933a7bbb528ba98aa3eaef9269f0fc1"
},
"authorizations": {
"us_bank_account": {
"version": "fluid-ach-v1",
"digest": "b624e6f9fe13a72526ed0cde8e2dbb492933a7bbb528ba98aa3eaef9269f0fc1"
},
"card": {
"version": "fluid-card-v1",
"digest": "28454951345cf4fe2b43b180fa751686d63bc996cf02b96542ee917267e43857"
}
},
"allowed_instrument_types": [
"us_bank_account",
"card"
],
"publishable_key": "pk_live_51Nf3kQHx8Zr2VbTmY4cPq7WdLs0aE6uJ9gKtR1oBnXhCzMvDw",
"authorized_bank_account_ids": [
3187
],
"saved_cards": [
{
"id": 5610,
"brand": "visa",
"last4": "4242",
"exp_month": 11,
"exp_year": 2028
}
],
"status": 200,
"meta": {
"request_uuid": "7c2e9a41-3b8d-4f62-a1c5-9d0e6f2b8a37",
"timestamp": "2026-09-30T14:05:11Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}Authorizations
Bearer token authentication
Response
Current setup state and authorization.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The approved agreement for each rail offered, by version and fingerprint. Every company is offered every rail with an approved agreement.
Show child attributes
Show child attributes
The rails this company can set up now, which is every rail with an approved agreement.
us_bank_account, card Saved company bank accounts whose earlier ACH authorization still applies. Switching debits onto one of these needs no new acceptance.
x >= 1Saved cards other than the one in use, newest first. Their earlier card authorization still applies, so switching onto one needs no new acceptance. The expiry is the one recorded at setup; the switch asks Stripe whether the card can still be charged.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
curl --request GET \
--url https://api.fluid.app/api/settings/billing/instrument-setup \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/settings/billing/instrument-setup"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/settings/billing/instrument-setup', 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/settings/billing/instrument-setup",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/settings/billing/instrument-setup"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/settings/billing/instrument-setup")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/settings/billing/instrument-setup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"instrument_setup": {
"id": 5821,
"instrument_type": "us_bank_account",
"status": "usable",
"provider": "stripe",
"billing_email": "angela.martin@dundermifflin.com",
"authorization_version": "fluid-ach-v1",
"authorization_accepted_at": "2026-09-08T17:02:44Z",
"failure_code": null,
"created_at": "2026-09-08T17:02:44Z"
},
"authorization": {
"version": "fluid-ach-v1",
"digest": "b624e6f9fe13a72526ed0cde8e2dbb492933a7bbb528ba98aa3eaef9269f0fc1"
},
"authorizations": {
"us_bank_account": {
"version": "fluid-ach-v1",
"digest": "b624e6f9fe13a72526ed0cde8e2dbb492933a7bbb528ba98aa3eaef9269f0fc1"
},
"card": {
"version": "fluid-card-v1",
"digest": "28454951345cf4fe2b43b180fa751686d63bc996cf02b96542ee917267e43857"
}
},
"allowed_instrument_types": [
"us_bank_account",
"card"
],
"publishable_key": "pk_live_51Nf3kQHx8Zr2VbTmY4cPq7WdLs0aE6uJ9gKtR1oBnXhCzMvDw",
"authorized_bank_account_ids": [
3187
],
"saved_cards": [
{
"id": 5610,
"brand": "visa",
"last4": "4242",
"exp_month": 11,
"exp_year": 2028
}
],
"status": 200,
"meta": {
"request_uuid": "7c2e9a41-3b8d-4f62-a1c5-9d0e6f2b8a37",
"timestamp": "2026-09-30T14:05:11Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}