curl --request GET \
--url https://platform.spritz.finance/v1/funding-sources/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://platform.spritz.finance/v1/funding-sources/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.spritz.finance/v1/funding-sources/', 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://platform.spritz.finance/v1/funding-sources/",
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://platform.spritz.finance/v1/funding-sources/"
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://platform.spritz.finance/v1/funding-sources/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.spritz.finance/v1/funding-sources/")
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[
{
"id": "fs_01JV7Q8M4Y8K6N2Z5P3R1T9W0X",
"bankAccountId": "ba_abc123",
"institutionName": "Plaid Test Bank",
"institution": {
"name": "Chase",
"logoUrl": "https://assets.platform.spritz.finance/institutions/ins_109508.png",
"primaryColor": "#1e88e5"
},
"accountNumberLast4": "6789",
"accountType": "checking",
"status": "pending",
"statusReason": "ownership_mismatch",
"availableAt": "2026-09-18T15:04:05.000Z",
"permanent": true,
"deletedAt": null,
"createdAt": "2023-11-07T05:31:56Z"
}
]{
"title": "Unauthorized",
"status": 401,
"type": "urn:problem-type:auth:unauthorized",
"detail": "Bearer token required",
"instance": "<string>",
"realm": "API",
"scope": "read:users"
}{
"title": "<string>",
"status": 404,
"resourceType": "user",
"resourceId": "<string>",
"type": "about:blank",
"detail": "<string>",
"instance": "<string>"
}{
"title": "Unauthorized",
"status": 400,
"type": "urn:problem-type:auth:unauthorized",
"detail": "<string>",
"instance": "/errors/1234567890",
"code": "transaction_limit",
"field": "amountUsd",
"retryable": true,
"retryAfter": 5,
"suggestedAction": "auto_ramp",
"clearsAt": "2023-11-07T05:31:56Z",
"availableAt": "2023-11-07T05:31:56Z",
"permanent": true
}List funding sources
Returns all funding sources for the authenticated user.
curl --request GET \
--url https://platform.spritz.finance/v1/funding-sources/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://platform.spritz.finance/v1/funding-sources/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.spritz.finance/v1/funding-sources/', 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://platform.spritz.finance/v1/funding-sources/",
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://platform.spritz.finance/v1/funding-sources/"
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://platform.spritz.finance/v1/funding-sources/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.spritz.finance/v1/funding-sources/")
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[
{
"id": "fs_01JV7Q8M4Y8K6N2Z5P3R1T9W0X",
"bankAccountId": "ba_abc123",
"institutionName": "Plaid Test Bank",
"institution": {
"name": "Chase",
"logoUrl": "https://assets.platform.spritz.finance/institutions/ins_109508.png",
"primaryColor": "#1e88e5"
},
"accountNumberLast4": "6789",
"accountType": "checking",
"status": "pending",
"statusReason": "ownership_mismatch",
"availableAt": "2026-09-18T15:04:05.000Z",
"permanent": true,
"deletedAt": null,
"createdAt": "2023-11-07T05:31:56Z"
}
]{
"title": "Unauthorized",
"status": 401,
"type": "urn:problem-type:auth:unauthorized",
"detail": "Bearer token required",
"instance": "<string>",
"realm": "API",
"scope": "read:users"
}{
"title": "<string>",
"status": 404,
"resourceType": "user",
"resourceId": "<string>",
"type": "about:blank",
"detail": "<string>",
"instance": "<string>"
}{
"title": "Unauthorized",
"status": 400,
"type": "urn:problem-type:auth:unauthorized",
"detail": "<string>",
"instance": "/errors/1234567890",
"code": "transaction_limit",
"field": "amountUsd",
"retryable": true,
"retryAfter": 5,
"suggestedAction": "auto_ramp",
"clearsAt": "2023-11-07T05:31:56Z",
"availableAt": "2023-11-07T05:31:56Z",
"permanent": true
}Authorizations
User bearer credential: either a Cognito JWT or an ak_ user API key. Backend integrators using HMAC must include the user API key alongside the three HMAC headers on user-scoped endpoints.
Response
Response for status 200
Opaque public identifier for the funding source
"fs_01JV7Q8M4Y8K6N2Z5P3R1T9W0X"
Underlying bank account identifier
"ba_abc123"
Institution name used for funding source display. Prefer institution.name when present; this field will be removed in a future release.
"Plaid Test Bank"
Branding metadata for the institution backing the funding source, or null when no institution data is available.
Show child attributes
Show child attributes
Last 4 digits of the linked bank account number
"6789"
checking, savings, business, unknown pending, active, review_required, ineligible, disabled, deleted Why the funding source is not active, or null when no reason applies.
ownership_mismatch, ownership_review_required, user_not_verified, duplicate_bank_account, returned, risk_blocked, rerouted, manually_disabled, null "ownership_mismatch"
For a time-boxed block (statusReason: rerouted), when the funding source becomes usable again on its own. Re-linking the same account does not shorten it. Null when the source is usable or the block is not time-bound.
"2026-09-18T15:04:05.000Z"
True when the funding source is disabled and will not become usable again on its own; the user should link a different bank account.
When the funding source was removed by the user, or null while it remains linked. Removed funding sources stay retrievable by id for historical reference.
null
When the funding source was created