API Documentation
Programmatic access to real-time payment system data
Overview
The RTP Dashboard API provides read-only access to transaction data, time series, and metadata for 32 real-time payment systems worldwide. Data is sourced from central banks, payment operators, and BIS CPMI statistics.
All responses are JSON. No authentication is required.
Base URL
https://rtpdashboard.net/.netlify/functions/api
Endpoints
Returns all payment system data: latest summaries, historical time series, system metadata, and exchange rates.
Response Fields
| Field | Type | Description |
|---|---|---|
| data | object | Latest summary for each system. Keyed by system ID. Each entry contains the most recent transaction count, value in USD and local currency, and the reporting period. |
| timeseries | object | Historical data per system. Keyed by system ID. Arrays of monthly, quarterly, or annual data points with transaction volume and value. |
| systems | object | Metadata for each system. Keyed by system ID. Includes name, country, flag emoji, region, currency, launch year, operator, settlement type, infrastructure capabilities, description, and participant count. |
| exchange_rates | object | Fixed exchange rates (to USD) used for value conversions. Keyed by currency code. |
| warnings | array | Any data source failures or issues encountered during fetch. Empty array when all sources are healthy. |
Example Response
{
"data": {
"upi": {
"volume": 16584000000,
"value_usd": 2460000000000,
"value_local": 205000000000000,
"currency": "INR",
"period": "2024-12",
"period_type": "monthly"
},
"pix": {
"volume": 5200000000,
"value_usd": 510000000000,
"value_local": 3000000000000,
"currency": "BRL",
"period": "2024-12",
"period_type": "monthly"
}
// ... 30 more systems
},
"timeseries": {
"upi": [
{
"period": "2017-04",
"period_type": "monthly",
"volume": 6200000,
"value_usd": 176000000,
"value_local": 14680000000
},
{
"period": "2017-05",
"period_type": "monthly",
"volume": 9200000,
"value_usd": 234000000,
"value_local": 19500000000
}
// ... more data points
]
// ... 31 more systems
},
"systems": {
"upi": {
"name": "UPI",
"country": "India",
"flag": "\ud83c\uddee\ud83c\uddf3",
"region": "asia_pacific",
"currency": "INR",
"launched": 2016,
"type": "Account Transfer + QR",
"operator": "NPCI",
"settlement": "Instant",
"rail": "IMPS / UPI",
"population": 1430000000,
"participants": 300,
"infra": {
"qr": true,
"wallet": true,
"twentyFourSeven": true,
"crossBorder": true
},
"description": "Unified Payments Interface..."
}
// ... 31 more systems
},
"exchange_rates": {
"USD": 1.0,
"INR": 0.012,
"BRL": 0.17,
"GBP": 1.27,
"EUR": 1.08,
"HKD": 0.128
// ... more currencies
},
"warnings": []
}
Data Entry Fields
Each entry in data contains:
| Field | Type | Description |
|---|---|---|
| volume | number | Transaction count for the period |
| value_usd | number | Total value in USD (converted using fixed exchange rates) |
| value_local | number | Total value in the system's local currency |
| currency | string | ISO 4217 currency code |
| period | string | Reporting period (e.g. 2024-12, 2024-Q4, 2024) |
| period_type | string | One of monthly, quarterly, or annual |
System Metadata Fields
Each entry in systems contains:
| Field | Type | Description |
|---|---|---|
| name | string | Display name of the payment system |
| country | string | Country or region where the system operates |
| flag | string | Flag emoji for the country |
| region | string | Geographic region (asia_pacific, europe, americas, africa_mideast) |
| currency | string | ISO 4217 currency code |
| launched | number | Year the system launched |
| operator | string | Organization that operates the system |
| settlement | string | Settlement type (e.g. "Instant", "Near-instant") |
| infra | object | Infrastructure capabilities: qr, wallet, twentyFourSeven, crossBorder (all booleans) |
| participants | number | Approximate number of participating institutions |
| description | string | Detailed description of the payment system |
System IDs
The API uses the following 32 system identifiers as keys in data, timeseries, and systems:
upi UPI (India)imps IMPS (India)pix Pix (Brazil)fps_uk Faster Payments (UK)fps_hk FPS (Hong Kong)npp NPP (Australia)sct_inst SEPA Instant (EU)spei SPEI (Mexico)swish Swish (Sweden)zengin Zengin (Japan)paynow FAST (Singapore)ibps IBPS (China)fast_tr Fast System (Turkey)snp_ar SNP (Argentina)fednow FedNow (US)rtp_us RTP (US)promptpay PromptPay (Thailand)duitnow DuitNow (Malaysia)bi_fast BI-FAST (Indonesia)qris QRIS (Indonesia)instapay_ph InstaPay (Philippines)napas247 NAPAS 247 (Vietnam)sarie Sarie (Saudi Arabia)fawri_plus Fawri+ (Bahrain)instapay_eg InstaPay EG (Egypt)mpesa M-Pesa (Kenya)twint TWINT (Switzerland)nip NIP (Nigeria)interac Interac (Canada)blik BLIK (Poland)raast Raast (Pakistan)ipp_ae IPP / Aani (UAE)Usage Example
// Fetch all data
const response = await fetch('https://rtpdashboard.net/.netlify/functions/api/latest');
const { data, timeseries, systems, exchange_rates } = await response.json();
// Get latest UPI transaction volume
console.log(data.upi.volume);
// => 16584000000
// Get Pix time series
console.log(timeseries.pix.length);
// => 60 (monthly data points)
// Get system metadata
console.log(systems.fps_uk.operator);
// => "Pay.UK"
// Get exchange rate for BRL to USD
console.log(exchange_rates.BRL);
// => 0.17
Rate Limits
This API is hosted on Netlify Functions and subject to standard Netlify rate limits:
- Up to 125,000 function invocations per site per month (free tier)
- Maximum 10-second execution timeout per request
- Response size limit of 6 MB
For high-volume use cases, consider caching responses locally. The underlying data is updated monthly at most, so aggressive caching is safe.
Notes
- USD conversions use fixed exchange rates which may differ from actual rates at the time of transaction. Rates are provided in the
exchange_ratesfield. - Reporting periods vary by system: some report monthly, others quarterly or annually. The
period_typefield indicates the granularity. - Time series length varies by system. Established systems (e.g. Faster Payments, launched 2008) have data going back further than newer systems (e.g. FedNow, launched 2023).
- The
warningsarray will contain strings describing any data source failures. If a live API (HKMA, RBA, BCB, Banxico) is unreachable, that system may return stale or missing data. - This API is for informational purposes only. See the dashboard disclaimer for full terms.