← Back to Home
🚀 INTEGRATION SERVICE

Need Help with API Integration?

Don't want to code it yourself? Let us handle your Zapier, Make.com, or custom API integration professionally!

Hire on Fiverr →

📡 API Status Checking...

Checking Check-in API
Checking Add Points API
Checking Redeem API
Checking Enroll API
Checking Get Member API
Checking Push Notification API

⚡ Zapier Integration

Connect Loyalty iCard to 5000+ apps using Zapier webhooks. No coding required!

  1. Create a Zap in your Zapier account and select "Webhooks by Zapier" as the trigger or action
  2. Choose "Custom Request" to send data to our API endpoints
  3. Configure the webhook with the endpoint URL, method, and authentication headers
  4. Map your data from other apps to our API parameters
  5. 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.

POST /api/passkit/member/checkin Checking

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.

POST /api/passkit/member/add-points Checking

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.

POST /api/passkit/member/redeem Checking

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.

POST /api/passkit/member/enrol Checking

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.

GET /api/passkit/member/{id} Checking
GET /api/passkit/member/external/{programId}/{externalId}

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.

GET /api/passkit/members/{programId}

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.

POST /api/passkit/push-notification Checking

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 joins
  • member.points.earned - Points added
  • member.points.redeemed - Points used
  • member.checkin - Member checked in
  • member.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."
}