Journey Docs
Members APIWallet

Get Fulfillment

Get details of a specific fulfillment

GET/members/me/wallet/fulfillments/{fulfillmentId}

Overview

Returns detailed information about a specific fulfillment including verification codes, redemption instructions, and current status.

Use this endpoint to display full fulfillment details in the member app.

Authentication

Requires a valid Clerk JWT token in the Authorization header.

Path Parameters

fulfillmentIdpathstringrequired

UUID of the fulfillment to retrieve

Request

curl -X GET "http://localhost:3000/v1/members/me/wallet/fulfillments/fulfill_550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer YOUR_CLERK_JWT"

Response

Returns a single fulfillment object with the same structure as items in the Get Fulfillments response.

Response

{
  "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 at +1-555-LUXURY.",
  "metadata": {
    "currentRoomType": "Standard King",
    "requestedRoomType": "Junior Suite", 
    "confirmedRoomType": "Executive Suite",
    "specialRequests": "High floor, city view if available"
  }
}

Status Details

claimed

  • Meaning: Recently claimed, being processed
  • Actions: Show as "Processing"
  • Codes: Not yet available

pending_approval

  • Meaning: Waiting for property approval
  • Actions: Show "Pending Approval" with deadline
  • Codes: Not yet available

approved

  • Meaning: Approved and ready to use
  • Actions: Show verification code and redemption instructions
  • Codes: Available for use

modified

  • Meaning: Property modified the request
  • Actions: Show modified terms, may need member confirmation
  • Codes: Available with updated details

fulfilled

  • Meaning: Successfully redeemed/used
  • Actions: Show as completed
  • Codes: May be hidden or marked as used

rejected

  • Meaning: Property declined the request
  • Actions: Show rejection reason, offer alternatives
  • Codes: Not available

cancelled

  • Meaning: Cancelled by member or admin
  • Actions: Show as cancelled
  • Codes: Not available

expired

  • Meaning: Item expired before use
  • Actions: Show as expired
  • Codes: Not available

Verification Codes

For active fulfillments (not cancelled/expired):

verificationCode

  • Purpose: Primary code for property verification
  • Format: Usually alphanumeric (e.g., "SUITE-2024-789")
  • Usage: Present to front desk/concierge

activationCode

  • Purpose: Secondary activation if needed
  • Format: Numeric or alphanumeric
  • Usage: For digital/mobile redemptions

qrCodeUrl

  • Purpose: QR code for mobile scanning
  • Format: URL to PNG/SVG image
  • Usage: Scan at property kiosks or mobile apps

Metadata Examples

Different fulfillment types include specific metadata:

Suite Elevation

{
  "currentRoomType": "Standard King",
  "requestedRoomType": "Junior Suite",
  "confirmedRoomType": "Executive Suite"
}

Timeless Stay

{
  "requestedCheckinTime": "10:00",
  "requestedCheckoutTime": "18:00", 
  "modifiedCheckinTime": "11:00",
  "modifiedCheckoutTime": "17:00"
}

On this page