addToWallet.co
Workspaces
Pricing
API Docs
Tutorial Blog
Tools
Google Sheet Extension
PDF to Pass
Image to Pass
QR Code Generator
Barcode Generator
Integrations
© 2026 Hazelnut Ventures LLC. All Rights Reserved.
FAQsTrustContact Us
Overview
AuthenticationPass JSON GeneratorCreate PassGet PassUpdate PassDelete PassNotificationsGet Credits
Create TemplateList TemplatesGet TemplateUpdate TemplateDelete TemplateDynamic Pass Gen
Create Loyalty TemplateManage LoyaltyActivity Log
List User GroupsAdd UserList UsersUpdate UserDelete UserBatch Status

Loyalty Progress Update API

Overview

Updates the stamp / points count on a loyalty member's pass. This is the operation behind the scan-to-check-in QR code: scanning a member's pass opens a check-in screen that calls this endpoint. The pass artwork re-renders to the image for the new count, an optional push notification is sent, and the change is written to the Activity Log.

Just check in — the count is handled for you

You don't need to know or send the member's current count. The server reads it and applies the change for you:

  • Check in (default) — send an empty body and the count goes up by +1 (e.g. a normal visit: 2 → 3).
  • Custom value — send updatedCount to set an exact count instead. Applied only when present (e.g. correct a mistaken stamp, or grant a bonus).
  • Reset — send resetVisits: true to start the card over at its initial count (e.g. after the reward is redeemed).

This is loyalty-only

Only loyalty passes have a counter, so this endpoint is loyalty-specific. To change a normal dynamic pass member's details there is no counter — you simply edit their fields with Update User.

Base URL

https://app.addtowallet.co
PUT/api/loyalty-pass/check-in/:customerId

Path Parameters

  • customerId (string, required): The member to check in. This is the customerId returned by Add User and listed by List Users.

Authentication

All API requests must include your API key in the request headers:

"apikey": "your-api-key-here"

Request Body

The body is optional. With no body, the check-in simply increments the member's count by +1.

Request Body

NameTypeRequiredDescription
updatedCountnumberNo
Set an exact (absolute) count on the pass. Applied only when sent; omit it to just add +1.
resetVisitsbooleanNo
Set true to reset the card to its initial count (e.g. after the reward is redeemed). Logs the action as a reset.
notificationDataobjectNo
Optional push notification sent to the member's wallet on check-in.
headingstringNo
Notification title.
bodystringNo
Notification body.

Request Example

A plain check-in — the server reads the current count and bumps it by +1 (e.g. 2 → 3):

curl -X PUT 'https://app.addtowallet.co/api/loyalty-pass/check-in/686d10e7c2f0bc5cdf25c84b' \
  -H 'apikey: your-api-key-here' \
  -H 'Content-Type: application/json' \
  -d '{
  "notificationData": {
    "heading": "Thanks for visiting!",
    "body": "One stamp closer to your reward."
  }
}'

Set an exact count instead with updatedCount:

curl -X PUT 'https://app.addtowallet.co/api/loyalty-pass/check-in/686d10e7c2f0bc5cdf25c84b' \
  -H 'apikey: your-api-key-here' \
  -H 'Content-Type: application/json' \
  -d '{
  "updatedCount": 4
}'

Reset the card back to its initial count:

curl -X PUT 'https://app.addtowallet.co/api/loyalty-pass/check-in/686d10e7c2f0bc5cdf25c84b' \
  -H 'apikey: your-api-key-here' \
  -H 'Content-Type: application/json' \
  -d '{
  "resetVisits": true
}'

Response

On success the API confirms the update. The wallet pass is re-rendered with the image for the new count, and a visit entry is added to the activity log.

Response Example

{
  "message": "Updated pass successfully",
  "previousCount": 2,
  "updatedCount": 3
}

💡 Tracking visits

Every check-in is recorded. Review a member's full history with the Activity Log endpoint.

Error CodeDescription
400Bad Request - Invalid count value supplied.
401Unauthorized - Missing or invalid API key.
404Not Found - Customer or pass not found.
429Too Many Requests - API rate limit exceeded. Please wait before making additional requests.
500Internal Server Error - Unexpected error updating the pass. Please contact support.