Account Aggregator Data Fetch
Banking & CreditConsented bank statements and financial data through the Account Aggregator framework.
Raise a consent request, let the customer approve it in their Account Aggregator app, and receive machine-readable bank statements and other financial information without PDFs or screen scraping.
Endpoint
POST
https://app.emver.io/api/sandbox/v1/account-aggregator
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
Request parameters
| Field | Type | Description |
|---|---|---|
mobile
required
|
phone | Customer mobile |
purpose
required
|
string | Purpose code |
from_date
required
|
date | Data from |
to_date
required
|
date | Data to |
Example request
cURL
curl -X POST https://app.emver.io/api/sandbox/v1/account-aggregator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"mobile": "9999999999",
"purpose": "string",
"from_date": "YYYY-MM-DD",
"to_date": "YYYY-MM-DD"
}'
import requests
response = requests.post(
"https://app.emver.io/api/sandbox/v1/account-aggregator",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
},
json={
"mobile": "9999999999",
"purpose": "string",
"from_date": "YYYY-MM-DD",
"to_date": "YYYY-MM-DD"
},
timeout=60,
)
response.raise_for_status()
data = response.json()
const response = await fetch("https://app.emver.io/api/sandbox/v1/account-aggregator", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify({
"mobile": "9999999999",
"purpose": "string",
"from_date": "YYYY-MM-DD",
"to_date": "YYYY-MM-DD"
}),
});
const data = await response.json();
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->post('https://app.emver.io/api/sandbox/v1/account-aggregator', {
"mobile": "9999999999",
"purpose": "string",
"from_date": "YYYY-MM-DD",
"to_date": "YYYY-MM-DD"
});
$data = $response->json();
Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.
Response
Structure · 200
{
"status": INTEGER,
"message": STRING,
"data": {
"consent_id": STRING,
"consent_status": STRING,
"accounts": ARRAY,
"transactions": ARRAY
}
}
Example · 200
{
"status": 200,
"message": "string",
"data": {
"consent_id": "string",
"consent_status": "string",
"accounts": "string",
"transactions": "string"
}
}
Error · 4xx / 5xx
{
"status": INTEGER,
"message": STRING
}
See Errors & status codes for what each status means and which calls are billed.
About this API
Start with the customer's mobile number and the data you need. emver handles the consent artefact, the data fetch and the decryption, and returns normalised transactions, balances and account details ready for Bank Statement Analysis.
Consent. The customer approves the consent request in their Account Aggregator app; the consent artefact is stored with the request.
Typical uses
- Digital lending. Income and obligations from real transactions.
- Wealth and PFM apps. Aggregate balances with consent.
Questions
- Do we need to be a registered FIU?
- Data requests must run under a registered Financial Information User. Talk to your account manager about the onboarding model that fits you.