# Transações

## Resumo

API responsável por monitorar o recurso de transações feitas dentro do sistema. Ela possui status pré-definidos de acordo com uma progressão cronológica e casos de cancelamento e retentativas devido à qualquer tipo de instabilidade.

#### Como funciona

<table><thead><tr><th width="233">Nome</th><th>Descrição</th></tr></thead><tbody><tr><td><mark style="color:purple;"><code>opened_order</code></mark></td><td>Quando um usuário inicia uma solicitação de compra ou venda, é criado um Pedido com o status <mark style="color:purple;"><code>opened_order</code></mark>.</td></tr><tr><td><mark style="color:blue;"><code>pending_payment</code></mark></td><td>Ao selecionar o meio de pagamento e gerar a solicitação de pagamento, o status do Pedido é alterado para <mark style="color:blue;"><code>pending_payment</code></mark>.</td></tr><tr><td><mark style="color:blue;"><code>processing_payment</code></mark></td><td>Ao ser reconhecido o pagamento por meio do gateway, a ordem é processada e aguarda o retorno do gateway para o recolhimento do valor pago, identificado pelo status <mark style="color:blue;"><code>processing_payment</code></mark>.</td></tr><tr><td><mark style="color:green;"><code>approved_payment</code></mark></td><td>Aprovado e recebido o pagamento, o status do pedido é alterado para <mark style="color:green;"><code>approved_payment</code></mark> e é iniciado o processo de envio do token.</td></tr><tr><td><mark style="color:blue;"><code>queue_send_token</code></mark></td><td>Quando o token entra na fila para ser mintado/transferido, ele recebe o status <mark style="color:blue;"><code>queue_send_token</code></mark>.</td></tr><tr><td><mark style="color:green;"><code>success_send_token</code></mark></td><td>Quando o token foi devidamente enviado ao seu destinatário, o fluxo de compra termina com o status <mark style="color:green;"><code>success_send_token</code></mark>.</td></tr><tr><td><mark style="color:orange;"><code>failed</code></mark></td><td>Caso haja falha em algum dos passos anteriores, o status <mark style="color:orange;"><code>failed</code></mark> é aplicado e o pedido entra em uma fila de retentativas.</td></tr><tr><td><mark style="color:red;"><code>cancelled</code></mark></td><td>Caso o numero de retentativas em algum dos status seja maior que o estipulado ou, em caso de leilões, quando o lance dado é superado por outro, o envio do token é cancelado, seguindo o fluxo com o status <mark style="color:red;"><code>cancelled</code></mark>.</td></tr><tr><td><mark style="color:green;"><code>refounded</code></mark></td><td>Caso o cancelamento de um pedido ocorra antes do envio do Token com sucesso para seu comprador, o pagamento do mesmo será estornado para a origem e resultará no status de <mark style="color:green;"><code>refounded</code></mark>.</td></tr></tbody></table>

### Objeto Transaction

<details>

<summary>Exemplo de um Objeto de Transação</summary>

```javascript
 "transactions": [
    {
       "id":"sef897sef",
       "userId": "w87d9a45fs",
       "item":{
          "tokenId": "f79sef456",
          "collectionId": "78sefd2s",
          "companyId": "789wease1f"
       },
       "operation": {
          "type": "buy",
          "from": "0x00001",
          "to": "0x01000"
       },
       "transactionHash": "ed784fes48es4f1fes8",
       "payment":{
          "price": "120",
          "decimals": "2"
          "currency": "ETH",
          "method": "pix",
          "priceInBrl": "685020", 
          "expiration": "05/05/2020 18:20:25"
       },
       "lastStatus": "success_send_token",
       "historyStatus": [
          {
             "date" : "05/05/2020 18:15:20",
             "status": "opened_order",
             "retries": null,
             "error": null
          },
          {
             "date" : "05/05/2020 18:15:25",
             "status": "pending_payment",
             "retries": null,
             "error": null
          },
          {
             "date" : "05/05/2020 18:17:05",
             "status": "processing_payment",
             "retries": null,
             "error": null
          },
          {
             "date" : "05/05/2020 18:17:25",
             "status": "approved_payment",
             "retries": null,
             "error": null     
          },
          {
             "date" : "05/05/2020 18:17:45",
             "status": "queue_send_token",
             "retries": null,
             "error": null
          },
          {
             "date" : "05/05/2020 18:18:30",
             "status": "success_send_token",
             "retries": null,
             "error": null         
          }
       ]
     }
  ]
}
```

</details>

### Endpoints

* **GET** /v1/transactions
* **POST** /v1/transactions
* **GET** /v1/transactions/:transactionId
* **PATCH** /v1/transactions/:transactionId

### Transações

## (JWT) Lista as transações recentes do usuário logado

<mark style="color:blue;">`GET`</mark> `https://goblockchain.io/gotokens-api/v1/transactions`

Lista informações básicas das transações recentes do usuário logado.

Nível de permissionamento necessário: qualquer

#### Query Parameters

| Name       | Type   | Description                                    |
| ---------- | ------ | ---------------------------------------------- |
| limit      | String | Limite de resultados da busca                  |
| offset     | String | Quantidade de resultados para avançar da busca |
| lastStatus | String | Último status da transação                     |

#### Headers

| Name                                            | Type   | Description |
| ----------------------------------------------- | ------ | ----------- |
| authorization<mark style="color:red;">\*</mark> | Bearer | JWT         |

{% tabs %}
{% tab title="200: OK " %}
{% tabs %}
{% tab title="Exemplo de Resposta" %}

```javascript
{
    "transactions": [
    {
      "id":"wda8971da3w2"
      "item":{
        "tokenId": "8wad12wa3ds",
        "communityId": "8f7es7fs65",
        "companyId": "ef7sef5sef"
      },
      "operation":{
         "type": "buy",
      },
      "payment": {
        "price": "120",
        "decimals": "2",
        "currency": "ETH",
        "method": "pix",
      }
      "lastStatus": "success_send_token"
    },
    {
      "id":"2"
      "item":{
        "tokenId": "ferswad85f8",
        "communityId": "8f7es7fs65",
        "companyId": "ef7sef5sef"
      },
      "operation":{
         "type": "sell",
      },
      "payment": {
        "price": "70",
        "decimals": "2",
        "currency": "MATIC",
        "method": "credit_card",
      }
      "lastStatus": "processing_payment"
    },
  ]
}
```

{% endtab %}

{% tab title="Campos de Resposta" %}

* **`id`** *- String*

  Identificador único de uma transação.

* **`item`** *- Object*

  Armazena informações relativas ao item da transação.

  * **`tokenId`** *- String*

    Identificador que guarda a referência ao ID do token no banco de dados.
  * **`communityId`** *- String*

    Identificador que guarda a referência ao ID da comunidade gestora do token.
  * **`companyId`** *- String*

    Identificador que guarda a referência ao ID da empresa gestora do token.

* **`operation`** *- Object*

  Armazena dados gerais de transação

  * **`type`** *- String*

    Tipo de operação da transação (*`buy`* para operação de compra, *`sell`* para operação de vendas, *`bid`* para operação de lance em leilões, *`rent_out`* para itens postos para alugar e *`rent`* para tokens alugados).

* **`payment`** *- Object*

  Armazena dados relativos ao pagamento da transação

  * **`price`** *- String*

    Valor relativo ao preço agregado à transação do Token, seja para uma operação de compra, venda ou aluguel
  * **`decimals`** *- String*

    Número de casas decimais que deve ser considerado em relação ao campo price.&#x20;
  * **`currency`** *- String*

    Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.
  * **`method`** *- String*

    Nome do meio de pagamento utilizado na transação.

* **`lastStatus`** *- String*

  Informa o último status conhecido da transação, podendo ser *`opened_order`*, *`pending_payment`*, *`processing_payment`*, *`approved_payment`*, *`queue_send_token`*, *`success_send_token`*, *`failed`*, *`cancelled`* ou *`refounded`*.&#x20;
  {% endtab %}
  {% endtabs %}

{% endtab %}

{% tab title="401: Unauthorized " %}
{% tabs %}
{% tab title="Possíveis Erros HTTP - 401" %}

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="403: Forbidden " %}
{% tabs %}
{% tab title="Possíveis Erros HTTP - 403" %}

<table><thead><tr><th width="152" align="center">Código</th><th>Descrição</th></tr></thead><tbody><tr><td align="center">1</td><td>Acesso restrito ao recurso.</td></tr><tr><td align="center">10</td><td>Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.</td></tr></tbody></table>
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

<table><thead><tr><th width="152" align="center">Código</th><th>Descrição</th></tr></thead><tbody><tr><td align="center">1</td><td>Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.</td></tr></tbody></table>

## (JWT) Cria uma nova transação

<mark style="color:green;">`POST`</mark> `https://goblockchain.io/gotokens-api/v1/transactions`

Nível de permissionamento necessário: sistema

#### Headers

| Name                                            | Type   | Description |
| ----------------------------------------------- | ------ | ----------- |
| authorization<mark style="color:red;">\*</mark> | Bearer | JWT         |

#### Request Body

| Name                                        | Type   | Description                                                 |
| ------------------------------------------- | ------ | ----------------------------------------------------------- |
| item<mark style="color:red;">\*</mark>      | Object | Objeto com informações referentes ao token da transação     |
| operation<mark style="color:red;">\*</mark> | Object | Objeto com informações referentes à natureza da transação   |
| payment<mark style="color:red;">\*</mark>   | Object | Objeto com informações referentes ao pagamento da transação |

{% tabs %}
{% tab title="200: OK " %}
{% tabs %}
{% tab title="Exemplo de Resposta" %}

```javascript
{
    "id":"sef897sef",
    "userId": "w87d9a45fs",
    "item":{
       "tokenId": "f79sef456",
       "collectionId": "78sefd2s",
       "companyId": "789wease1f"
    },
    "operation":{
       "type": "buy",
       "from": "0x00001",
       "to": "0x02002",
    },
    "payment":{
       "price": "120",
       "decimals": "2"
       "currency": "ETH",
       "method": null,
       "priceInBrl": null, 
       "expirationDate": "05/05/2020 18:20:25"
    },
    "lastStatus": "opened_order",
    "historyStatus": [
       {
          "date" : "05/05/2020 18:15:20",
          "status": "opened_order",
          "retries": null,
          "error": null
       }
    ]
}
```

{% endtab %}

{% tab title="Campos de Response" %}

* **`id`** *- String*

  Identificador único de uma transação.

* **`userId`** *- String*

  Identificador próprio do usuário que iniciou a transação.

* **`item`** *- Object*

  Armazena informações relativas ao item da transação.

  * **`tokenId`** *- String*

    Identificador que guarda a referência ao ID do token no banco de dados.
  * **`communityId`** *- String*

    Identificador que guarda a referência ao ID da comunidade gestora do token.
  * **`companyId`** *- String*

    Identificador que guarda a referência ao ID da empresa gestora do token.

* **`operation`** *- Object*

  Armazena dados gerais de transação

  * **`type`** *- String*

    Tipo de operação da transação (*`buy`* para operação de compra, *`sell`* para operação de vendas, *`bid`* para operação de lance em leilões, *`rent_out`* para itens postos para alugar e *`rent`* para tokens alugados).
  * **`from`** *- String*

    Endereço de origem da operação.
  * **`to`** *- String*

    Endereço de destino da operação.

* **`payment`** *- Object*

  Armazena dados relativos ao pagamento da transação

  * **`price`** *- String*

    Valor relativo ao preço agregado à transação do Token, seja para uma operação de compra, venda ou aluguel
  * **`decimals`** *- String*

    Número de casas decimais que deve ser considerado em relação ao campo price.&#x20;
  * **`currency`** *- String*

    Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.
  * **`method`** *- String*

    Nome do meio de pagamento utilizado na transação.

* **`lastStatus`** *- String*

  Informa o último status conhecido da transação, podendo ser *`opened_order`*, *`pending_payment`*, *`processing_payment`*, *`approved_payment`*, *`queue_send_token`*, *`success_send_token`*, *`failed`*, *`cancelled`* ou *`refounded`*.&#x20;

* **`historyStatus`** *- Array of Objects*

  Armazena o histórico de status de uma dada transação

  * `date` *- DateTime*

    Armazena a data de criação do status em questão
  * `status` *- String*

    Armazena o status. Segue o fluxo explicitado [acima](#status-dos-pediddos).
  * `retries` *- Integer*

    Armazena a quantidade de retentativas de progresso de um status. É utilizado caso ocorra uma instabilidade interna ou externa relativa ao meio de pagamento.
  * `error` *- String*

    Armazena a mensagem de erro de um retry.
    {% endtab %}
    {% endtabs %}
    {% endtab %}

{% tab title="403: Forbidden " %}
{% tabs %}
{% tab title="Possíveis Erros HTTP - 403" %}

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="401: Unauthorized " %}
{% tabs %}
{% tab title="Possíveis Erros HTTP - 401" %}

<table><thead><tr><th width="152" align="center">Código</th><th>Descrição</th></tr></thead><tbody><tr><td align="center">1</td><td>Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.</td></tr></tbody></table>
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

<table><thead><tr><th width="152" align="center">Código</th><th>Descrição</th></tr></thead><tbody><tr><td align="center">1</td><td>Acesso restrito ao recurso.</td></tr><tr><td align="center">10</td><td>Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.</td></tr></tbody></table>

## (JWT) Lista os dados de uma transação do usuário logado

<mark style="color:blue;">`GET`</mark> `https://goblockchain.io/gotokens-api/v1/transactions/:transactionId`

Essa requisição busca maior detalhamento em relação às transações de um usuário, trazendo todo o conteúdo associado à ela.

Nível de permissionamento necessário: qualquer

#### Headers

| Name                                            | Type   | Description |
| ----------------------------------------------- | ------ | ----------- |
| authorization<mark style="color:red;">\*</mark> | Bearer | JWT         |

{% tabs %}
{% tab title="200: OK " %}
{% tabs %}
{% tab title="Exemplo de Resposta" %}

```javascript
{
    "id":"sef897sef",
    "userId": "w87d9a45fs",
    "item":{
       "tokenId": "f79sef456",
       "collectionId": "78sefd2s",
       "companyId": "789wease1f"
    },
    "operation":{
       "type": "buy",
       "from": "0x00001",
       "to": "0x01000"
    },
    "transactionHash": "ed784fes48es4f1fes8",
    "payment":{
       "price": "120",
       "decimals": "2"
       "currency": "ETH",
       "method": "pix",
       "priceInBrl": "685020", 
       "expirationDate": "05/05/2020 18:20:25"
    },
    "lastStatus": "success_send_token",
    "historyStatus": [
       {
          "date" : "05/05/2020 18:15:20",
          "status": "opened_order",
          "retries": null,
          "error": null
       },
       {
          "date" : "05/05/2020 18:15:25",
          "status": "pending_payment",
          "retries": null,
          "error": null
       },
       {
          "date" : "05/05/2020 18:17:05",
          "status": "processing_payment",
          "retries": 1,
          "error": "500 Internal Server Error"
       },
       {
          "date" : "05/05/2020 18:17:25",
          "status": "approved_payment",
          "retries": null,
          "error": "500 Internal Server Error"         
       },
       {
          "date" : "05/05/2020 18:17:45",
          "status": "queue_send_token",
          "retries": null,
          "error": null         
       },
       {
          "date" : "05/05/2020 18:18:30",
          "status": "success_send_token",
          "retries": null,
          "error": null         
       }
    ]
}
```

{% endtab %}

{% tab title="Campos de Response" %}

* **`id`** *- String*

  Identificador único de uma transação.

* **`item`** *- Object*

  Armazena informações relativas ao item da transação.

  * **`tokenId`** *- String*

    Identificador que guarda a referência ao ID do token no banco de dados.
  * **`communityId`** *- String*

    Identificador que guarda a referência ao ID da comunidade gestora do token.
  * **`companyId`** *- String*

    Identificador que guarda a referência ao ID da empresa gestora do token.

* **`operation`** *- Object*

  Armazena dados gerais de transação

  * **`type`** *- String*

    Tipo de operação da transação (*`buy`* para operação de compra, *`sell`* para operação de vendas, *`bid`* para operação de lance em leilões, *`rent_out`* para itens postos para alugar e *`rent`* para tokens alugados).
  * **`from`** *- String*

    Endereço de origem da operação.
  * **`to`** *- String*

    Endereço de destino da operação.

* **`transactionHash`** *- String*

  Endereço de hash da transação em WEB3.

* **`payment`** *- Object*

  Armazena dados relativos ao pagamento da transação

  * **`price`** *- String*

    Valor relativo ao preço agregado à transação do Token, seja para uma operação de compra, venda ou aluguel
  * **`decimals`** *- String*

    Número de casas decimais que deve ser considerado em relação ao campo price.&#x20;
  * **`currency`** *- String*

    Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.
  * **`method`** *- String*

    Nome do meio de pagamento utilizado na transação.

* **`lastStatus`** *- String*

  Informa o último status conhecido da transação, podendo ser *`opened_order`*, *`pending_payment`*, *`processing_payment`*, *`approved_payment`*, *`queue_send_token`*, *`success_send_token`*, *`failed`*, *`cancelled`* ou *`refounded`*.&#x20;

* **`historyStatus`** *- Array of Objects*

  Armazena o histórico de status de uma dada transação

  * `date` *- DateTime*

    Armazena a data de criação do status em questão
  * `status` *- String*

    Armazena o status. Segue o fluxo explicitado [acima](#status-dos-pediddos).
  * `retries` *- Integer*

    Armazena a quantidade de retentativas de progresso de um status. É utilizado caso ocorra uma instabilidade interna ou externa relativa ao meio de pagamento.
  * `error` *- String*

    Armazena a mensagem de erro de um retry.
    {% endtab %}
    {% endtabs %}
    {% endtab %}

{% tab title="403: Forbidden " %}
{% tabs %}
{% tab title="Possíveis Erros HTTP - 403" %}

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="401: Unauthorized " %}
{% tabs %}
{% tab title="Possíveis Erros HTTP - 401" %}

<table><thead><tr><th width="152" align="center">Código</th><th>Descrição</th></tr></thead><tbody><tr><td align="center">1</td><td>Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.</td></tr></tbody></table>
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

<table><thead><tr><th width="152" align="center">Código</th><th>Descrição</th></tr></thead><tbody><tr><td align="center">1</td><td>Acesso restrito ao recurso.</td></tr><tr><td align="center">10</td><td>Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.</td></tr></tbody></table>

## (Webhook) Edita dados de uma transação

<mark style="color:purple;">`PATCH`</mark> `https://goblockchain.io/gotokens-api/v1/transactions/:transactionId`

Nível de permissionamento necessário: sistema

#### Headers

| Name                                            | Type   | Description |
| ----------------------------------------------- | ------ | ----------- |
| authorization<mark style="color:red;">\*</mark> | Bearer | JWT         |

#### Request Body

| Name            | Type   | Description                                                 |
| --------------- | ------ | ----------------------------------------------------------- |
| payment         | Object | Objeto com informações referentes ao pagamento da transação |
| lastStatus      | String | Último status da transação                                  |
| historyStatus   | Objeto | Objeto com detalhamentos referentes aos status da transação |
| transactionHash | String | Hash identificador da transação em WEB3                     |

{% tabs %}
{% tab title="200: OK " %}
{% tabs %}
{% tab title="Exemplo de Resposta" %}

```javascript
{
    "id":"sef897sef",
    "userId": "w87d9a45fs",
    "item":{
       "tokenId": "f79sef456",
       "collectionId": "78sefd2s",
       "companyId": "789wease1f"
    },
    "operation":{
       "type": "buy",
       "from": "0x00001",
       "to": "0x01000"
    },
    "transactionHash": "ed784fes48es4f1fes8",
    "payment":{
       "price": "120",
       "decimals": "2"
       "currency": "ETH",
       "method": "pix",
       "priceInBrl": "685220", 
       "expirationDate": "05/05/2020 18:20:25"
    },
    "lastStatus": "opened_order",
    "historyStatus": [
       {
          "date" : "05/05/2020 18:15:20",
          "status": "opened_order",
          "retries": null,
          "error": null
       },
       {
          "date" : "05/05/2020 18:15:25",
          "status": "pending_payment",
          "retries": null,
          "error": null
       },
    ]
}
```

{% endtab %}

{% tab title="Campos de Response" %}

* **`id`** *- String*

  Identificador único de uma transação.

* **`userId`** *- String*

  Identificador próprio do usuário que iniciou a transação.

* **`item`** *- Object*

  Armazena informações relativas ao item da transação.

  * **`tokenId`** *- String*

    Identificador que guarda a referência ao ID do token no banco de dados.
  * **`communityId`** *- String*

    Identificador que guarda a referência ao ID da comunidade gestora do token.
  * **`companyId`** *- String*

    Identificador que guarda a referência ao ID da empresa gestora do token.

* **`operation`** *- Object*

  Armazena dados gerais de transação

  * **`type`** *- String*

    Tipo de operação da transação (*`buy`* para operação de compra, *`sell`* para operação de vendas, *`bid`* para operação de lance em leilões, *`rent_out`* para itens postos para alugar e *`rent`* para tokens alugados).
  * **`from`** *- String*

    Endereço de origem da operação.
  * **`to`** *- String*

    Endereço de destino da operação.

* **`transactionHash`** *- String*

  Endereço de hash da transação em WEB3.

* **`payment`** *- Object*

  Armazena dados relativos ao pagamento da transação

  * **`price`** *- String*

    Valor relativo ao preço agregado à transação do Token, seja para uma operação de compra, venda ou aluguel.
  * **`decimals`** *- String*

    Número de casas decimais que deve ser considerado em relação ao campo price.&#x20;
  * **`currency`** *- String*

    Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.
  * **`method`** *- String*

    Nome do meio de pagamento utilizado na transação.

* **`lastStatus`** *- String*

  Informa o último status conhecido da transação, podendo ser *`opened_order`*, *`pending_payment`*, *`processing_payment`*, *`approved_payment`*, *`queue_send_token`*, *`success_send_token`*, *`failed`*, *`cancelled`* ou *`refounded`*.&#x20;

* **`historyStatus`** *- Array of Objects*

  Armazena o histórico de status de uma dada transação

  * `date` *- DateTime*

    Armazena a data de criação do status em questão
  * `status` *- String*

    Armazena o status. Segue o fluxo explicitado [acima](#status-dos-pediddos).
  * `retries` *- Integer*

    Armazena a quantidade de retentativas de progresso de um status. É utilizado caso ocorra uma instabilidade interna ou externa relativa ao meio de pagamento.
  * `error` *- String*

    Armazena a mensagem de erro de um retry.
    {% endtab %}
    {% endtabs %}
    {% endtab %}

{% tab title="403: Forbidden " %}
{% tabs %}
{% tab title="Possíveis Erros HTTP - 403" %}

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="401: Unauthorized " %}
{% tabs %}
{% tab title="Possíveis Erros HTTP - 401" %}

<table><thead><tr><th width="152" align="center">Código</th><th>Descrição</th></tr></thead><tbody><tr><td align="center">1</td><td>Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.</td></tr></tbody></table>
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

<table><thead><tr><th width="152" align="center">Código</th><th>Descrição</th></tr></thead><tbody><tr><td align="center">1</td><td>Acesso restrito ao recurso.</td></tr><tr><td align="center">10</td><td>Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gotokens.io/gotokens/api-fidelidade/transacoes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
