Pay with Points
Pay with Points is our product that allows you to create card-linked offer programs for your customers, at specified merchants.
In layman terms, your customers will link one of their payment methods to one of the offers that you chose to run. Then, when they purchase something at that merchant, they will have the option to redeem the offer that they had linked in your platform, which will give them a discount, or cashback (depending on the offer). The “link” is a software operation, not a physical one. Keep reading for the details, and keep in mind that everything happens through our APIs.
In fact, the Pay with Points product is entirely supported by our main API and as such it benefits from the same simple Restful ideas. You will create and access individual resources, and combine them so to run the offer programs.
Here are the resources involved in the process.
- Offer: This is a resource that you create, by specifying what is the Merchant it relates to (we will give you the Merchant ID), and what are the offer details: you can customize several features, such as the text that will be displayed to the customer at the point-of-sale.
- Person: This is a resource that you create to represent one of your customers. Given a customer that you want to enroll in a Pay with Points program, if you have already created a Person for them (for example because you already use our Transactionz API for them), then you do not need to create a new one.
- Card: This is another resource you create. You should ask your customer to enter the card details as a means of verification, as well as to reassure them that their card details are not stored. In fact, we don’t store the details either.
- CardOffer: This is a resource that represents the link between a Card and an Offer. You will create this to mean that a customer is enrolled in a program.
API Details: The reason why the REST principles have become a standard is because they allow developers to write simple, robust, and maintainable code that access individual resources and then combines them using their IDs, as per the UNIX principle "do one thing well".
The same holds true for the Pay with Points product. The data flow through the API is straightforward, and this section illustrates the recommended way to implement it. Let’s say, for the sake of the example, that you want to run a program for BP.
- Create an Offer via the endpoint POST /offers. This will require the offer details, that you choose, and the Merchant ID, that we give you. For BP it could be 58725. The API will return you the Offer ID.
- Create a Person via the endpoint POST /persons, if you haven’t already, with the customer’s full name and email address. This will return you the Person ID.
- Create a Card for this customer, if you haven’t already. This will require the Person ID and the card details (which we don’t store). It will return you the Card ID.
- “Link” the Card to the Offer, via the endpoint POST /cards/:id/offers. This will require the Card ID and the Offer ID and will return you the CardOffer ID, which you will need only for tracking purposes.
That’s it. When your customer redeems the offer at the selected merchants, we will notify you. Only if you want, the notification can also be sent to you in real-time through a webhook – that you need to communicate during the onboarding and must support HTTPS and HMAC-SHA256.