Need Help with API Integration?
Don't want to code it yourself? Let us handle your Zapier, Make.com, or custom API integration professionally!
🔌 API Documentation
Integrate Loyalty iCard with Zapier, Make.com, or your custom applications
📡 API Status Checking...
⚡ Zapier Integration
Connect Loyalty iCard to 5000+ apps using Zapier webhooks. No coding required!
- Create a Zap in your Zapier account and select "Webhooks by Zapier" as the trigger or action
- Choose "Custom Request" to send data to our API endpoints
- Configure the webhook with the endpoint URL, method, and authentication headers
- Map your data from other apps to our API parameters
- Test and activate your Zap!
🔐 Authentication
All API requests require authentication. For external integrations like Zapier, use session-based authentication with CSRF token.
Session Authentication (Web)
Include CSRF token in all POST/PUT/DELETE requests:
X-CSRF-TOKEN: your_csrf_token
Content-Type: application/json
Accept: application/json
Base URL
https://loyaltyicard.com
💡 Tip: For Zapier integration, use the full URL including https:// prefix
📍 Member Check-in
Record member attendance or visit. Perfect for tracking foot traffic.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
programId |
integer | Yes | Campaign/Program ID |
memberId |
string | Yes | Member ID or External ID from pass |
location |
string | No | Check-in location (e.g., "Main Entrance") |
scannerId |
string | No | Scanner device identifier |
Example Request (cURL)
curl -X POST https://loyaltyicard.com/api/passkit/member/checkin \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"programId": 1,
"memberId": "MEM123456",
"location": "Main Store",
"scannerId": "SCN-001"
}'
Response
{
"success": true,
"message": "Check-in successful",
"memberId": "pk_abc123",
"memberName": "John Doe",
"totalVisits": 15,
"checkInTime": "2026-02-12T10:30:00Z"
}
➕ Add Points
Add loyalty points to a member's account.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
programId |
integer | Yes | Campaign/Program ID |
memberId |
string | Yes | Member ID or External ID |
points |
integer | Yes | Number of points to add |
scannerId |
string | No | Scanner device identifier |
💡 Use Case: Automatically add points when a customer makes a purchase in Shopify, WooCommerce, or any eCommerce platform!
Example Request
curl -X POST https://loyaltyicard.com/api/passkit/member/add-points \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"programId": 1,
"memberId": "MEM123456",
"points": 50
}'
Response
{
"success": true,
"message": "Successfully added 50 points",
"memberId": "pk_abc123",
"memberName": "John Doe",
"newBalance": 250
}
🎁 Redeem Points
Redeem/burn points from a member's account for rewards.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
programId |
integer | Yes | Campaign/Program ID |
memberId |
string | Yes | Member ID or External ID |
points |
integer | No | Points to redeem (0 = mark as redeemed without burning) |
Response
{
"success": true,
"message": "Reward redeemed! (-100 points)",
"memberId": "pk_abc123",
"memberName": "John Doe",
"pointsRedeemed": 100,
"newBalance": 150
}
👤 Enroll New Member
Add a new member to your loyalty program.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
programId |
string | Yes | PassKit Program ID |
tierId |
string | Yes | Tier ID within the program |
externalId |
string | No | Your unique identifier for member |
person.emailAddress |
string | Yes | Member email address |
person.forename |
string | No | First name |
person.surname |
string | No | Last name |
person.mobileNumber |
string | No | Phone number |
points |
integer | No | Starting points (default: 0) |
💡 Zapier Use Case: Auto-enroll new customers from Shopify, Mailchimp, or any CRM into your loyalty program!
Example Request
{
"programId": "loyalty_program_123",
"tierId": "tier_bronze",
"externalId": "customer_456",
"person": {
"emailAddress": "john@example.com",
"forename": "John",
"surname": "Doe",
"mobileNumber": "+1234567890"
},
"points": 100
}
👁️ Get Member Details
Retrieve member information and point balance.
Response
{
"id": "pk_abc123",
"externalId": "customer_456",
"programId": "loyalty_program_123",
"tierId": "tier_gold",
"points": 250,
"person": {
"emailAddress": "john@example.com",
"forename": "John",
"surname": "Doe",
"displayName": "John Doe"
},
"checkInCount": 15,
"created": "2026-01-15T10:00:00Z",
"updated": "2026-02-12T10:30:00Z"
}
📋 List Members
Get all members in a program.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
limit |
integer | Number of results (default: 100) |
offset |
integer | Skip results for pagination |
🔔 Send Push Notification
Send push notifications to pass holders.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
campaignId |
integer | Yes | Campaign ID to send notification to |
title |
string | Yes | Notification title |
message |
string | Yes | Notification message |
segment |
string | No | Target segment (all, active_loyalty, etc.) |
🪝 Webhooks (Outgoing)
Coming soon: Configure webhooks to receive real-time notifications when events occur in your loyalty program.
⏳ Coming Soon: Webhook configuration will be available in an upcoming update. This will allow you to receive events like member enrollments, point changes, and redemptions in real-time.
Planned Events:
member.enrolled- New member joinsmember.points.earned- Points addedmember.points.redeemed- Points usedmember.checkin- Member checked inmember.tier.changed- Tier upgrade/downgrade
⚠️ Error Codes
| HTTP Code | Meaning | Description |
|---|---|---|
200 |
Success | Request was successful |
400 |
Bad Request | Missing or invalid parameters |
401 |
Unauthorized | Invalid or missing authentication |
404 |
Not Found | Resource (member, program) not found |
500 |
Server Error | Internal server error |
Error Response Format
{
"success": false,
"error": "Member not found. The scanned ID does not match any enrolled member."
}