Loyalty programs
The stamp cards of your business. The staff screen keys and PIN are not returned.
GET https://neoscrew.website/api/loyalty-programs/
curl --request GET \
--url 'https://neoscrew.website/api/loyalty-programs/' \
--header 'Authorization: Bearer {api_key}'
--url 'https://neoscrew.website/api/loyalty-programs/' \
--header 'Authorization: Bearer {api_key}'
| Parameters | Detalls | Descripció |
|---|---|---|
| link_id | Optional Integer | Only the programs of this microweb. |
| order_by | Optional String | What field to order the results by. Allowed values are: program_id , name , datetime. |
| order_type | Optional String | The ordering of the results. Allowed values are: ASC for ascending ordering, and DESC for descending ordering. |
| page | Optional Integer | The page number that you want results from. Defaults to 1. |
| results_per_page | Optional Integer | How many results you want per page. Allowed values are: 10 , 25 , 50 , 100 , 250 , 500 , 1000. Defaults to 25. |
{
"data": [
{
"id": 1,
"user_id": 1,
"link_id": 1,
"name": "Coffee card",
"reward": "A free coffee",
"points_goal": 10,
"cooldown_hours": 4,
"expire_days": 0,
"color": "#087f7b",
"stamp_icon": "mug-hot",
"logo_url": null,
"business_name": null,
"bizum_phone": "600000000",
"join_url": "https://neoscrew.website/ca/loyalty-card/join/{join_key}",
"last_datetime": null,
"datetime": "2026-11-09 16:21:36"
}
],
"meta": {
"page": 1,
"total_pages": 1,
"results_per_page": 25,
"total_results": 1
}
}
GET https://neoscrew.website/api/loyalty-programs/{program_id}
curl --request GET \
--url 'https://neoscrew.website/api/loyalty-programs/{program_id}' \
--header 'Authorization: Bearer {api_key}'
--url 'https://neoscrew.website/api/loyalty-programs/{program_id}' \
--header 'Authorization: Bearer {api_key}'
{
"data": {
"id": 1,
"user_id": 1,
"link_id": 1,
"name": "Coffee card",
"reward": "A free coffee",
"points_goal": 10,
"cooldown_hours": 4,
"expire_days": 0,
"color": "#087f7b",
"stamp_icon": "mug-hot",
"logo_url": null,
"business_name": null,
"bizum_phone": "600000000",
"join_url": "https://neoscrew.website/ca/loyalty-card/join/{join_key}",
"last_datetime": null,
"datetime": "2026-11-09 16:21:36"
}
}
Like the staff scanner: the QR of the card changes every minute, so the customer has to show it at that moment. The waiting time between visits of the program applies.
POST https://neoscrew.website/api/loyalty-programs/{program_id}/scan
curl --request POST \
--url 'https://neoscrew.website/api/loyalty-programs/{program_id}/scan' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'qr={qr}' \
--data-urlencode 'points=1'
--url 'https://neoscrew.website/api/loyalty-programs/{program_id}/scan' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'qr={qr}' \
--data-urlencode 'points=1'
| Parameters | Detalls | Descripció |
|---|---|---|
| qr | Required String | The text of the QR on the customer's card. |
| points | Optional Integer | Stamps to add, from 1 to 10. Defaults to 1. |
{
"data": {
"scan_id": 1,
"is_reward": false,
"message": "Point added"
}
}