API Reference

Aankopen

Registreer en volg aankopen gekoppeld aan wedstrijdinzendingen

Aankopen

Volg aankopen die door wedstrijddeelnemers zijn gedaan. Aankopen kunnen punten toekennen aan inzendingen op basis van de aankoopvolgconfiguratie van je wedstrijd.


Registreer Aankoop

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

Registreer een aankoop voor een wedstrijddeelnemer. De deelnemer krijgt punten toegekend op basis van de aankoopvolginstellingen van de wedstrijd. Dubbele aankopen (zelfde orderId) worden gedetecteerd en zullen niet twee keer punten toekennen.

Padparameters

contestIdstring required

De unieke wedstrijdidentificatie

Verzoek Body

emailstring required

E-mailadres van de koper (moet overeenkomen met een bestaande inzending)

orderIdstring required

Unieke orderidentificatie uit jouw systeem

amountnumber required

Aankoopbedrag (moet groter zijn dan 0)

currencystring

Valutacode (standaard: 'USD')

Verzoek

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"
  }'

Antwoord (201 Created)

json
{
  "success": true,
  "data": {
    "purchaseId": "purchase_xyz789",
    "entryId": "entry_abc123",
    "pointsAwarded": 50,
    "alreadyExists": false,
    "message": "Aankoop succesvol geregistreerd"
  }
}

Antwoord (200 - Dubbel)

Als een aankoop met dezelfde orderId al bestaat, geeft de API een 200 status terug om aan te geven dat deze al verwerkt is:

json
{
  "success": true,
  "data": {
    "purchaseId": "purchase_xyz789",
    "entryId": "entry_abc123",
    "pointsAwarded": 0,
    "alreadyExists": true,
    "message": "Aankoop al geregistreerd"
  }
}

Antwoordvelden

purchaseIdstring

Unieke identificatie voor het aankooprecord

entryIdstring

De inzending waaraan de aankoop gekoppeld was

pointsAwardednumber

Punten toegekend voor deze aankoop (0 als dubbel)

alreadyExistsboolean

Of deze aankoop al geregistreerd was

messagestring

Menselijk leesbare statusmelding

Foutantwoorden

StatusFoutBeschrijving
400Ongeldig verzoek bodyOntbrekende of ongeldige email, orderId, of bedrag
400Bedrag moet positief zijnDe waarde van het bedrag moet groter zijn dan 0
403Privésleutel vereistDeze endpoint vereist een private API-sleutel
404Wedstrijd niet gevondenEr bestaat geen wedstrijd met de opgegeven ID

Integratievoorbeeld

Hier is een volledig voorbeeld van het integreren van aankooptracking met een 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("Aankoop geregistreerd:", data);
    res.status(200).send("OK");
  } catch (error) {
    console.error("Kon aankoop niet registreren:", error);
    res.status(500).send("Fout");
  }
});