> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneclickdz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lister les Transactions

> Obtenir une liste paginée des transactions du compte avec filtrage optionnel par date

## Vue d'Ensemble

Retourne une liste paginée de toutes les transactions de votre compte, incluant les dépôts, les retraits, les recharges, les remboursements et les transferts.

## Paramètres de Requête

<ParamField query="page" type="integer" default={1}>
  Numéro de page (minimum : 1)
</ParamField>

<ParamField query="pageSize" type="integer" default={20}>
  Éléments par page (minimum : 1, maximum : 100)
</ParamField>

<ParamField query="from" type="string">
  Date de début pour le filtrage (format ISO 8601 : `2025-10-01T00:00:00Z`)
</ParamField>

<ParamField query="to" type="string">
  Date de fin pour le filtrage (format ISO 8601 : `2025-10-31T23:59:59Z`)
</ParamField>

<Note>
  Lors du filtrage par date, les paramètres `from` et `to` doivent être fournis
  ensemble.
</Note>

## Types de Transaction

### Entrée d'Argent (Incrément)

| Type             | Description                                          |
| ---------------- | ---------------------------------------------------- |
| `DEPOSIT`        | Argent déposé sur votre compte                       |
| `REFUND-FLEXY`   | Remboursement d'une recharge mobile échouée          |
| `REFUND-ADSL`    | Remboursement d'une recharge internet échouée        |
| `REFUND-ORDER`   | Remboursement d'une commande de carte cadeau annulée |
| `RECEIVE`        | Argent reçu d'un autre utilisateur                   |
| `POINT-EXCHANGE` | Points convertis en solde                            |

### Sortie d'Argent (Décrément)

| Type       | Description                            |
| ---------- | -------------------------------------- |
| `FLEXY`    | Transaction de recharge mobile         |
| `ADSL`     | Transaction de recharge internet       |
| `ORDER`    | Commande de carte cadeau ou de produit |
| `WITHDRAW` | Argent retiré du compte                |
| `SEND`     | Argent envoyé à un autre utilisateur   |
| `SERVICE`  | Paiement ou frais de service           |

## Réponse

<ResponseField name="success" type="boolean" required>
  Indique si la requête a réussi
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="properties">
    <ResponseField name="items" type="array" required>
      Tableau d'objets de transaction

      <Expandable title="transaction object">
        <ResponseField name="_id" type="string">
          Identifiant unique de la transaction
        </ResponseField>

        <ResponseField name="type" type="string">
          Type de transaction (voir les types ci-dessus)
        </ResponseField>

        <ResponseField name="operation" type="string">
          Direction de l'opération : `increment` ou `decrement`
        </ResponseField>

        <ResponseField name="amount" type="number">
          Montant de la transaction en DZD
        </ResponseField>

        <ResponseField name="oldBalance" type="number">
          Solde avant la transaction
        </ResponseField>

        <ResponseField name="newBalance" type="number">
          Solde après la transaction
        </ResponseField>

        <ResponseField name="objid" type="string">
          ID de l'objet associé (ID de recharge, ID de commande, etc.)
        </ResponseField>

        <ResponseField name="note" type="string">
          Note de transaction optionnelle
        </ResponseField>

        <ResponseField name="time" type="string">
          Horodatage de la transaction (ISO 8601)
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="pagination" type="object" required>
      <Expandable title="properties">
        <ResponseField name="page" type="integer">
          Numéro de page actuel
        </ResponseField>

        <ResponseField name="pageSize" type="integer">
          Éléments par page
        </ResponseField>

        <ResponseField name="totalPages" type="integer">
          Nombre total de pages
        </ResponseField>

        <ResponseField name="totalResults" type="integer">
          Nombre total de transactions
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="meta" type="object" required>
  <Expandable title="properties">
    <ResponseField name="timestamp" type="string">
      Horodatage de la réponse au format ISO 8601
    </ResponseField>
  </Expandable>
</ResponseField>

## Exemples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.oneclickdz.com/v3/account/transactions?page=1&pageSize=20 \
    -H "X-Access-Token: YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://api.oneclickdz.com/v3/account/transactions?page=1&pageSize=20",
    {
      headers: { "X-Access-Token": "YOUR_API_KEY" },
    }
  );
  const { data } = await response.json();
  const transactions = data.items;
  const pagination = data.pagination;
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.oneclickdz.com/v3/account/transactions',
      headers={'X-Access-Token': 'YOUR_API_KEY'},
      params={'page': 1, 'pageSize': 20}
  )
  data = response.json()['data']
  transactions = data['items']
  pagination = data['pagination']
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init();
  $url = 'https://api.oneclickdz.com/v3/account/transactions?page=1&pageSize=20';
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Access-Token: YOUR_API_KEY']);
  $response = curl_exec($ch);
  $data = json_decode($response, true);
  $transactions = $data['data']['items'];
  ?>
  ```
</CodeGroup>

### Avec Filtrage par Date

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.oneclickdz.com/v3/account/transactions?from=2025-10-01T00:00:00Z&to=2025-10-31T23:59:59Z" \
    -H "X-Access-Token: YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const from = "2025-10-01T00:00:00Z";
  const to = "2025-10-31T23:59:59Z";
  const response = await fetch(
    `https://api.oneclickdz.com/v3/account/transactions?from=${from}&to=${to}`,
    { headers: { "X-Access-Token": "YOUR_API_KEY" } }
  );
  ```

  ```python Python theme={null}
  response = requests.get(
      'https://api.oneclickdz.com/v3/account/transactions',
      headers={'X-Access-Token': 'YOUR_API_KEY'},
      params={
          'from': '2025-10-01T00:00:00Z',
          'to': '2025-10-31T23:59:59Z'
      }
  )
  ```
</CodeGroup>

### Exemple de Réponse

```json theme={null}
{
  "success": true,
  "data": {
    "items": [
      {
        "type": "FLEXY",
        "operation": "decrement",
        "oldBalance": 2316.129999998957,
        "amount": 990,
        "newBalance": 1326.129999998957,
        "objid": "68fe2cdd51bc170608683e3a",
        "note": "MIX1000_OOREDOO - 0554926570",
        "time": "2025-10-26T14:14:53.074Z",
        "_id": "68fe2cdd51bc170608683e40"
      },
      {
        "type": "REFUND-ORDER",
        "operation": "increment",
        "oldBalance": 316.1299999989569,
        "amount": 2000,
        "newBalance": 2316.129999998957,
        "objid": "68fcdd7cd712569c624e05ee",
        "note": "Refunded - 1 - 68fcdd7cd712569c624e05ee",
        "time": "2025-10-25T14:24:00.338Z",
        "_id": "68fcdd80d712569c624e069d"
      }
    ],
    "pagination": {
      "page": 1,
      "pageSize": 5,
      "totalPages": 105,
      "totalResults": 521
    }
  },
  "meta": {
    "timestamp": "2025-10-29T00:35:58.852Z"
  }
}
```

## Cas d'Utilisation

<CardGroup cols={2}>
  <Card title="Historique des Transactions" icon="clock">
    Affichez l'historique des transactions aux utilisateurs dans votre application
  </Card>

  <Card title="Comptabilité et Rapports" icon="chart-line">
    Générez des rapports et des relevés financiers
  </Card>

  <Card title="Réconciliation du Solde" icon="scale-balanced">
    Vérifiez les variations du solde et effectuez des audits de transactions
  </Card>

  <Card title="Activité Utilisateur" icon="user">
    Suivez les habitudes de dépenses et le comportement des utilisateurs
  </Card>
</CardGroup>

## Bonnes Pratiques

<AccordionGroup>
  <Accordion title="Pagination">
    * Commencez avec des tailles de page raisonnables (20 à 50 éléments)
    * Implémentez le défilement infini ou la navigation par pages
    * Mettez les résultats en cache pour réduire les appels API
    * Utilisez `pagination.totalPages` pour déterminer s'il y a d'autres données
  </Accordion>

  {" "}

  <Accordion title="Filtrage par Date">
    * Fournissez toujours les paramètres `from` et `to` ensemble - Utilisez le format ISO 8601 pour
      les dates - Définissez des plages horaires appropriées pour les rapports - Tenez compte des
      différences de fuseau horaire lors du filtrage
  </Accordion>

  {" "}

  <Accordion title="Performance">
    * Mettez en cache les données de transaction localement si possible - Utilisez des filtres de date pour limiter
      les ensembles de résultats - Implémentez une interface de pagination appropriée - Envisagez des notifications webhook pour les mises à jour en temps réel
  </Accordion>

  <Accordion title="Affichage">
    * Affichez le type de transaction dans un langage convivial
    * Affichez les montants avec un formatage de devise approprié
    * Incluez les horodatages dans le fuseau horaire local
    * Liez les transactions aux objets associés (recharges, commandes)
  </Accordion>
</AccordionGroup>

## Endpoints Associés

<Card title="Obtenir le Solde" icon="wallet" href="/fr/api-reference/account/get-balance">
  Vérifier le solde actuel du compte
</Card>
