curl --request GET \
--url https://api.malvo.io/v2/transactions \
--header 'X-API-KEY: <api-key>'const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.malvo.io/v2/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.malvo.io/v2/transactions"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.malvo.io/v2/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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;
}{
"results": [
{
"id": "a8534c85-53ce-4f21-94d7-50e9d2ee4957",
"description": "* PROV * COMPRA TESOURO DIRETO CLIENTES",
"descriptionRaw": "* PROV * COMPRA TESOURO DIRETO CLIENTES",
"currencyCode": "BRL",
"amount": -212.45,
"date": "2020-10-15T00:00:00.000Z",
"balance": 4439.4,
"category": "Fixed Income Investment",
"accountId": "562b795d-1653-429f-be86-74ead9502813",
"providerCode": null,
"status": "POSTED",
"paymentData": null,
"type": "DEBIT",
"providerId": null
}
],
"next": "?accountId=562b795d-1653-429f-be86-74ead9502813&after=MjAyMC0xMC0xNVQwMDowMDowMC4wMDBafGE4NTM0Yzg1LTUzY2UtNGYyMS05NGQ3LTUwZTlkMmVlNDk1Nw=="
}Listar transações (cursor-based, atual)
Endpoint atual. Lista as transações de uma conta usando paginação por cursor. Não há parâmetro pageSize: o servidor controla o tamanho da página (500 por página). Continue requisitando com a query string retornada em next (ou extraia o after) até que next seja null. O cursor codifica date|id da última linha (base64) — trate-o como opaco.
Filtra por accountId (obrigatório) — não há filtro por itemId. dateFrom não pode ser combinado com createdAtFrom. Cobre até 12 meses de histórico.
curl --request GET \
--url https://api.malvo.io/v2/transactions \
--header 'X-API-KEY: <api-key>'const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.malvo.io/v2/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.malvo.io/v2/transactions"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.malvo.io/v2/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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;
}{
"results": [
{
"id": "a8534c85-53ce-4f21-94d7-50e9d2ee4957",
"description": "* PROV * COMPRA TESOURO DIRETO CLIENTES",
"descriptionRaw": "* PROV * COMPRA TESOURO DIRETO CLIENTES",
"currencyCode": "BRL",
"amount": -212.45,
"date": "2020-10-15T00:00:00.000Z",
"balance": 4439.4,
"category": "Fixed Income Investment",
"accountId": "562b795d-1653-429f-be86-74ead9502813",
"providerCode": null,
"status": "POSTED",
"paymentData": null,
"type": "DEBIT",
"providerId": null
}
],
"next": "?accountId=562b795d-1653-429f-be86-74ead9502813&after=MjAyMC0xMC0xNVQwMDowMDowMC4wMDBafGE4NTM0Yzg1LTUzY2UtNGYyMS05NGQ3LTUwZTlkMmVlNDk1Nw=="
}Authorizations
Chave de API da aplicação. Obrigatória em todos os endpoints. Renove via POST /auth.
Query Parameters
Identificador primário da conta.
Lista de ids de transação separados por vírgula. Máximo de 500 ids por requisição.
Transações com date >= dateFrom (inclusive). Formato yyyy-mm-dd. Não pode ser combinado com createdAtFrom.
Transações com date <= dateTo (inclusive). Formato yyyy-mm-dd.
Filtra por horário de ingestão (createdAt) — use para sincronização incremental. Formato yyyy-mm-ddThh:mm:ss.000Z.
Cursor opaco obtido do campo next da resposta anterior.
Response
Página de transações com cursor para a próxima página.
Envelope de paginação por cursor (somente GET /v2/transactions). Continue requisitando com a query string de next até que seja null.
Lista de transações desta página.
Show child attributes
Show child attributes
Query string pronta para anexar (começa com ?) contendo accountId e o cursor opaco after. null quando não há mais resultados.
"?accountId=562b795d-1653-429f-be86-74ead9502813&after=MjAyMC0xMC0xNVQwMDowMDowMC4wMDBafGE4NTM0Yzg1LTUzY2UtNGYyMS05NGQ3LTUwZTlkMmVlNDk1Nw=="