Get account info
curl --request GET \
--url https://api.fyatu.com/api/v3.20/info \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fyatu.com/api/v3.20/info"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fyatu.com/api/v3.20/info', 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.fyatu.com/api/v3.20/info",
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.fyatu.com/api/v3.20/info"
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.fyatu.com/api/v3.20/info")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fyatu.com/api/v3.20/info")
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{
"success": true,
"status": 200,
"message": "Account info retrieved",
"data": {
"businessId": "BUS1A2B3C4D5E6F",
"programId": "prg_01HXYZ9876ABCDEF0000",
"name": "Standard VISA Consumer Program",
"status": "ACTIVE",
"currency": "USD",
"kycMode": "MANAGED",
"activatedAt": "2026-01-10T09:00:00Z",
"pricing": {
"currency": "USD",
"flat": {
"monthly": 0,
"cardIssuance": 1,
"tokenization": 0.5,
"cardMaintenance": 0,
"cardTermination": 0,
"cardReplacement": 5,
"kycPerVerification": 1,
"decline": 0.25,
"chargeback": 15
},
"deposit": {
"percent": 1,
"flat": 0
},
"cardFunding": {
"percent": 0,
"flat": 0,
"min": 0
},
"authorization": {
"percent": 0,
"flat": 0,
"min": 0
},
"crossBorder": {
"percent": 1.5,
"flat": 0,
"min": 0.25
},
"settlement": {
"percent": 0,
"flat": 0,
"min": 0
},
"fx": {
"percent": 0
}
},
"features": {
"availableSchemes": [
"VISA"
],
"has3DS": true,
"hasApplePay": true,
"hasGooglePay": true,
"hasJIT": false,
"hasSpendControl": true,
"hasMccControl": false,
"hasConsumer": true,
"hasCorporate": false
},
"restrictions": {
"restrictedMccs": [
"7995",
"7801"
],
"availableMccs": null,
"restrictedCardholderCountries": [
"KP",
"IR",
"SY"
],
"restrictedMerchantCountries": [],
"availableRegions": null,
"blockedCategories": [],
"allowedCategories": []
},
"stats": {
"totalCards": 312,
"totalCardholders": 148,
"totalTransactions": 4721
}
},
"meta": {
"requestId": "req_a1b2c3d4e5f6a7b8c9d0e1f2",
"platform": "Fyatu CaaS",
"timestamp": "2026-05-26T10:45:00Z"
}
}Account
Account Info
Retrieve your complete program configuration — identity, balance, pricing schedule, feature flags, and all restrictions. GET /info. Requires accounts:read scope.
GET
/
info
Get account info
curl --request GET \
--url https://api.fyatu.com/api/v3.20/info \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fyatu.com/api/v3.20/info"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fyatu.com/api/v3.20/info', 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.fyatu.com/api/v3.20/info",
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.fyatu.com/api/v3.20/info"
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.fyatu.com/api/v3.20/info")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fyatu.com/api/v3.20/info")
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{
"success": true,
"status": 200,
"message": "Account info retrieved",
"data": {
"businessId": "BUS1A2B3C4D5E6F",
"programId": "prg_01HXYZ9876ABCDEF0000",
"name": "Standard VISA Consumer Program",
"status": "ACTIVE",
"currency": "USD",
"kycMode": "MANAGED",
"activatedAt": "2026-01-10T09:00:00Z",
"pricing": {
"currency": "USD",
"flat": {
"monthly": 0,
"cardIssuance": 1,
"tokenization": 0.5,
"cardMaintenance": 0,
"cardTermination": 0,
"cardReplacement": 5,
"kycPerVerification": 1,
"decline": 0.25,
"chargeback": 15
},
"deposit": {
"percent": 1,
"flat": 0
},
"cardFunding": {
"percent": 0,
"flat": 0,
"min": 0
},
"authorization": {
"percent": 0,
"flat": 0,
"min": 0
},
"crossBorder": {
"percent": 1.5,
"flat": 0,
"min": 0.25
},
"settlement": {
"percent": 0,
"flat": 0,
"min": 0
},
"fx": {
"percent": 0
}
},
"features": {
"availableSchemes": [
"VISA"
],
"has3DS": true,
"hasApplePay": true,
"hasGooglePay": true,
"hasJIT": false,
"hasSpendControl": true,
"hasMccControl": false,
"hasConsumer": true,
"hasCorporate": false
},
"restrictions": {
"restrictedMccs": [
"7995",
"7801"
],
"availableMccs": null,
"restrictedCardholderCountries": [
"KP",
"IR",
"SY"
],
"restrictedMerchantCountries": [],
"availableRegions": null,
"blockedCategories": [],
"allowedCategories": []
},
"stats": {
"totalCards": 312,
"totalCardholders": 148,
"totalTransactions": 4721
}
},
"meta": {
"requestId": "req_a1b2c3d4e5f6a7b8c9d0e1f2",
"platform": "Fyatu CaaS",
"timestamp": "2026-05-26T10:45:00Z"
}
}Overview
Returns a comprehensive snapshot of your active card program in a single call. Use this endpoint to:- Verify your program is active before issuing cards
- Display your pricing schedule to internal stakeholders
- Enforce client-side restriction logic (restricted MCCs, blocked countries) before calling card APIs
- Seed your application’s configuration cache at startup
Example
curl https://api.fyatu.com/api/v3.20/info \
-H "Authorization: Bearer $FYATU_API_KEY"
const resp = await fetch('https://api.fyatu.com/api/v3.20/info', {
headers: { 'Authorization': `Bearer ${process.env.FYATU_API_KEY}` }
});
const { data } = await resp.json();
console.log('Program:', data.name, '|', data.status);
console.log('Balance:', data.balance.amount, data.balance.currency);
console.log('Card issuance fee:', data.pricing.flat.cardIssuance, data.pricing.currency);
console.log('Restricted MCCs:', data.restrictions.restrictedMccs);
import os, requests
resp = requests.get(
'https://api.fyatu.com/api/v3.20/info',
headers={'Authorization': f'Bearer {os.environ["FYATU_API_KEY"]}'}
)
data = resp.json()['data']
print(data['name'], data['status'])
print('Balance:', data['balance']['amount'], data['balance']['currency'])
print('Card issuance fee:', data['pricing']['flat']['cardIssuance'])
Success Response (200)
{
"success": true,
"status": 200,
"message": "Account info retrieved",
"data": {
"businessId": "BUS1A2B3C4D5E6F",
"programId": "prg_01HXYZ9876ABCDEF0000",
"name": "Standard VISA Consumer Program",
"status": "ACTIVE",
"currency": "USD",
"kycMode": "MANAGED",
"activatedAt": "2026-01-10T09:00:00Z",
"pricing": {
"currency": "USD",
"flat": {
"monthly": 0.00,
"cardIssuance": 1.00,
"tokenization": 0.50,
"cardMaintenance": 0.00,
"cardTermination": 0.00,
"cardReplacement": 5.00,
"kycPerVerification": 1.00,
"decline": 0.25,
"chargeback": 15.00
},
"deposit": {
"percent": 1.00,
"flat": 0.00
},
"cardFunding": {
"percent": 0.00,
"flat": 0.00,
"min": 0.00
},
"authorization": {
"percent": 0.00,
"flat": 0.00,
"min": 0.00
},
"crossBorder": {
"percent": 1.50,
"flat": 0.00,
"min": 0.25
},
"settlement": {
"percent": 0.00,
"flat": 0.00,
"min": 0.00
},
"fx": {
"percent": 0.00
}
},
"features": {
"availableSchemes": ["VISA"],
"has3DS": true,
"hasApplePay": true,
"hasGooglePay": true,
"hasJIT": false,
"hasSpendControl": true,
"hasMccControl": false,
"hasConsumer": true,
"hasCorporate": false
},
"restrictions": {
"restrictedMccs": ["7995", "7801"],
"availableMccs": null,
"restrictedCardholderCountries": ["KP", "IR", "SY"],
"restrictedMerchantCountries": [],
"availableRegions": null,
"blockedCategories": [],
"allowedCategories": []
},
"stats": {
"totalCards": 312,
"totalCardholders": 148,
"totalTransactions": 4721
}
},
"meta": {
"requestId": "req_01HXY123456ABCDEF",
"platform": "Fyatu CaaS",
"timestamp": "2026-05-26T10:45:00Z"
}
}
Field Reference
Identity
| Field | Description |
|---|---|
businessId | Your business identifier |
programId | Your active program identifier (prefix prg_) |
name | Program name as configured |
status | ACTIVE, PAUSED, or SUSPENDED |
currency | ISO 4217 currency code (e.g. USD) |
kycMode | How KYC is handled — MANAGED (Fyatu runs KYC) or SHARED / MINIMAL |
activatedAt | ISO 8601 timestamp when the program went live |
pricing Object
Your complete fee schedule, sourced from your program catalog. All amounts are in pricing.currency.
pricing.flat — Fixed fees charged per event
| Field | Description |
|---|---|
monthly | Recurring monthly platform fee |
cardIssuance | Charged when a card is successfully issued |
tokenization | Charged per Apple Pay or Google Pay token provisioned |
cardMaintenance | Recurring per-card maintenance fee (if applicable) |
cardTermination | Charged when a card is terminated |
cardReplacement | Charged when a card is replaced |
kycPerVerification | Charged per successful cardholder KYC verification |
decline | Charged per declined authorization |
chargeback | Charged per disputed chargeback case |
pricing.deposit — Account top-up fees
| Field | Description |
|---|---|
percent | Percentage of the deposited amount (e.g. 1.00 = 1%) |
flat | Fixed fee per deposit |
pricing.cardFunding — Fees when loading funds onto a card
| Field | Description |
|---|---|
percent | Percentage of the funded amount |
flat | Fixed fee per funding operation |
min | Minimum fee applied when percent calculation falls below this value |
pricing.authorization — Per-authorization fees
| Field | Description |
|---|---|
percent | Percentage of the authorized amount |
flat | Fixed fee per authorization event |
min | Minimum fee |
pricing.crossBorder — Fees on transactions where the merchant country differs from the card’s issuing country
| Field | Description |
|---|---|
percent | Percentage of the transaction amount |
flat | Fixed cross-border fee |
min | Minimum cross-border fee applied |
pricing.settlement — Fees applied at settlement (cleared transactions)
| Field | Description |
|---|---|
percent | Percentage of the settled amount |
flat | Fixed settlement fee |
min | Minimum settlement fee |
pricing.fx — Foreign-exchange mark-up
| Field | Description |
|---|---|
percent | FX mark-up percentage on top of the scheme rate. 0.00 means the raw scheme FX rate applies with no additional mark-up |
features Object
What your program catalog supports. These determine which options are valid when calling POST /programs/:id/products.
| Field | Type | Description |
|---|---|---|
availableSchemes | string[] | Card networks available to your program (e.g. ["VISA"]) |
has3DS | boolean | 3D Secure authentication is available |
hasApplePay | boolean | Apple Pay tokenisation is available |
hasGooglePay | boolean | Google Pay tokenisation is available |
hasJIT | boolean | Just-In-Time funding is available |
hasSpendControl | boolean | Per-card spend limits can be configured |
hasMccControl | boolean | MCC allow/block rules can be configured |
hasConsumer | boolean | CONSUMER card type is available |
hasCorporate | boolean | CORPORATE card type is available |
restrictions Object
All active restrictions on your program. Apply these on the client side before calling card APIs to avoid predictable errors.
| Field | Type | Description |
|---|---|---|
restrictedMccs | string[] | null | MCC codes that are globally blocked on your program. Cards cannot be used at merchants with these codes |
availableMccs | string[] | null | If non-null, only these MCCs are permitted. Any merchant outside this list is blocked |
restrictedCardholderCountries | string[] | null | ISO 3166-1 alpha-2 codes — cardholders from these countries cannot be onboarded |
restrictedMerchantCountries | string[] | null | ISO 3166-1 alpha-2 codes — cards cannot be used at merchants in these countries |
availableRegions | string[] | null | If non-null, only cardholders from these regions are eligible |
blockedCategories | string[] | Program-level merchant category overrides set by your account. Possible values: RETAIL, TRAVEL, ENTERTAINMENT, DINING, FUEL, HEALTHCARE, EDUCATION, UTILITIES, GOVERNMENT, OTHER |
allowedCategories | string[] | If non-empty, only merchants in these categories are permitted at the program level |
stats Object
Aggregated counters for your program.
| Field | Description |
|---|---|
totalCards | Total cards ever issued under this program |
totalCardholders | Total cardholder profiles created |
totalTransactions | Total transaction events recorded |
Error Codes
| Code | HTTP | Cause |
|---|---|---|
PROGRAM_NOT_FOUND | 404 | No active program exists for this account |
INSUFFICIENT_SCOPE | 403 | Key lacks accounts:read scope |
INTERNAL_ERROR | 500 | Server error |
Authorizations
API key from the FYATU CaaS portal. Pass as Authorization: Bearer <key>.
⌘I

