Movements
Use movement history for reconciliation, treasury, and support operations.
Cobru's movements contract still comes from legacy materials. The route shape is promising, but the parameters and response need a fresh verification pass before you depend on them for automated accounting.
Why this page matters
Movement history is a recurring operational requirement across payments, transfers, withdrawals, and cards.
Endpoint pattern
GET /movements/movements_by_types/?{type_req}=true&per_page={number}&page_num={number}
Supported type_req values from Spotlight:
by_cobrusby_withdrawsby_sendsby_other_payments
Send only one type filter at a time.
Example request
curl -G https://dev.cobru.co/movements/movements_by_types/ \
-H "x-api-key: $COBRU_API_KEY" \
-H "Authorization: Bearer $COBRU_ACCESS_TOKEN" \
--data-urlencode "by_cobrus=true" \
--data-urlencode "per_page=10" \
--data-urlencode "page_num=1"const url = new URL('https://dev.cobru.co/movements/movements_by_types/');
url.searchParams.set('by_cobrus', 'true');
url.searchParams.set('per_page', '10');
url.searchParams.set('page_num', '1');
const response = await fetch(url, {
headers: {
'x-api-key': process.env.COBRU_API_KEY!,
Authorization: `Bearer ${accessToken}`,
},
});
const movements = await response.json();
console.log(movements);import requests
response = requests.get(
"https://dev.cobru.co/movements/movements_by_types/",
headers={
"x-api-key": COBRU_API_KEY,
"Authorization": f"Bearer {access_token}",
},
params={
"by_cobrus": "true",
"per_page": 10,
"page_num": 1,
},
)
print(response.json())<?php
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://dev.cobru.co/movements/movements_by_types/', [
'headers' => [
'x-api-key' => getenv('COBRU_API_KEY'),
'Authorization' => 'Bearer ' . $accessToken,
],
'query' => [
'by_cobrus' => 'true',
'per_page' => 10,
'page_num' => 1,
],
]);
$movements = json_decode((string) $response->getBody(), true, 512, JSON_THROW_ON_ERROR);
var_dump($movements);Reconciliation checklist
Persist Cobru webhook payloads first, then process them asynchronously.
Reconcile a movement row with payment or withdrawal identifiers, not only by amount.
Re-run a historical pull when a webhook fails, arrives late, or produces ambiguous state.