Espace professionnel
Documentation
API partenaires v1
Envoyez à RefurbPassport ce que vos outils savent d'un appareil — tests, origine des pièces, photos, réparations — et remettez à chaque client un passeport et un certificat vérifiables.
Obtenir l'accès
- Déposez une candidature sur la page Professionnels en cochant « connecter mes outils via l'API ».
- L'équipe RefurbPassport vérifie votre organisation et autorise, ou non, son accès API.
- Le responsable de votre organisation crée son mot de passe grâce au lien d'invitation, puis génère une clé dans Espace marchand › Clés API.
- Chaque appel est journalisé et rattaché à votre organisation : c'est elle qui apparaît comme auteur sur le passeport.
Tant que l'accès n'est pas « autorisé », ou s'il est suspendu, toutes les clés de l'organisation reçoivent une réponse 403 avec le code api_access_not_granted.
Authentification
Chaque requête porte une clé API dans l'en-tête Authorization. Les clés commencent par rp_live_ et se créent depuis l'espace marchand, rubrique Clés API. Conservez-les côté serveur, jamais dans une application client.
Authorization: Bearer rp_live_…URL de base
Toutes les routes sont préfixées par /api/v1. Le catalogue des routes et des scopes est accessible sans authentification :
curl https://refurbpassport.com/api/v1Endpoints
| Méthode | Route | Scope | Description |
|---|---|---|---|
| GET | /api/v1/passports | passports:read | Lister les passeports de l'organisation |
| POST | /api/v1/passports | passports:write | Créer un passeport |
| GET | /api/v1/passports/:publicId | passports:read | Détail d'un passeport |
| POST | /api/v1/passports/:publicId/inspections | diagnostics:write | Inspection complète : tests, constats, origine des pièces |
| POST | /api/v1/passports/:publicId/photos | photos:write | Publier une photo de l'appareil |
| POST | /api/v1/passports/:publicId/diagnostics | diagnostics:write | Diagnostic simplifié (titre et nombre de tests) |
| POST | /api/v1/passports/:publicId/repairs | repairs:write | Ajouter une réparation |
| POST | /api/v1/passports/:publicId/documents | documents:write | Envoyer un document |
| POST | /api/v1/passports/:publicId/certificate | certificates:read | Générer le certificat PDF |
| POST | /api/v1/verify | verify:read | Vérifier un IMEI ou un numéro de série |
| POST | /api/v1/bulk/import | bulk:import | Import CSV en masse |
| GET | /api/v1/exports/passports | exports:read | Exporter les passeports |
Envoyer une inspection
Une inspection décrit un passage de l'appareil sur votre banc : qui l'a testé, quand, où, avec quel outil, ce qu'il a constaté, le résultat de chaque test et l'origine de chaque pièce. C'est ce que l'acheteur voit dans « Ce que vous achetez exactement ».
curl -X POST https://refurbpassport.com/api/v1/passports/:publicId/inspections \
-H "Authorization: Bearer rp_live_xxx" \
-H "Content-Type: application/json" \
-d @inspection.json{
"title": "Contrôle avant mise en vente",
"completedAt": "2026-11-02T14:30:00Z",
"technician": { "name": "Technicien n°12" },
"location": { "name": "Atelier Lyon Est", "city": "Lyon", "country": "FR" },
"tool": { "name": "Banc de test", "version": "2.4" },
"summary": "Fonctionnel, micro-rayure sur le cadre.",
"observations": "Rayure 3 mm côté gauche du cadre.",
"battery": { "healthPct": 91, "cycleCount": 212 },
"cosmeticGrade": "A",
"externalRef": "CERT-2026-004812",
"externalUrl": "https://example.com/certificats/CERT-2026-004812",
"checks": [
{ "category": "display", "name": "Écran tactile", "result": "passed", "method": "measured" },
{ "category": "sensors", "name": "Face ID", "result": "passed", "method": "measured" },
{ "category": "cosmetic", "name": "Cadre", "result": "warning", "method": "operator",
"notes": "Micro-rayure 3 mm" }
],
"parts": [
{ "part": "SCREEN", "origin": "original", "basis": "pairing" },
{ "part": "BATTERY", "origin": "REPLACED_GENUINE", "basis": "SYSTEM_PAIRING" }
]
}- result : passed, failed, warning, notTested, notApplicable (ou PASSED, FAILED…). method : measured, operator, automated, declared.
- category : display, cameras, audio, connectivity, sensors, buttons, battery, security, cosmetic, other.
- part : SCREEN, BATTERY, REAR_CAMERA, REAR_ULTRAWIDE_CAMERA, REAR_TELEPHOTO_CAMERA, FRONT_CAMERA, FACE_ID, TOUCH_ID, LIDAR, MAINBOARD, HOUSING, BACK_GLASS, SPEAKER, MICROPHONE, CHARGING_PORT, BUTTONS, OTHER (+ label).
- origin : ORIGINAL, REPLACED_GENUINE, REPLACED_THIRD_PARTY, REPLACED_UNKNOWN, UNDETERMINED (ou original, replaced, unknown). basis : SYSTEM_PAIRING, SERIAL_MATCH, VISUAL_INSPECTION, REPAIR_RECORD, DECLARED.
- externalRef / externalUrl : votre propre numéro et lien de certificat (https), affichés sur le passeport.
Publier des photos
Photos de l'appareil réel, en multipart/form-data : JPEG, PNG ou WebP, 8 Mo maximum, 24 par passeport. kind : FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM, SCREEN_ON, DEFECT, ACCESSORIES, OTHER. Rattachez-les à une inspection avec inspectionId.
curl -X POST https://refurbpassport.com/api/v1/passports/:publicId/photos \
-H "Authorization: Bearer rp_live_xxx" \
-F file=@face-arriere.jpg -F kind=BACK \
-F caption="Dos sans rayure" -F takenBy="Technicien n°12" \
-F takenAt=2026-11-02T14:35:00Z -F inspectionId=<publicId de l'inspection>Scopes
Une clé n'accède qu'aux périmètres qui lui ont été attribués lors de sa création.
| Scope | Autorise |
|---|---|
| passports:read | Lire les passeports |
| passports:write | Créer des passeports |
| devices:write | Enregistrer des appareils |
| diagnostics:write | Ajouter des diagnostics |
| repairs:write | Ajouter des réparations |
| documents:write | Envoyer des documents |
| photos:write | Publier des photos de l'appareil |
| certificates:read | Générer des certificats PDF |
| verify:read | Vérifier un identifiant |
| bulk:import | Importer en masse (CSV) |
| exports:read | Exporter les données |
Limites de débit
Les limites s'appliquent par clé, sur une fenêtre glissante d'une minute, selon le type d'opération.
| Opération | Limite |
|---|---|
| Par défaut | 120 requêtes / min |
| Lecture | 180 requêtes / min |
| Écriture | 60 requêtes / min |
| Vérification | 30 requêtes / min |
| Certificats | 20 requêtes / min |
| Envoi de documents | 30 requêtes / min |
Exemple
Récupérer le détail d'un passeport :
curl -H "Authorization: Bearer rp_live_xxx" \
https://refurbpassport.com/api/v1/passports/demo-iphone15pro-256Identifiants et confidentialité
Les réponses ne contiennent jamais l'IMEI ou le numéro de série en clair : seuls le type d'identifiant et ses 4 derniers caractères sont renvoyés.
Obtenir une clé API
L'API est réservée aux organisations partenaires dont l'accès a été validé. Candidatez, puis créez vos clés depuis l'espace marchand.