Démarrage rapide

D'une clé à un enregistrement de livraison et de collection en cinq minutes, avec curl.

Il vous faut une seule chose : une clé partenaire. Elle sait déjà quels restaurants lui ont été accordés, et l'API vous le dit.

1. Obtenir une clé

Écrivez à contact@backresto.com avec votre société, les restaurants dont vous avez besoin et les portées que vous voulez. Nous confirmons auprès du restaurant, puis envoyons la clé au contact technique que vous avez nommé. Obtenir une clé est la liste de contrôle complète — l'envoyer complète est ce qui fait de l'aller-retour un e-mail plutôt que quatre.

Une clé ressemble à ceci :

brp_hV8kZ2pQ.tW3nR7yL9cF1sB4xJ6mA8dK0gN5vE2uP7hQ3rT1zY6i

La moitié avant le point est un préfixe public — il identifie la clé dans la liste sur cette page et dans les échanges avec le support, et on peut l'écrire sans risque. La moitié qui suit est le secret, et il n'apparaît nulle part ailleurs que sur cet unique écran.

2. La stocker

Mettez la valeur entière dans votre gestionnaire de secrets, en une seule chaîne de caractères, et supprimez l'e-mail dans lequel elle est arrivée. Jamais un dépôt, jamais une URL, jamais une ligne de journal. Nous ne conservons qu'une empreinte du secret, donc une clé perdue veut dire une révocation et une nouvelle clé — écrivez-nous et les deux ont lieu le jour même.

export BACKRESTO_PARTNER_API_KEY='brp_…'

3. Trouver votre restaurant

Demandez à la clé quels restaurants elle atteint, et avec quelles portées :

curl "https://api.backresto.com/v1/restaurants" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"
{
  "data": [
    {
      "restaurantId": "restaurant-1",
      "scopes": ["deliveries:read", "delivery-images:read"]
    }
  ]
}

La plupart des clés atteignent un seul restaurant. Gardez son identifiant pour les appels suivants :

export RESTAURANT_ID='restaurant-1'

4. Lister une semaine de livraisons

L'endpoint de liste prend une plage de temps explicite, en millisecondes depuis l'epoch, sous forme de chaînes de caractères. C'est la convention dans toute l'API — jamais des secondes, jamais de l'ISO 8601.

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
  --get \
  --data-urlencode "from=1787846400000" \
  --data-urlencode "to=1788451200000" \
  --data-urlencode "limit=25"
{
  "data": [
    {
      "id": "8f2c1b04-0d5a-4b7e-9f31-6ad2c0e77a51",
      "restaurantId": "restaurant-1",
      "occurredAt": "1787932800000",
      "isCompliant": false,
      "supplier": { "id": "supplier-7", "name": "Metro Nord" },
      "temperatureRecords": [
        { "product": "Poulet fermier", "lotNumber": "L2291", "unit": "C", "value": 6.4 }
      ],
      "nonComplianceReasons": ["Température trop élevée"],
      "correctiveActions": ["Produit refusé"],
      "commentary": null,
      "imageCount": 2
    }
  ],
  "nextCursor": null
}

5. Récupérer une livraison, et ses photographies

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries/$DELIVERY_ID" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries/$DELIVERY_ID/images" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

L'endpoint des photographies exige la portée delivery-images:read en plus de deliveries:read. Si votre clé n'a que la première, la livraison répond et les photographies répondent 403 — c'est l'autorisation qui fait son travail, et le remède est que le client fasse émettre une clé avec les deux.

6. Lire l'une des autres collections

Tout ce qui n'est pas une livraison — températures, refroidissement, nettoyage, étiquettes — est une collection. Demandez à la clé lesquelles elle ouvre :

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

Un data vide signifie que la clé n'a encore aucune autorisation sur les collections, ce qui est l'état normal d'une clé émise pour les seules livraisons — demandez celles dont vous avez besoin. Sinon, parcourez-en une :

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections/temperature-records/records" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
  --get --data-urlencode "limit=100"
{
  "data": [
    {
      "id": "3a71f0c8-9d24-4f11-bb0e-77c2e5a41d93",
      "restaurantId": "restaurant-1",
      "collection": "temperature-records",
      "deleted": false,
      "capturedAt": "1788961200000",
      "receivedAt": "1788961318000",
      "sequence": "4192",
      "data": {
        "timestamp": "1788961200000",
        "value": 3.2,
        "unit": "CELSIUS",
        "shift": "MORNING",
        "equipmentId": "equipment-12"
      }
    }
  ],
  "nextCursor": null
}

Pas de plage de temps ici : vous parcourez la collection et vous gardez id pour réconcilier au parcours suivant.

7. Gérer les deux échecs que vous rencontrerez vraiment

404 — le restaurant n'est pas sur votre clé, ou la livraison n'existe pas. Les deux sont volontairement indiscernables : l'API ne confirme pas l'existence d'un restaurant à un appelant qui ne peut pas le voir.

403 — le restaurant est sur votre clé, mais pas la portée dont cet endpoint a besoin.

Chaque erreur est un document problème, jamais une page HTML, et porte un requestId qu'il vaut la peine de citer si vous nous écrivez.

Où aller ensuite

  • Obtenir une clé — la liste de contrôle de la demande, et comment modifier une clé plus tard.
  • Authentification — les portées, la rotation, ce qu'une clé peut et ne peut pas faire.
  • Pagination — le curseur, et comment parcourir une longue plage.
  • Livraisons — chaque champ, et ce qu'il signifie sur le terrain.
  • Collections et enregistrements — les vingt-quatre autres types d'enregistrement, et l'enveloppe qu'ils partagent.
  • MCP — les mêmes données dans un client IA, en trois minutes environ.

Dernière mise à jour 2026-09-19.