Skip to content

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/movements

Headers

HeaderValorObrigatorio
AuthorizationBearerSim

Query Parameters

CampoTipoDescricaoObrigatorio
limitnumberRegistros por pagina (1-1000)Sim
initialDatestringData inicial (ISO 8601, ex: 2026-01-01)Sim
finalDatestringData final (ISO 8601, ex: 2026-01-31)Sim
cursorstringUUID do ultimo item para paginacaoNao
statusstringFiltrar por status da transacaoNao
typestringFiltrar por tipo de transacaoNao
terminalIdstringUUID do terminal (maquineta)Nao
transactionCodestringCodigo da transacaoNao
flagCardstringBandeira do cartaoNao
installmentsstringTipo de parcelamento: parceled ou cashNao

TIP

O intervalo entre initialDate e finalDate deve ser de no maximo 90 dias.

Valores de status

ValorDescricao
PENDINGPendente
APPROVEDAprovada
REJECTEDRejeitada
CANCELEDCancelada
REFUNDEDEstornada
PARTIALLY_REFUNDEDParcialmente estornada
CHARGEBACKChargeback

Valores de type

ValorDescricao
CREDIT_CARDCartao de credito
DEBIT_CARDCartao de debito
PIXPix
CASHDinheiro
TICKETBoleto

Valores de flagCard

Valor
MASTERCARD
VISA
VISA_ELECTRON
ELO
AMEX
HIPERCARD
DINERS
DISCOVER
AURA
JCB
MAESTRO
CABAL
CREDZ
BRASILCARD

Exemplo de Requisicao

bash
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"
javascript
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);
python
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
<?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:

bash
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

json
{
  "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
}
CampoTipoDescricao
dataarrayLista de movimentos
data[].idstringUUID do movimento
data[].transactionCodestringCodigo da transacao
data[].datestringData/hora da transacao (ISO 8601)
data[].amountnumberValor bruto
data[].amountLiquidnumberValor liquido
data[].taxesnumberTotal de taxas
data[].typestringTipo da transacao
data[].statusstringStatus da transacao
data[].terminalNumberstring | nullNumero do terminal
data[].flagCardstring | nullBandeira do cartao
data[].installmentCountnumber | nullNumero de parcelas
data[].nsustring | nullNSU da transacao
data[].authorizationCodestring | nullCodigo de autorizacao
data[].payerNamestring | nullNome do pagador
data[].payerDocumentstring | nullDocumento mascarado do pagador
nextCursorstring | nullCursor para proxima pagina
hasMorebooleanSe 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.

json
{
  "statusCode": 403,
  "message": "Forbidden resource"
}

429 Too Many Requests

Limite de requisicoes simultaneas excedido. Aguarde a requisicao anterior finalizar antes de enviar uma nova.

json
{
  "statusCode": 429,
  "message": "Too many concurrent requests. Please wait for the previous request to complete."
}

Documentação da API DiviPay