Aller au contenu

Clés API et droits

Chaque appel porte votre clé :

Authorization: Bearer rpa_pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Les clés de test (rpa_pk_test_...) ne fonctionnent que sur l’environnement de test et sont refusées en production. Les clés live (rpa_pk_live_...) sont celles de la production. Développez sur l’environnement de test, où la DGI est un bac à sable ; nous émettons vos clés live quand vous êtes prêts à passer en service.

Une clé peut être limitée aux adresses que vous nous donnez. Donnez-nous toutes les plages d’où vos serveurs sortent, IPv4 et IPv6 : si vos serveurs peuvent nous joindre en IPv6 et que seules vos plages IPv4 figurent sur la liste, ces appels-là sont refusés.

Un appel avec une clé inconnue, révoquée ou expirée, avec une clé de test en production, ou depuis une adresse hors de la liste, reçoit un 401 au corps vide, volontairement : pas de JSON, ne cherchez donc pas à le lire. L’en-tête X-Request-ID identifie l’appel dans les Journaux de la console, où « Appels refusés » indique pourquoi vos propres clés ont été refusées.

Chaque clé porte des droits (scopes). Une route qui demande un droit que la clé n’a pas répond 403 INSUFFICIENT_SCOPE.

Droit Routes
platform:businesses entreprises (création, lecture, liste, modification, pause, reprise, fin)
platform:pos points de vente et leurs jetons
platform:invoicing:write POST des factures, des avoirs et des lots (donne aussi la lecture)
platform:invoicing:read lecture des factures, exports complets
platform:reports rapports et consommation
platform:events le flux d’événements ; la lecture du webhook
platform:webhook l’adresse du webhook et la rotation de son secret (les clés qui avaient platform:events avant son arrivée ont les deux)

L’état de votre compte. Si nous suspendons votre compte, la lecture reste ouverte et toute écriture est refusée (403 PARTNER_SUSPENDED), mais les factures déjà acceptées sont quand même normalisées : une suspension ne retient aucune facture. Demander des rapports (pour clore les sessions) et des exports (pour récupérer vos données) reste possible. Remplacer le jeton d’un point de vente est refusé aussi, sauf si des factures attendent dans la file de cette entreprise : un jeton expiré ne doit pas retenir ce que nous avons accepté, il peut donc alors être remplacé, avec les mêmes contrôles. Si votre partenariat prend fin, les écritures répondent 403 PARTNER_ENDED, et tout reste lisible pendant 90 jours (Le départ).