Get Fulfillments
Get all claimed offers, perks, and grants
/members/me/wallet/fulfillmentsOverview
Returns all claimed offers, perks, and grants for the authenticated member. This includes items that have been redeemed using points, along with their verification codes and status.
Fulfillments represent the "claimed items" in a member's wallet - things they've spent points on.
Authentication
Requires a valid Clerk JWT token in the Authorization header.
Query Parameters
statusquerystringFilter by fulfillment status group
Available values:
"active"- claimed, pending_approval, modified, approved"completed"- fulfilled"cancelled"- rejected, cancelled, expired
sourceTypequerystringFilter by source type
Available values: "offer", "perk", "grant"
propertyIdquerynumberFilter by property ID for property-specific redemptions
limitquerynumberMaximum number of fulfillments to return (default: 20, max: 100)
offsetquerynumberNumber of fulfillments to skip for pagination (default: 0)
Request
curl -X GET "http://localhost:3000/v1/members/me/wallet/fulfillments?status=active&limit=10" \
-H "Authorization: Bearer YOUR_CLERK_JWT"Response
itemsarrayrequiredList of fulfillments
array items
idstringrequiredFulfillment ID (UUID)
sourceTypestringrequiredSource type: "offer", "perk", or "grant"
namestringrequiredName of the claimed item
shortDescriptionstringBrief description of the item
catalogTypestringCatalog type: "offer" or "perk"
redemptionTypestringHow this item is redeemed: "instant", "manual", "property_specific"
propertyNamestringProperty name for property-specific redemptions
reservationIdstringExternal reservation ID if tied to a specific booking
statusstringrequiredCurrent fulfillment status
approvalStatusstringApproval status for items requiring approval
pointsChargednumberPoints spent to claim this item
claimedAtstringrequiredISO 8601 timestamp when item was claimed
fulfilledAtstringISO 8601 timestamp when item was fulfilled
expiresAtstringISO 8601 timestamp when item expires
responseDeadlinestringISO 8601 timestamp for response deadline (for items requiring approval)
verificationCodestringCode to verify redemption with property/vendor
activationCodestringCode to activate the redemption
qrCodeUrlstringURL to QR code for mobile redemption
mediaobjectMedia assets for the item
properties
heroImageUrlstringHero image URL
cardImageUrlstringCard/thumbnail image URL
howToRedeemstringInstructions on how to redeem this item
metadataobjectAdditional metadata specific to the fulfillment type
totalnumberrequiredTotal number of fulfillments matching filters
statusCountsobjectrequiredCount of fulfillments by status group
properties
activenumberrequiredNumber of active fulfillments
completednumberrequiredNumber of completed fulfillments
cancellednumberrequiredNumber of cancelled fulfillments
offsetnumberrequiredCurrent pagination offset
limitnumberrequiredCurrent pagination limit
Response
{
"items": [
{
"id": "fulfill_550e8400-e29b-41d4-a716-446655440000",
"sourceType": "offer",
"name": "Suite Upgrade",
"shortDescription": "Complimentary upgrade to next available suite",
"catalogType": "offer",
"redemptionType": "property_specific",
"propertyName": "Luxury Resort & Spa",
"reservationId": "ABC123",
"status": "approved",
"approvalStatus": "approved",
"pointsCharged": 1500,
"claimedAt": "2024-04-10T09:15:00Z",
"fulfilledAt": null,
"expiresAt": "2024-04-20T23:59:59Z",
"responseDeadline": "2024-04-15T12:00:00Z",
"verificationCode": "SUITE-2024-789",
"activationCode": null,
"qrCodeUrl": "https://cdn.journey.com/qr/fulfill_550e8400.png",
"media": {
"heroImageUrl": "https://cdn.journey.com/offers/suite-upgrade-hero.jpg",
"cardImageUrl": "https://cdn.journey.com/offers/suite-upgrade-card.jpg"
},
"howToRedeem": "Present verification code at check-in or call the property directly.",
"metadata": {
"currentRoomType": "Standard King",
"requestedRoomType": "Junior Suite",
"confirmedRoomType": "Executive Suite"
}
},
{
"id": "fulfill_550e8400-e29b-41d4-a716-446655440001",
"sourceType": "perk",
"name": "Free Breakfast",
"shortDescription": "Complimentary breakfast for two at resort restaurant",
"catalogType": "perk",
"redemptionType": "instant",
"propertyName": "Downtown Hotel",
"reservationId": "XYZ789",
"status": "fulfilled",
"approvalStatus": null,
"pointsCharged": 500,
"claimedAt": "2024-04-01T14:30:00Z",
"fulfilledAt": "2024-04-05T08:00:00Z",
"expiresAt": null,
"responseDeadline": null,
"verificationCode": "BREAKFAST-456",
"activationCode": null,
"qrCodeUrl": null,
"media": {
"heroImageUrl": "https://cdn.journey.com/perks/breakfast-hero.jpg",
"cardImageUrl": "https://cdn.journey.com/perks/breakfast-card.jpg"
},
"howToRedeem": "Show verification code to restaurant host.",
"metadata": null
}
],
"total": 8,
"statusCounts": {
"active": 3,
"completed": 4,
"cancelled": 1
},
"offset": 0,
"limit": 10
}Status Groups
Active
- claimed: Item has been claimed but not yet processed
- pending_approval: Waiting for property/vendor approval
- modified: Property has modified the request
- approved: Approved and ready for use
Completed
- fulfilled: Item has been successfully redeemed/used
Cancelled
- rejected: Property/vendor rejected the redemption
- cancelled: Member or admin cancelled
- expired: Item expired before use
Source Types
Offer
- Source: Loyalty catalog offers
- Points: Usually costs points to claim
- Examples: Suite upgrades, spa credits, dining vouchers
Perk
- Source: Tier-based entitlements
- Points: Usually free based on membership tier
- Examples: Free breakfast, late checkout, WiFi
Grant
- Source: Special grants/vouchers
- Points: May be free or discounted
- Examples: Promotional vouchers, comp stays
Redemption Types
instant
- Behavior: Immediately active upon claiming
- Usage: Can be used right away
- Examples: Digital vouchers, account credits
manual
- Behavior: Requires manual processing/approval
- Usage: Must wait for approval before use
- Examples: Custom requests, special arrangements
property_specific
- Behavior: Must be used at a specific property
- Usage: Tied to a reservation at that property
- Examples: Room upgrades, property dining credits
Verification Codes
Active fulfillments include verification codes for redemption:
- verificationCode: Primary code for property/vendor
- activationCode: Secondary code if needed
- qrCodeUrl: QR code for mobile scanning
Related Endpoints
- Get Fulfillment - Get single fulfillment details
- Cancel Fulfillment - Cancel active fulfillment
- Get Balance - Check available points