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
/api/v1/contests/:contestId/purchasesRegistreer 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)
currencystringValutacode (standaard: 'USD')
Verzoek
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)
{
"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:
{
"success": true,
"data": {
"purchaseId": "purchase_xyz789",
"entryId": "entry_abc123",
"pointsAwarded": 0,
"alreadyExists": true,
"message": "Aankoop al geregistreerd"
}
}
Antwoordvelden
purchaseIdstringUnieke identificatie voor het aankooprecord
entryIdstringDe inzending waaraan de aankoop gekoppeld was
pointsAwardednumberPunten toegekend voor deze aankoop (0 als dubbel)
alreadyExistsbooleanOf deze aankoop al geregistreerd was
messagestringMenselijk leesbare statusmelding
Foutantwoorden
| Status | Fout | Beschrijving |
|---|---|---|
400 | Ongeldig verzoek body | Ontbrekende of ongeldige email, orderId, of bedrag |
400 | Bedrag moet positief zijn | De waarde van het bedrag moet groter zijn dan 0 |
403 | Privésleutel vereist | Deze endpoint vereist een private API-sleutel |
404 | Wedstrijd niet gevonden | Er bestaat geen wedstrijd met de opgegeven ID |
Integratievoorbeeld
Hier is een volledig voorbeeld van het integreren van aankooptracking met een Shopify-webhook:
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");
}
});