Consultar Movimentos
Retorna os movimentos (vendas/transacoes) paginados via cursor, para conciliacao financeira. Documentos de pagadores sao mascarados por seguranca.
WARNING
Este endpoint requer a credencial MOVEMENTS_API habilitada. Caso nao possua, entre em contato com o suporte.
GET /api/movements
Endpoint
GET https://api.divipay.com.br/api/movementsHeaders
| Header | Valor | Obrigatorio |
|---|---|---|
| Authorization | Bearer | Sim |
Query Parameters
| Campo | Tipo | Descricao | Obrigatorio |
|---|---|---|---|
| limit | number | Registros por pagina (1-1000) | Sim |
| initialDate | string | Data inicial (ISO 8601, ex: 2026-01-01) | Sim |
| finalDate | string | Data final (ISO 8601, ex: 2026-01-31) | Sim |
| cursor | string | UUID do ultimo item para paginacao | Nao |
| status | string | Filtrar por status da transacao | Nao |
| type | string | Filtrar por tipo de transacao | Nao |
| terminalId | string | UUID do terminal (maquineta) | Nao |
| transactionCode | string | Codigo da transacao | Nao |
| flagCard | string | Bandeira do cartao | Nao |
| installments | string | Tipo de parcelamento: parceled ou cash | Nao |
TIP
O intervalo entre initialDate e finalDate deve ser de no maximo 90 dias.
Valores de status
| Valor | Descricao |
|---|---|
| PENDING | Pendente |
| APPROVED | Aprovada |
| REJECTED | Rejeitada |
| CANCELED | Cancelada |
| REFUNDED | Estornada |
| PARTIALLY_REFUNDED | Parcialmente estornada |
| CHARGEBACK | Chargeback |
Valores de type
| Valor | Descricao |
|---|---|
| CREDIT_CARD | Cartao de credito |
| DEBIT_CARD | Cartao de debito |
| PIX | Pix |
| CASH | Dinheiro |
| TICKET | Boleto |
Valores de flagCard
| Valor |
|---|
| MASTERCARD |
| VISA |
| VISA_ELECTRON |
| ELO |
| AMEX |
| HIPERCARD |
| DINERS |
| DISCOVER |
| AURA |
| JCB |
| MAESTRO |
| CABAL |
| CREDZ |
| BRASILCARD |
Exemplo de Requisicao
curl -X GET "https://api.divipay.com.br/api/movements?limit=50&initialDate=2026-01-01&finalDate=2026-01-31" \
-H "Authorization: Bearer SEU_TOKEN"const params = new URLSearchParams({
limit: '50',
initialDate: '2026-01-01',
finalDate: '2026-01-31'
});
const response = await fetch(`https://api.divipay.com.br/api/movements?${params}`, {
headers: {
'Authorization': 'Bearer SEU_TOKEN'
}
});
const data = await response.json();
console.log('Movimentos:', data.data);
console.log('Tem mais?', data.hasMore);import requests
response = requests.get(
'https://api.divipay.com.br/api/movements',
params={
'limit': 50,
'initialDate': '2026-01-01',
'finalDate': '2026-01-31'
},
headers={
'Authorization': 'Bearer SEU_TOKEN'
}
)
data = response.json()
print(f"Movimentos: {len(data['data'])}")
print(f"Tem mais: {data['hasMore']}")<?php
$query = http_build_query([
'limit' => 50,
'initialDate' => '2026-01-01',
'finalDate' => '2026-01-31'
]);
$ch = curl_init("https://api.divipay.com.br/api/movements?{$query}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer SEU_TOKEN'
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
echo 'Total: ' . count($data['data']);
?>Paginacao com Cursor
Para buscar a proxima pagina, use o nextCursor retornado na resposta anterior:
curl -X GET "https://api.divipay.com.br/api/movements?limit=50&initialDate=2026-01-01&finalDate=2026-01-31&cursor=UUID_DO_ULTIMO_ITEM" \
-H "Authorization: Bearer SEU_TOKEN"Continue buscando ate que hasMore retorne false.
Resposta de Sucesso
Status: 200 OK
{
"data": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"transactionCode": "TXN-123456",
"date": "2026-01-15T14:30:00.000Z",
"amount": 150.00,
"amountLiquid": 145.50,
"taxes": 4.50,
"type": "CREDIT_CARD",
"status": "APPROVED",
"terminalNumber": "T001",
"flagCard": "VISA",
"installmentCount": 3,
"nsu": "123456789",
"authorizationCode": "AUTH123",
"payerName": "Joao da Silva",
"payerDocument": "***.456.789-**"
}
],
"nextCursor": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"hasMore": true
}| Campo | Tipo | Descricao |
|---|---|---|
| data | array | Lista de movimentos |
| data[].id | string | UUID do movimento |
| data[].transactionCode | string | Codigo da transacao |
| data[].date | string | Data/hora da transacao (ISO 8601) |
| data[].amount | number | Valor bruto |
| data[].amountLiquid | number | Valor liquido |
| data[].taxes | number | Total de taxas |
| data[].type | string | Tipo da transacao |
| data[].status | string | Status da transacao |
| data[].terminalNumber | string | null | Numero do terminal |
| data[].flagCard | string | null | Bandeira do cartao |
| data[].installmentCount | number | null | Numero de parcelas |
| data[].nsu | string | null | NSU da transacao |
| data[].authorizationCode | string | null | Codigo de autorizacao |
| data[].payerName | string | null | Nome do pagador |
| data[].payerDocument | string | null | Documento mascarado do pagador |
| nextCursor | string | null | Cursor para proxima pagina |
| hasMore | boolean | Se existem mais registros |
TIP
Os documentos dos pagadores (CPF/CNPJ) sao retornados parcialmente mascarados para protecao de dados:
- CPF:
***.456.789-** - CNPJ:
**.345.678/0001-**
Respostas de Erro
401 Unauthorized
Token invalido ou expirado.
403 Forbidden
Sem permissao para acessar este recurso ou IP nao autorizado.
{
"statusCode": 403,
"message": "Forbidden resource"
}429 Too Many Requests
Limite de requisicoes simultaneas excedido. Aguarde a requisicao anterior finalizar antes de enviar uma nova.
{
"statusCode": 429,
"message": "Too many concurrent requests. Please wait for the previous request to complete."
}