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}'
Parameters Detalles Descripción
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/loyalty-card/join/{join_key}",
            "last_datetime": null,
            "datetime": "2026-11-09 16:11:35"
        }
    ],
    "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}'
{
    "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/loyalty-card/join/{join_key}",
        "last_datetime": null,
        "datetime": "2026-11-09 16:11:35"
    }
}
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'
Parameters Detalles Descripción
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"
    }
}