curl --request POST \
--url https://api.malvo.io/book \
--header 'X-API-KEY: <api-key>'const options = {method: 'POST', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.malvo.io/book', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.malvo.io/book"
headers = {"X-API-KEY": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.malvo.io/book",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}[
{
"itemId": "a0922d6f-2007-4169-a181-b961500608db",
"bankAccount": {
"M1": {
"count": 42,
"amount": 12345.67,
"avg": 293.94,
"min": 1,
"max": 1200,
"creditDebitRatio": 0.8,
"categories": {
"Transfers": 5230.5,
"Third-party transfers": 1200,
"Credit-card fees": 89.9,
"Uncategorized": 410.2
},
"byDate": {
"1-5": 6,
"6-10": 8,
"11-15": 7,
"16-20": 5,
"21-25": 9,
"26-31": 7
},
"byAmount": {
"0-50": 12,
"50-100": 9,
"100-500": 14,
"500-1000": 4,
"1000-50000": 3,
"50000-MAX": 0
},
"bySubtype": {
"CHECKING_ACCOUNT": 11800.47,
"SAVINGS_ACCOUNT": 545.2
},
"byType": {
"CREDIT": 6890.3,
"DEBIT": 5455.37
}
},
"M3": {
"count": 128,
"amount": 37210.11,
"avg": 290.7,
"min": 1,
"max": 4200,
"creditDebitRatio": 0.92,
"categories": {
"Transfers": 15800.1,
"Uncategorized": 980.4
},
"byDate": {
"1-5": 20,
"6-10": 22,
"11-15": 21,
"16-20": 18,
"21-25": 25,
"26-31": 22
},
"byAmount": {
"0-50": 38,
"50-100": 27,
"100-500": 41,
"500-1000": 12,
"1000-50000": 10,
"50000-MAX": 0
},
"bySubtype": {
"CHECKING_ACCOUNT": 35100,
"SAVINGS_ACCOUNT": 2110.11
},
"byType": {
"CREDIT": 19200.5,
"DEBIT": 18009.61
}
},
"M12": {
"count": 503,
"amount": 148922.4,
"avg": 296.07,
"min": 1,
"max": 12000,
"creditDebitRatio": 0.97,
"categories": {
"Transfers": 62000,
"Uncategorized": 3120.5
},
"byDate": {
"1-5": 80,
"6-10": 86,
"11-15": 83,
"16-20": 79,
"21-25": 90,
"26-31": 85
},
"byAmount": {
"0-50": 150,
"50-100": 110,
"100-500": 160,
"500-1000": 45,
"1000-50000": 38,
"50000-MAX": 0
},
"bySubtype": {
"CHECKING_ACCOUNT": 140000,
"SAVINGS_ACCOUNT": 8922.4
},
"byType": {
"CREDIT": 75500,
"DEBIT": 73422.4
}
},
"allTime": {
"count": 1290,
"amount": 402311.88,
"avg": 311.87,
"min": 1,
"max": 25000,
"creditDebitRatio": 1.01,
"categories": {
"Transfers": 180000,
"Uncategorized": 9800.2
},
"byDate": {
"1-5": 205,
"6-10": 218,
"11-15": 212,
"16-20": 201,
"21-25": 230,
"26-31": 224
},
"byAmount": {
"0-50": 380,
"50-100": 280,
"100-500": 410,
"500-1000": 120,
"1000-50000": 100,
"50000-MAX": 0
},
"bySubtype": {
"CHECKING_ACCOUNT": 380000,
"SAVINGS_ACCOUNT": 22311.88
},
"byType": {
"CREDIT": 203000,
"DEBIT": 199311.88
}
}
},
"creditCard": {
"M1": {
"count": 18,
"amount": 4210.55,
"avg": 233.92,
"min": 9.9,
"max": 980,
"creditDebitRatio": 0,
"categories": {
"Eating out": 1200.3,
"Video streaming": 58,
"Uncategorized": 210
},
"byDate": {
"1-5": 3,
"6-10": 4,
"11-15": 2,
"16-20": 3,
"21-25": 4,
"26-31": 2
},
"byAmount": {
"0-50": 8,
"50-100": 4,
"100-500": 5,
"500-1000": 1,
"1000-50000": 0,
"50000-MAX": 0
},
"bySubtype": {
"CREDIT_CARD": 4210.55
},
"byType": {
"DEBIT": 4210.55,
"CREDIT": 0
}
},
"M3": {
"count": 51,
"amount": 12880,
"avg": 252.55,
"min": 9.9,
"max": 1500,
"creditDebitRatio": 0,
"categories": {
"Eating out": 3400,
"Uncategorized": 620
},
"byDate": {
"1-5": 9,
"6-10": 10,
"11-15": 8,
"16-20": 7,
"21-25": 9,
"26-31": 8
},
"byAmount": {
"0-50": 22,
"50-100": 12,
"100-500": 14,
"500-1000": 2,
"1000-50000": 1,
"50000-MAX": 0
},
"bySubtype": {
"CREDIT_CARD": 12880
},
"byType": {
"DEBIT": 12880,
"CREDIT": 0
}
},
"M12": {
"count": 205,
"amount": 51200,
"avg": 249.76,
"min": 5.5,
"max": 3200,
"creditDebitRatio": 0,
"categories": {
"Eating out": 13800,
"Uncategorized": 2400
},
"byDate": {
"1-5": 34,
"6-10": 36,
"11-15": 33,
"16-20": 32,
"21-25": 36,
"26-31": 34
},
"byAmount": {
"0-50": 90,
"50-100": 48,
"100-500": 55,
"500-1000": 8,
"1000-50000": 4,
"50000-MAX": 0
},
"bySubtype": {
"CREDIT_CARD": 51200
},
"byType": {
"DEBIT": 51200,
"CREDIT": 0
}
},
"allTime": {
"count": 540,
"amount": 138900,
"avg": 257.22,
"min": 5.5,
"max": 6800,
"creditDebitRatio": 0,
"categories": {
"Eating out": 37000,
"Uncategorized": 6100
},
"byDate": {
"1-5": 88,
"6-10": 92,
"11-15": 86,
"16-20": 84,
"21-25": 95,
"26-31": 95
},
"byAmount": {
"0-50": 230,
"50-100": 130,
"100-500": 150,
"500-1000": 20,
"1000-50000": 10,
"50000-MAX": 0
},
"bySubtype": {
"CREDIT_CARD": 138900
},
"byType": {
"DEBIT": 138900,
"CREDIT": 0
}
}
}
}
]{
"code": 500,
"codeDescription": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}{
"code": 500,
"codeDescription": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}{
"code": 500,
"codeDescription": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}{
"code": 500,
"codeDescription": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}Gerar Item Insights
Retorna KPIs agregados e pré-computados por item e por classe de conta. Computa fluxo de caixa (débitos vs. créditos), distribuições de contagem de transações por faixa de data-do-mês (1-5, 6-10, 11-15, 16-20, 21-25, 26-31) e por faixa de valor (0-50, 50-100, … até 50000-MAX), razão crédito/débito (creditDebitRatio), média/mínimo/máximo de valor, breakdown por categoria e breakdown por subtipo de conta (SAVINGS_ACCOUNT vs. CHECKING_ACCOUNT). Os KPIs são entregues nas janelas temporais M1, M3, M12 e allTime. O parâmetro itemIds aceita um ou mais ids de item (CSV); a resposta agrupa os insights por item e por classe de conta (bankAccount, creditCard). Recomputado quando o item é re-sincronizado — chame novamente após uma sincronização.
curl --request POST \
--url https://api.malvo.io/book \
--header 'X-API-KEY: <api-key>'const options = {method: 'POST', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.malvo.io/book', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.malvo.io/book"
headers = {"X-API-KEY": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.malvo.io/book",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}[
{
"itemId": "a0922d6f-2007-4169-a181-b961500608db",
"bankAccount": {
"M1": {
"count": 42,
"amount": 12345.67,
"avg": 293.94,
"min": 1,
"max": 1200,
"creditDebitRatio": 0.8,
"categories": {
"Transfers": 5230.5,
"Third-party transfers": 1200,
"Credit-card fees": 89.9,
"Uncategorized": 410.2
},
"byDate": {
"1-5": 6,
"6-10": 8,
"11-15": 7,
"16-20": 5,
"21-25": 9,
"26-31": 7
},
"byAmount": {
"0-50": 12,
"50-100": 9,
"100-500": 14,
"500-1000": 4,
"1000-50000": 3,
"50000-MAX": 0
},
"bySubtype": {
"CHECKING_ACCOUNT": 11800.47,
"SAVINGS_ACCOUNT": 545.2
},
"byType": {
"CREDIT": 6890.3,
"DEBIT": 5455.37
}
},
"M3": {
"count": 128,
"amount": 37210.11,
"avg": 290.7,
"min": 1,
"max": 4200,
"creditDebitRatio": 0.92,
"categories": {
"Transfers": 15800.1,
"Uncategorized": 980.4
},
"byDate": {
"1-5": 20,
"6-10": 22,
"11-15": 21,
"16-20": 18,
"21-25": 25,
"26-31": 22
},
"byAmount": {
"0-50": 38,
"50-100": 27,
"100-500": 41,
"500-1000": 12,
"1000-50000": 10,
"50000-MAX": 0
},
"bySubtype": {
"CHECKING_ACCOUNT": 35100,
"SAVINGS_ACCOUNT": 2110.11
},
"byType": {
"CREDIT": 19200.5,
"DEBIT": 18009.61
}
},
"M12": {
"count": 503,
"amount": 148922.4,
"avg": 296.07,
"min": 1,
"max": 12000,
"creditDebitRatio": 0.97,
"categories": {
"Transfers": 62000,
"Uncategorized": 3120.5
},
"byDate": {
"1-5": 80,
"6-10": 86,
"11-15": 83,
"16-20": 79,
"21-25": 90,
"26-31": 85
},
"byAmount": {
"0-50": 150,
"50-100": 110,
"100-500": 160,
"500-1000": 45,
"1000-50000": 38,
"50000-MAX": 0
},
"bySubtype": {
"CHECKING_ACCOUNT": 140000,
"SAVINGS_ACCOUNT": 8922.4
},
"byType": {
"CREDIT": 75500,
"DEBIT": 73422.4
}
},
"allTime": {
"count": 1290,
"amount": 402311.88,
"avg": 311.87,
"min": 1,
"max": 25000,
"creditDebitRatio": 1.01,
"categories": {
"Transfers": 180000,
"Uncategorized": 9800.2
},
"byDate": {
"1-5": 205,
"6-10": 218,
"11-15": 212,
"16-20": 201,
"21-25": 230,
"26-31": 224
},
"byAmount": {
"0-50": 380,
"50-100": 280,
"100-500": 410,
"500-1000": 120,
"1000-50000": 100,
"50000-MAX": 0
},
"bySubtype": {
"CHECKING_ACCOUNT": 380000,
"SAVINGS_ACCOUNT": 22311.88
},
"byType": {
"CREDIT": 203000,
"DEBIT": 199311.88
}
}
},
"creditCard": {
"M1": {
"count": 18,
"amount": 4210.55,
"avg": 233.92,
"min": 9.9,
"max": 980,
"creditDebitRatio": 0,
"categories": {
"Eating out": 1200.3,
"Video streaming": 58,
"Uncategorized": 210
},
"byDate": {
"1-5": 3,
"6-10": 4,
"11-15": 2,
"16-20": 3,
"21-25": 4,
"26-31": 2
},
"byAmount": {
"0-50": 8,
"50-100": 4,
"100-500": 5,
"500-1000": 1,
"1000-50000": 0,
"50000-MAX": 0
},
"bySubtype": {
"CREDIT_CARD": 4210.55
},
"byType": {
"DEBIT": 4210.55,
"CREDIT": 0
}
},
"M3": {
"count": 51,
"amount": 12880,
"avg": 252.55,
"min": 9.9,
"max": 1500,
"creditDebitRatio": 0,
"categories": {
"Eating out": 3400,
"Uncategorized": 620
},
"byDate": {
"1-5": 9,
"6-10": 10,
"11-15": 8,
"16-20": 7,
"21-25": 9,
"26-31": 8
},
"byAmount": {
"0-50": 22,
"50-100": 12,
"100-500": 14,
"500-1000": 2,
"1000-50000": 1,
"50000-MAX": 0
},
"bySubtype": {
"CREDIT_CARD": 12880
},
"byType": {
"DEBIT": 12880,
"CREDIT": 0
}
},
"M12": {
"count": 205,
"amount": 51200,
"avg": 249.76,
"min": 5.5,
"max": 3200,
"creditDebitRatio": 0,
"categories": {
"Eating out": 13800,
"Uncategorized": 2400
},
"byDate": {
"1-5": 34,
"6-10": 36,
"11-15": 33,
"16-20": 32,
"21-25": 36,
"26-31": 34
},
"byAmount": {
"0-50": 90,
"50-100": 48,
"100-500": 55,
"500-1000": 8,
"1000-50000": 4,
"50000-MAX": 0
},
"bySubtype": {
"CREDIT_CARD": 51200
},
"byType": {
"DEBIT": 51200,
"CREDIT": 0
}
},
"allTime": {
"count": 540,
"amount": 138900,
"avg": 257.22,
"min": 5.5,
"max": 6800,
"creditDebitRatio": 0,
"categories": {
"Eating out": 37000,
"Uncategorized": 6100
},
"byDate": {
"1-5": 88,
"6-10": 92,
"11-15": 86,
"16-20": 84,
"21-25": 95,
"26-31": 95
},
"byAmount": {
"0-50": 230,
"50-100": 130,
"100-500": 150,
"500-1000": 20,
"1000-50000": 10,
"50000-MAX": 0
},
"bySubtype": {
"CREDIT_CARD": 138900
},
"byType": {
"DEBIT": 138900,
"CREDIT": 0
}
}
}
}
]{
"code": 500,
"codeDescription": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}{
"code": 500,
"codeDescription": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}{
"code": 500,
"codeDescription": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}{
"code": 500,
"codeDescription": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}Authorizations
Chave de API obrigatória em todas as operações.
Query Parameters
Lista de ids de item separados por vírgula (1 ou mais). Ex.: a0922d6f-2007-4169-a181-b961500608db,207f5bcd-312a-439c-abbe-166b6632c980.
Response
Array de insights agregados, um objeto ItemInsights por itemId solicitado.