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

# Clé publique

> Rend les clés publiques qui vérifient la signature des rappels. Sans authentification : vous pouvez la lire depuis n'importe où. Gardez la liste en cache 24 heures.



## OpenAPI

````yaml openapi/v1.json GET /v1/cle-publique
openapi: 3.1.0
info:
  title: API Umeme pour les intégrateurs
  version: 1.0.0
  description: >-
    Contrat de l'API Umeme pour les intégrateurs : vendre de l'électricité
    prépayée et des abonnements TV depuis le portefeuille de votre revendeur.
servers:
  - url: https://sandbox.umeme.app
    description: Sandbox d'intégration
  - url: https://api.umeme.app
    description: Production
security:
  - cle: []
tags:
  - name: Ventes
  - name: Compteurs
  - name: Portefeuille
  - name: Outils
paths:
  /v1/cle-publique:
    get:
      tags:
        - Outils
      summary: Clé publique
      description: >-
        Rend les clés publiques qui vérifient la signature des rappels. Sans
        authentification : vous pouvez la lire depuis n'importe où. Gardez la
        liste en cache 24 heures.
      operationId: lireClesPubliques
      responses:
        '200':
          description: Les clés actives ; deux pendant un changement de clé.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClesPubliques'
              example:
                cles:
                  - keyid: umeme-2026-11
                    alg: ecdsa-p256-sha256
                    cle: |-
                      -----BEGIN PUBLIC KEY-----
                      MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE…
                      -----END PUBLIC KEY-----
                    depuis: '2026-11-01T00:00:00Z'
      security: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: curl "$UMEME_BASE_URL/cle-publique"
        - lang: javascript
          label: Node.js · fetch
          source: |-
            // Node.js 18 et plus : fetch est intégré.
            const baseUrl = process.env.UMEME_BASE_URL;

            const reponse = await fetch(`${baseUrl}/cle-publique`);
            const donnees = await reponse.json();
        - lang: javascript
          label: Node.js · Axios
          source: |-
            // npm install axios
            import axios from "axios";

            const umeme = axios.create({
              baseURL: process.env.UMEME_BASE_URL,
              timeout: 30000,
            });

            const { data } = await umeme.get("/cle-publique");
        - lang: python
          label: Python
          source: |-
            import os

            import requests

            BASE_URL = os.environ["UMEME_BASE_URL"]

            reponse = requests.get(
                f"{BASE_URL}/cle-publique",
                timeout=30,
            )
            donnees = reponse.json()
        - lang: php
          label: PHP
          source: |-
            // composer require guzzlehttp/guzzle
            $client = new GuzzleHttp\Client([
                'base_uri' => getenv('UMEME_BASE_URL') . '/',
                'timeout' => 30,
            ]);

            $reponse = $client->get('cle-publique');
            $donnees = json_decode($reponse->getBody(), true);
        - lang: java
          label: Java
          source: >-
            // Java 15 et plus : java.net.http et blocs de texte.

            var baseUrl = System.getenv("UMEME_BASE_URL");

            var client = HttpClient.newHttpClient();


            var requete = HttpRequest.newBuilder(URI.create(baseUrl +
            "/cle-publique"))
                .GET()
                .build();

            var reponse = client.send(requete,
            HttpResponse.BodyHandlers.ofString());
components:
  schemas:
    ClesPubliques:
      type: object
      required:
        - cles
      properties:
        cles:
          type: array
          items:
            type: object
            required:
              - keyid
              - alg
              - cle
              - depuis
            properties:
              keyid:
                type: string
                description: Le nom de la clé, cité par chaque signature.
              alg:
                type: string
                enum:
                  - ecdsa-p256-sha256
                description: Toujours `ecdsa-p256-sha256`.
              cle:
                type: string
                description: La clé publique, au format PEM.
              depuis:
                type: string
                format: date-time
                description: Début de validité.
              jusqua:
                type: string
                format: date-time
                description: Fin de validité, pour l'ancienne clé pendant un changement.
  securitySchemes:
    cle:
      type: http
      scheme: bearer
      description: >-
        Votre clé d'API : `umeme_test_…` dans la sandbox, `umeme_live_…` en
        production.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.