Aller au contenu principal
RefurbPassport

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

  1. Déposez une candidature sur la page Professionnels en cochant « connecter mes outils via l'API ».
  2. L'équipe RefurbPassport vérifie votre organisation et autorise, ou non, son accès API.
  3. 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.
  4. 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/v1

Endpoints

MéthodeRouteScopeDescription
GET/api/v1/passportspassports:readLister les passeports de l'organisation
POST/api/v1/passportspassports:writeCréer un passeport
GET/api/v1/passports/:publicIdpassports:readDétail d'un passeport
POST/api/v1/passports/:publicId/inspectionsdiagnostics:writeInspection complète : tests, constats, origine des pièces
POST/api/v1/passports/:publicId/photosphotos:writePublier une photo de l'appareil
POST/api/v1/passports/:publicId/diagnosticsdiagnostics:writeDiagnostic simplifié (titre et nombre de tests)
POST/api/v1/passports/:publicId/repairsrepairs:writeAjouter une réparation
POST/api/v1/passports/:publicId/documentsdocuments:writeEnvoyer un document
POST/api/v1/passports/:publicId/certificatecertificates:readGénérer le certificat PDF
POST/api/v1/verifyverify:readVérifier un IMEI ou un numéro de série
POST/api/v1/bulk/importbulk:importImport CSV en masse
GET/api/v1/exports/passportsexports:readExporter 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.

ScopeAutorise
passports:readLire les passeports
passports:writeCréer des passeports
devices:writeEnregistrer des appareils
diagnostics:writeAjouter des diagnostics
repairs:writeAjouter des réparations
documents:writeEnvoyer des documents
photos:writePublier des photos de l'appareil
certificates:readGénérer des certificats PDF
verify:readVérifier un identifiant
bulk:importImporter en masse (CSV)
exports:readExporter 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érationLimite
Par défaut120 requêtes / min
Lecture180 requêtes / min
Écriture60 requêtes / min
Vérification30 requêtes / min
Certificats20 requêtes / min
Envoi de documents30 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-256

Identifiants 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.

Documentation de l'API partenaires v1 | RefurbPassport