# Demandes de paiement
Source: https://docs.lomi.africa/build/accept/payment-requests

Envoyez des demandes de paiement aux clients avec une date d’expiration.

***

title: Demandes de paiement
description: Envoyez des demandes de paiement aux clients avec une date d’expiration.
-------------------------------------------------------------------------------------

import { Tabs, Tab } from 'fumadocs-ui/components/tabs';

L’API Payment requests permet de créer des demandes de paiement limitées dans le temps. Utile pour la facturation et le B2B.

## Créer une demande de paiement

**Référence API (schéma complet) :** [Créer une demande de paiement](/api/payment-requests/PaymentRequestsController_create)

**L’essentiel :** `amount`, `currency_code` et `expiry_date` (ISO 8601) sont obligatoires. Passez optionnellement `customer_id`, `payment_reference`, `description` et `metadata`. La réponse inclut un `payment_url` pour le client.

<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 request = await lomi.paymentRequests.create({
      amount: 50000,
      currency_code: 'XOF',
      expiry_date: '2024-02-15T23:59:59Z',
      description: 'Facture n° INV-2024-001',
      customer_id: 'cus_abc123...',
      payment_reference: 'INV-2024-001',
      metadata: {
        invoice_id: 'INV-2024-001',
      },
    });

    console.log(`Payment request created: ${request.id}`);
    console.log(`Payment URL: ${request.payment_url}`);
    ```
  </Tab>

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

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

    request = client.payment_requests.create({
        "amount": 50000,
        "currency_code": "XOF",
        "expiry_date": "2024-02-15T23:59:59Z",
        "description": "Facture n° INV-2024-001",
        "customer_id": "cus_abc123...",
        "payment_reference": "INV-2024-001"
    })

    print(f"Payment request: {request['id']}")
    ```
  </Tab>

  <Tab value="cURL">
    ```bash
    curl -X POST "https://api.lomi.africa/payment-requests" \
      -H "X-API-KEY: $LOMI_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "amount": 50000,
        "currency_code": "XOF",
        "expiry_date": "2024-02-15T23:59:59Z",
        "description": "Facture n° INV-2024-001",
        "customer_id": "cus_abc123...",
        "payment_reference": "INV-2024-001"
      }'
    ```
  </Tab>
</Tabs>

***

## Lister les demandes de paiement

**Référence API :** [Lister les demandes](/api/payment-requests/PaymentRequestsController_findAll), filtrez par `status`, `customerId`, `limit` et `offset`.

<Tabs items={["TypeScript", "Python", "cURL"]}>
  <Tab value="TypeScript">
    ```typescript
    const requests = await lomi.paymentRequests.list({
      status: 'pending',
      limit: 20,
    });
    ```
  </Tab>

  <Tab value="Python">
    ```python
    requests = client.payment_requests.list(status="pending", limit=20)
    ```
  </Tab>

  <Tab value="cURL">
    ```bash
    curl -X GET "https://api.lomi.africa/payment-requests?status=pending&limit=20" \
      -H "X-API-KEY: $LOMI_SECRET_KEY"
    ```
  </Tab>
</Tabs>

***

## Obtenir une demande de paiement

**Référence API :** [Obtenir une demande](/api/payment-requests/PaymentRequestsController_findOne)

<Tabs items={["TypeScript", "Python", "cURL"]}>
  <Tab value="TypeScript">
    ```typescript
    const request = await lomi.paymentRequests.get('pr_abc123...');
    console.log(`Status: ${request.status}`);
    ```
  </Tab>

  <Tab value="Python">
    ```python
    request = client.payment_requests.get('pr_abc123...')
    ```
  </Tab>

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

***

## Webhooks

| Événement                   | Description                   |
| --------------------------- | ----------------------------- |
| `payment_request.completed` | Paiement reçu                 |
| `payment_request.expired`   | Demande expirée sans paiement |

***

## API associée

* [Créer une demande de paiement](/api/payment-requests/PaymentRequestsController_create)
* [Lister les demandes](/api/payment-requests/PaymentRequestsController_findAll)
* [Obtenir une demande](/api/payment-requests/PaymentRequestsController_findOne)
* [Webhooks](/build/reliability)
