Kernconcepten

Verdienregels

Verdienregels bepalen hoe klanten punten verdienen met hun aankopen. Dien je een transactie in, dan beoordeelt Puntjes de actieve verdienregels van je zaak die op die aankoop slaan, en kent het de punten toe die ze samen opleveren.


Regeltypen

Base rate

Het meest voorkomende regeltype. Puntjes berekent de punten uit het transactiebedrag:

points = (transaction_amount / 100) × rate

Met een rate van 10 en een transactiebedrag van 2500 (EUR 25,00) geeft dat:

points = (2500 / 100) × 10 = 250 punten

Welk tarief uitbetaalt

Een base rate noemt de vestigingen waar hij geldt, of hij noemt er geen. Een tarief dat er geen noemt, geldt overal. Welk tarief een aankoop uitbetaalt, staat vast voordat er ook maar één punt berekend is. Puntjes gebruikt de tarieven die de vestiging van de aankoop noemen, en slaat de rest over. Pas als geen enkel tarief die vestiging noemt, betalen de tarieven uit die overal gelden.

Een aankoop die je zonder branch indient, verdient alleen via de tarieven die overal gelden. Een tarief dat aan een vestiging hangt, betaalt nooit uit op een aankoop zonder vestiging.

Hoogstens één actief tarief mag overal gelden, en twee actieve tarieven mogen niet dezelfde vestiging noemen. Zo blijft er altijd precies één tarief over.

Bonusvermenigvuldigers horen bij campagnes

Bonusvermenigvuldigers zijn geen type verdienregel. Ze horen bij campagnes: een eigen engine rekent ze uit, en in de transactieresponse staan ze apart vermeld.


Regeleigenschappen

VeldTypeBeschrijving
idintegerUniek regel-ID
namestringBeschrijvende naam (bv. "Standaardtarief")
typestringbase_rate
rateintegerPunten per EUR
min_transaction_amountintegerMinimaal transactiebedrag (in centen) om deze regel te activeren. Optioneel.
statusstringactive of inactive

Hoe regels worden toegepast

Als je een transactie indient:

  1. Puntjes haalt alle actieve verdienregels van je zaak op
  2. Puntjes houdt alleen de base rates over die bij de vestiging van de transactie horen: de tarieven die haar noemen, of de tarieven die overal gelden als geen enkel tarief haar noemt
  3. Elke overgebleven regel controleert of de transactie aan de voorwaarden voldoet (bv. een minimumbedrag)
  4. Voor elke regel die past, rekent de bijbehorende strategie de punten uit
  5. Puntjes telt die punten bij elkaar op
  6. Het totaal komt op de wallet van de klant als een earn-grootboekregel

De transactieresponse bevat een uitsplitsing van alles wat Puntjes heeft beoordeeld: verdienregels én campagnes, met bij elk item de punten die het opleverde:

{
    "data": {
        "id": 42,
        "total_amount": 2500,
        "points_earned": 500,
        "rules_applied": [
            {
                "rule_id": 3,
                "rule_name": "Standaardtarief",
                "rule_type": "base_rate",
                "points_earned": 250,
                "family": null,
                "moment": null,
                "campaign_version": null,
                "suppressed_by": null,
                "reason": null,
                "line_breakdown": null
            },
            {
                "rule_id": 7,
                "rule_name": "Weekend Dubbele Punten",
                "rule_type": "campaign",
                "points_earned": 250,
                "family": "transaction",
                "moment": null,
                "campaign_version": 1,
                "suppressed_by": null,
                "reason": null,
                "line_breakdown": null
            }
        ]
    }
}

Elke regel die beoordeeld is, staat in de lijst, ook als ze niets uitbetaalde. Een item met points_earned: 0 is dus normaal: de regel gold, en de transactie haalde geen minimum. Een base rate die in stap 2 wordt overgeslagen, staat er juist niet bij: dat tarief is nooit beoordeeld, en met nul punten in de lijst zou de response een berekening beschrijven die niet heeft plaatsgevonden. Zie de rules_applied-uitsplitsing voor de volledige veldreferentie.


Minimaal transactiebedrag

Een regel kan een min_transaction_amount in centen hebben. Transacties onder die drempel activeren de regel niet. Zo kun je:

  • alleen basispunten geven op aankopen boven een bepaalde waarde
  • de bonusvermenigvuldigers van je campagnes op diezelfde aankopen tegenhouden: een vermenigvuldiger werkt op de basispunten die echt zijn toegekend, en onder de drempel is dat nul

Campagnes hebben hun eigen minimum

De min_transaction_amount van een campagne staat los van die van een verdienregel, en wordt uitgedrukt in euro's in plaats van centen.


Regelwijzigingen

Puntjes houdt elke wijziging van een verdienregeltarief bij: de oude waarde, de nieuwe waarde en het tijdstip. Zo heb je een audittrail van je tariefaanpassingen.

Regels gelden op het moment van de transactie

Puntjes rekent de punten uit op het moment dat je de transactie indient. Pas je het tarief van een regel aan, dan geldt dat alleen voor transacties daarna. Bestaande transacties en de punten die ze opleverden, worden niet opnieuw berekend.