API Reference

Einkäufe

Einkäufe erfassen und verfolgen, die mit Wettbewerbseinträgen verbunden sind

Einkäufe

Verfolgen Sie Einkäufe, die von Wettbewerbsteilnehmern getätigt wurden. Einkäufe können basierend auf der Konfiguration zur Einkaufserfassung Ihres Wettbewerbs Punkte für Einträge vergeben.


Einkauf erfassen

POST/api/v1/contests/:contestId/purchases
Private API Key Required

Erfassen Sie einen Einkauf für einen Wettbewerbsteilnehmer. Dem Teilnehmer werden Punkte basierend auf den Einstellungen zur Einkaufserfassung des Wettbewerbs gutgeschrieben. Doppelte Einkäufe (gleiche orderId) werden erkannt und vergeben keine Punkte doppelt.

Pfadparameter

contestIdstring required

Die eindeutige Wettbewerbskennung

Anfragekörper

emailstring required

E-Mail-Adresse des Käufers (muss mit einem bestehenden Eintrag übereinstimmen)

orderIdstring required

Eindeutige Bestellkennung aus Ihrem System

amountnumber required

Kaufbetrag (muss größer als 0 sein)

currencystring

Währungscode (Standard: 'USD')

Anfrage

bash
curl -X POST https://blitzrocket.com/api/v1/contests/clx1abc123/purchases \
  -H "x-api-key: your_private_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "jane@example.com",
    "orderId": "order-12345",
    "amount": 49.99,
    "currency": "USD"
  }'

Antwort (201 Erstellt)

json
{
  "success": true,
  "data": {
    "purchaseId": "purchase_xyz789",
    "entryId": "entry_abc123",
    "pointsAwarded": 50,
    "alreadyExists": false,
    "message": "Einkauf erfolgreich erfasst"
  }
}

Antwort (200 - Duplikat)

Wenn ein Einkauf mit derselben orderId bereits existiert, gibt die API einen Status 200 zurück, um anzuzeigen, dass er bereits verarbeitet wurde:

json
{
  "success": true,
  "data": {
    "purchaseId": "purchase_xyz789",
    "entryId": "entry_abc123",
    "pointsAwarded": 0,
    "alreadyExists": true,
    "message": "Einkauf bereits erfasst"
  }
}

Antwortfelder

purchaseIdstring

Eindeutige Kennung für den Einkaufseintrag

entryIdstring

Der Eintrag, mit dem der Einkauf verknüpft wurde

pointsAwardednumber

Für diesen Einkauf vergebene Punkte (0 bei Duplikat)

alreadyExistsboolean

Ob dieser Einkauf bereits erfasst wurde

messagestring

Für Menschen lesbare Statusmeldung

Fehlerantworten

StatusFehlerBeschreibung
400Ungültiger AnfragekörperFehlende oder ungültige E-Mail, orderId oder Betrag
400Betrag muss positiv seinDer Betrag muss größer als 0 sein
403Privater Schlüssel erforderlichDieser Endpunkt erfordert einen privaten API-Schlüssel
404Wettbewerb nicht gefundenKein Wettbewerb mit der angegebenen ID vorhanden

Integrationsbeispiel

Hier ist ein vollständiges Beispiel für die Integration der Kaufverfolgung mit einem Shopify-Webhook:

javascript
app.post("/webhooks/shopify/order-created", async (req, res) => {
  const order = req.body;

  try {
    const response = await fetch(
      `https://blitzrocket.com/api/v1/contests/${CONTEST_ID}/purchases`,
      {
        method: "POST",
        headers: {
          "x-api-key": process.env.BLITZROCKET_PRIVATE_KEY,
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          email: order.email,
          orderId: order.id.toString(),
          amount: parseFloat(order.total_price),
          currency: order.currency,
        }),
      }
    );

    const data = await response.json();
    console.log("Kauf verfolgt:", data);
    res.status(200).send("OK");
  } catch (error) {
    console.error("Fehler beim Verfolgen des Kaufs:", error);
    res.status(500).send("Fehler");
  }
});