> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.6mm.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.6mm.com/_mcp/server.

# Razão de contrato

Este guia é dirigido a **Agent Java SDK `v0.3.0`**, Java 8+ e ao contrato público assinalado. Os exemplos são executados num back-end de parceiro após a inicialização de `client` em [Início rápido](/pt-PT/sdk/agent-sdk/java/quick-start).

## Pré-requisitos de exemplo

Os trechos Java partilham estas importações. Inicialize `client` utilizando o Quick Start e obtenha `platformUserId` a partir da ligação guardada. Os exemplos de IDs de utilizador/encomenda devem ser substituídos pelos seus próprios valores persistentes.

```java
import com.sixmm.agent.*;
import com.sixmm.agent.model.*;
import java.util.*;
```

## `listPerpetualLedger`

Modelo de pedido: `PerpetualLedgerRequest`.

```java
import com.sixmm.agent.model.PerpetualLedgerRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;

PerpetualLedgerRequest request = new PerpetualLedgerRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.endTime = System.currentTimeMillis();
request.startTime = request.endTime - 3_600_000L;
PerpetualResponse response = client.listPerpetualLedger(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);
```

### Campos de solicitação

| Campo             | Java tipo                | Obrigatório | Significado                                                                                                                                                          |
| ----------------- | ------------------------ | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `platformUserIds` | `java.util.List<String>` | Condicional | 1–100 IDs públicos exclusivos; necessário para os preenchimentos e pedidos condicionais. Omitir consultas suportadas para o âmbito do player direto; \[] é inválido. |
| `assetType`       | `String`                 | Não         | Classificação dos ativos conforme devolvido pelo razão; não assuma USDT.                                                                                             |
| `changeType`      | `String`                 | Não         | Tipo de mudança de negócio razão, preservando os valores de origem.                                                                                                  |
| `startTime`       | `Long`                   | Não         | Milissegundos Unix inclusivos; utilize uma janela de histórico fixa UTC.                                                                                             |
| `endTime`         | `Long`                   | Não         | Milissegundos Unix exclusivos.                                                                                                                                       |
| `limit`           | `Integer`                | Não         | Padrão 500; 1–1000.                                                                                                                                                  |
| `cursor`          | `String`                 | Não         | Utilize o nextCursor devolvido com filtros inalterados; parar quando hasMore for falso.                                                                              |

O exemplo lê uma página. Para campos obrigatórios, âmbito do leitor, semântica de filtro, limite, cursor e novas tentativas limitadas, siga [Visão geral da consulta](/pt-PT/sdk/agent-sdk/java/perpetual-queries). Mantenha todos os filtros inalterados durante a paginação; não interprete um erro como um resultado vazio.

## Registos do razão de contrato

Interface: `account/ledger`. Os dados devolvidos contêm apenas os 11 campos comerciais seguintes e não transportam os sinalizadores booleanos do pedido.

| Campo `data`          | tipo    | significado                                                                                                                                                                      |
| --------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ledgerId`            | string  | O razão de origem regista o ID da transação; a mesma transação pode ser dividida em vários detalhes                                                                              |
| `symbol`              | string  | Par de negociação relacionado, pode ser omitido se não estiver relacionado                                                                                                       |
| `assetType`           | string  | Tipo de ativo, salvo por valor de origem; utilizado para classificação de ativos, não inferido por defeito USDT                                                                  |
| `changeType`          | string  | Tipo de negócio de mudança de conta, salvo de acordo com o valor de origem, como taxa de manuseio, lucros e perdas, transferência; pode ser filtrado pelo mesmo campo            |
| `amount`              | string  | O valor da alteração deste detalhe, um número positivo indica um aumento, um número negativo indica uma diminuição; a precisão é mantida                                         |
| `walletBalanceBefore` | string  | O saldo da carteira antes da alteração da conta registado neste detalhe                                                                                                          |
| `walletBalanceAfter`  | string  | O saldo da carteira após a alteração da conta registado neste detalhe                                                                                                            |
| `frozenBalanceBefore` | string  | O saldo congelado registado antes da mudança de conta é registado neste detalhe                                                                                                  |
| `frozenBalanceAfter`  | string  | O saldo congelado registado neste detalhe após a mudança de conta                                                                                                                |
| `referenceId`         | string  | Número comercial associado; interpretado como changeType e não pode ser considerado uniformemente como pedido orderId; "0" indica que a fonte não tem um número associado válido |
| `createdAt`           | integer | Hora de criação dos detalhes de alteração da conta, milissegundos; este campo é utilizado para a filtragem de tempo nesta interface                                              |

Utilize o saldo antes e depois da alteração da conta devolvida pela interface. Diferentes changeType têm semânticas diferentes e não se pode assumir que cada valor é igual a walletBalanceAfter - walletBalanceBefore. A exibição/resumo dos registos contabilísticos deve manter o tipo e a identidade detalhada.

Eis um exemplo do formato, usando um ID e um valor fictícios:

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "items": [
      {
        "platformUserId": "1188041528",
        "entityType": "ACCOUNT_LEDGER",
        "entityId": "900001",
        "data": {
          "ledgerId": "ledger-example-001",
          "symbol": "BTCUSDT",
          "assetType": "USDT",
          "changeType": "HANDLING_FEE",
          "amount": "-0.10000000",
          "walletBalanceBefore": "100.00000000",
          "walletBalanceAfter": "99.90000000",
          "frozenBalanceBefore": "0.00000000",
          "frozenBalanceAfter": "0.00000000",
          "referenceId": "800001",
          "createdAt": 1791590400000
        }
      }
    ],
    "nextCursor": "",
    "hasMore": false
  }
}
```

## Exemplo de envelope de resposta

Esta é uma página em branco ilustrativa, não uma amostra de uma negociação concluída. As tabelas de campos específicos de recursos acima descrevem `items[].data` preenchido.

```json
{"code":0,"message":"success","data":{"items":[],"nextCursor":"","hasMore":false}}
```

## Fonte e guias relacionados

* [Fonte oficial v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Visão geral da consulta e paginação](/pt-PT/sdk/agent-sdk/java/perpetual-queries)
* [Carteira de financiamento](/pt-PT/sdk/agent-sdk/java/funding-wallet)
* [Guia de atualização](/pt-PT/sdk/agent-sdk/java/upgrade)