Pular para o conteúdo

Vários endpoints da API do Payments Direct retornam resultados paginados quando uma lista pode conter muitos registros. A API usa dois estilos de paginação, conforme o endpoint:

  • Paginação baseada em token para identidades, instrumentos financeiros e busca de pagamentos. A resposta inclui um valor opaco de nextToken que você informa para recuperar a próxima página.
  • Paginação por offset para transações de ledger. Você especifica o índice do registro inicial (offset) e o número de registros a retornar (page-size).

A tabela abaixo resume qual estilo se aplica a cada endpoint paginado.

EndpointEstiloParâmetro de tamanho da páginaPadrãoMáximo
GET /v3/identitiesBaseada em tokenlimit10100
GET /v3/identities/{identity-id}/financial-instrumentsBaseada em tokenlimit10100
POST /v3/payments/filterBaseada em token (corpo da requisição)page.size20100
GET /v2/ledger-transactionsPor offsetpage-size2550

Paginação baseada em token

A paginação baseada em token usa um token de string opaco para marcar a sua posição em um conjunto de resultados. Quando a API retorna um nextToken na resposta, há mais resultados disponíveis. Quando o nextToken está ausente, você chegou à última página.

Os tokens são opacos e podem mudar entre releases. Não tente decodificar, interpretar nem construir valores de token.

Identidades e instrumentos financeiros

Em GET /v3/identities e GET /v3/identities/{identity-id}/financial-instruments, informe os parâmetros de paginação como parâmetros de consulta.

Parâmetros da requisição:

ParâmetroTipoObrigatórioDescrição
limitintegerNãoNúmero máximo de registros a retornar. O padrão é 10 e o máximo é 100.
next-tokenstringNãoToken opaco retornado pela resposta anterior. Omita este parâmetro para começar do início.

Exemplo: primeira página

curl -X GET "https://{base-url}/v3/identities?limit=25" \
  -H "Authorization: Bearer <access_token>"

Exemplo de resposta (há mais páginas disponíveis):

{
  "data": [
    { "identityId": "abc123", "identityType": "INDIVIDUAL", "..." },
    { "..." }
  ],
  "nextToken": "eyJrZXkxIjoidmFsdWUifQ=="
}

Exemplo: página seguinte

curl -X GET "https://{base-url}/v3/identities?limit=25&next-token=eyJrZXkxIjoidmFsdWUifQ==" \
  -H "Authorization: Bearer <access_token>"

Quando a resposta não inclui o campo nextToken, você já recuperou todos os registros disponíveis.


Busca de pagamentos

O endpoint POST /v3/payments/filter usa paginação baseada em token, mas os parâmetros de paginação são informados no corpo da requisição, e não como parâmetros de consulta.

Campos de paginação do corpo da requisição:

CampoTipoObrigatórioDescrição
page.sizeintegerNãoNúmero de pagamentos a retornar por página. O padrão é 20 e o máximo é 100.
page.lastPageTokenstringNãoToken retornado na resposta anterior. Omita para recuperar a primeira página.

Exemplo: primeira página

curl -X POST "https://{base-url}/v3/payments/filter" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {
      "paymentStates": ["COMPLETED"]
    },
    "sort": {
      "sortField": "CREATED_AT",
      "sortDirection": "DESC"
    },
    "page": {
      "size": 20
    }
  }'

Exemplo de resposta (há mais páginas disponíveis):

{
  "data": [ { "..." } ],
  "filter": { "..." },
  "sort": { "..." },
  "page": {
    "size": 20,
    "lastPageToken": "eyJsYXN0SWQiOiJhYmMxMjMifQ=="
  }
}

Exemplo: página seguinte

Inclua o valor de lastPageToken da resposta anterior no corpo da próxima requisição:

{
  "page": {
    "size": 20,
    "lastPageToken": "eyJsYXN0SWQiOiJhYmMxMjMifQ=="
  }
}

Quando a resposta não inclui o campo page.lastPageToken, você já recuperou todos os pagamentos correspondentes.


Paginação por offset

O endpoint GET /v2/ledger-transactions usa paginação por offset. Você controla a janela de resultados com dois parâmetros: page-size (quantos registros retornar) e offset (quantos registros pular).

Parâmetros da requisição:

ParâmetroTipoObrigatórioDescrição
page-sizeintegerSimNúmero de registros a retornar. O padrão é 25 e o máximo é 50.
offsetintegerNãoNúmero de registros a pular antes de retornar resultados. O padrão é 0 (começa do início).

A resposta inclui um campo total com a contagem geral de registros correspondentes. Use total, pageSize e pageElements para determinar se existem páginas adicionais.

Campos da resposta:

CampoTipoDescrição
totalintegerNúmero total de registros que correspondem aos filtros da requisição.
pageSizeintegerNúmero de registros solicitados por página (reflete o parâmetro page-size).
pageElementsintegerNúmero de registros efetivamente retornados nesta resposta.
offsetintegerNúmero de registros pulados (reflete o parâmetro offset).

Exemplo: primeira página

curl -X GET "https://{base-url}/v2/ledger-transactions?currency=USD&start-dttm=2026-01-01T00:00:00Z&end-dttm=2026-01-31T23:59:59Z&page-size=25" \
  -H "Authorization: Bearer <access_token>"

Exemplo de resposta:

{
  "offset": 0,
  "pageSize": 25,
  "pageElements": 25,
  "total": 83,
  "statementTransactions": [ { "..." } ]
}

Exemplo: segunda página

Com total=83 e pageSize=25, a segunda página começa em offset=25:

curl -X GET "https://{base-url}/v2/ledger-transactions?currency=USD&start-dttm=2026-01-01T00:00:00Z&end-dttm=2026-01-31T23:59:59Z&page-size=25&offset=25" \
  -H "Authorization: Bearer <access_token>"

Você recuperou todos os registros quando offset + pageElements >= total.


Boas práticas

Use o tamanho máximo de página em recuperações em massa. Quando o seu objetivo é recuperar todos os registros (por exemplo, para conciliação), defina limit ou page-size no valor máximo permitido para reduzir o número de requisições.

Verifique a ausência do nextToken, não o valor dele. Nos endpoints baseados em token, o sinal correto de que você chegou à última página é a ausência de nextToken (ou de page.lastPageToken) na resposta, e não um valor de token específico.

Não modifique nem construa tokens. Os tokens são opacos. Uma lógica que interprete ou concatene valores de token vai quebrar quando o formato do token mudar.

Considere os registros adicionados durante a recuperação. A paginação por offset sobre um conjunto de resultados que muda ativamente pode gerar lacunas ou duplicatas. Em transações de ledger, use um intervalo de tempo fixo (start-dttm e end-dttm) para garantir que o conjunto de resultados não mude enquanto você pagina por ele.

Não armazene tokens em cache entre sessões. Os tokens são válidos apenas na sessão em que foram emitidos. Sempre inicie uma nova sequência de paginação para cada novo trabalho de recuperação.