# Transactions
Source: https://docs.lomi.africa/build/money/transactions

Consultez l’historique et le détail des transactions avec des filtres avancés.

***

title: Transactions
description: Consultez l’historique et le détail des transactions avec des filtres avancés.
-------------------------------------------------------------------------------------------

import { Tabs, Tab } from 'fumadocs-ui/components/tabs';
import { Callout } from '@/components/docs/docs-callout';

L’API Transactions offre un accès en lecture seule à l’historique des transactions de votre organisation. Les transactions sont créées automatiquement lors des paiements traités via les sessions de paiement ou les liens de paiement.

<Callout type="info">
  **Comportement :** transitions de statut, crédit des soldes, expiration, voir **[Cycle de vie des paiements](/build/reliability/payment-lifecycle)** et **[Solde et règlement](/build/money/balance-and-settlement)**.
</Callout>

## Lister les transactions

Récupère toutes les transactions avec filtrage avancé.

### Paramètres de requête

| Paramètre       | Type      | Description                                                                                 |
| --------------- | --------- | ------------------------------------------------------------------------------------------- |
| `provider`      | `string`  | Filtrer par prestataire (ex. `WAVE`, code canal carte)                                      |
| `status`        | `string`  | Filtrer par statut. Valeurs séparées par des virgules (ex. `completed,pending`)             |
| `type`          | `string`  | Filtrer par type. Valeurs séparées par des virgules (ex. `payment,refund`)                  |
| `currency`      | `string`  | Filtrer par devise. Valeurs séparées par des virgules (ex. `XOF,USD`)                       |
| `paymentMethod` | `string`  | Filtrer par moyen de paiement. Valeurs séparées par des virgules (ex. `MOBILE_MONEY,CARDS`) |
| `startDate`     | `string`  | Date de début (format ISO 8601)                                                             |
| `endDate`       | `string`  | Date de fin (format ISO 8601)                                                               |
| `isPos`         | `boolean` | Uniquement les transactions TPE                                                             |
| `page`          | `number`  | Numéro de page (défaut : `1`)                                                               |
| `pageSize`      | `number`  | Éléments par page (défaut : `50`)                                                           |

<Tabs items={["TypeScript", "Python", "cURL"]}>
  <Tab value="TypeScript">
    ```typescript
    import { LomiSDK } from '@lomi./sdk';

    const lomi = new LomiSDK({
      apiKey: process.env.LOMI_SECRET_KEY!,
      environment: 'live',
    });

    const transactions = await lomi.transactions.list({
      status: 'completed',
      provider: 'WAVE',
      startDate: '2024-01-01T00:00:00Z',
      endDate: '2024-12-31T23:59:59Z',
      page: 1,
      pageSize: 50,
    });

    console.log(`Found ${transactions.length} transactions`);
    ```
  </Tab>

  <Tab value="Python">
    ```python
    from lomi import LomiClient
    import os

    client = LomiClient(
        api_key=os.environ["LOMI_SECRET_KEY"],
        environment="test"
    )

    # Liste avec filtres
    transactions = client.transactions.list(
        status="completed",
        provider="WAVE",
        startDate="2024-01-01T00:00:00Z",
        endDate="2024-12-31T23:59:59Z",
        page=1,
        pageSize=50
    )

    print(f"Found {len(transactions)} transactions")
    ```
  </Tab>

  <Tab value="cURL">
    ```bash
    curl -X GET "https://api.lomi.africa/transactions?status=completed&provider=WAVE&startDate=2024-01-01T00:00:00Z&page=1&pageSize=50" \
      -H "X-API-KEY: $LOMI_SECRET_KEY"
    ```
  </Tab>
</Tabs>

Lecture des transactions réseau :

```bash
curl -X GET "https://api.lomi.africa/transactions?status=completed" \
  -H "X-API-KEY: $LOMI_OPERATOR_API_KEY" \
  -H "Lomi-Account: acct_1234567890"
```

### Réponse

```json
[
  {
    "transaction_id": "tx_abc123...",
    "organization_id": "org_xyz789...",
    "customer_id": "cus_def456...",
    "gross_amount": 10000,
    "net_amount": 9700,
    "fee_amount": 300,
    "currency_code": "XOF",
    "status": "completed",
    "type": "payment",
    "provider_code": "WAVE",
    "payment_method_code": "MOBILE_MONEY",
    "description": "Payment for Order #12345",
    "metadata": {
      "order_id": "ORD-12345"
    },
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:31:00Z"
  }
]
```

***

## Obtenir une transaction

Récupère le détail d’une transaction par identifiant.

<Tabs items={["TypeScript", "Python", "cURL"]}>
  <Tab value="TypeScript">
    ```typescript
    const tx = await lomi.transactions.get('tx_abc123...');
    console.log(`Amount: ${tx.gross_amount} ${tx.currency_code}`);
    console.log(`Status: ${tx.status}`);
    ```
  </Tab>

  <Tab value="Python">
    ```python
    tx = client.transactions.get('tx_abc123...')
    print(f"Amount: {tx['gross_amount']} {tx['currency_code']}")
    print(f"Status: {tx['status']}")
    ```
  </Tab>

  <Tab value="cURL">
    ```bash
    curl -X GET "https://api.lomi.africa/transactions/tx_abc123..." \
      -H "X-API-KEY: $LOMI_SECRET_KEY"
    ```
  </Tab>
</Tabs>

***

## Objet transaction

| Champ                 | Type     | Description                                                                                                                                                                                                   |
| --------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `transaction_id`      | `string` | Identifiant unique de la transaction                                                                                                                                                                          |
| `organization_id`     | `string` | Organisation propriétaire                                                                                                                                                                                     |
| `customer_id`         | `string` | Client associé (le cas échéant)                                                                                                                                                                               |
| `gross_amount`        | `number` | Montant total débité                                                                                                                                                                                          |
| `net_amount`          | `number` | Montant après frais                                                                                                                                                                                           |
| `fee_amount`          | `number` | Frais prélevés                                                                                                                                                                                                |
| `currency_code`       | `string` | Devise (ex. `XOF`, `USD`)                                                                                                                                                                                     |
| `status`              | `string` | `pending`, `completed`, `held`, `failed`, `refunded`, `expired`. `held` est une retenue plateforme: le paiement a abouti mais les fonds ne sont pas retirables. Les marchands voient cela comme « en revue ». |
| `type`                | `string` | `payment`, `refund`, `payout`                                                                                                                                                                                 |
| `provider_code`       | `string` | Prestataire (`WAVE`, etc.)                                                                                                                                                                                    |
| `payment_method_code` | `string` | Moyen de paiement (ex. `MOBILE_MONEY`, `CARDS`)                                                                                                                                                               |
| `description`         | `string` | Description                                                                                                                                                                                                   |
| `metadata`            | `object` | Métadonnées transmises au paiement                                                                                                                                                                            |
| `created_at`          | `string` | Horodatage ISO 8601                                                                                                                                                                                           |
| `updated_at`          | `string` | Horodatage ISO 8601                                                                                                                                                                                           |

***

## Réponses d’erreur

| Statut | Description                             |
| ------ | --------------------------------------- |
| `401`  | Clé API invalide ou manquante           |
| `404`  | Transaction introuvable ou accès refusé |
| `429`  | Limite de débit dépassée                |
