Members APIWallet
Cancel Fulfillment
Cancel an active fulfillment
POST
/members/me/wallet/fulfillments/{fulfillmentId}/cancelOverview
Cancels a claimed fulfillment and refunds the points to the member's wallet. Only active fulfillments can be cancelled.
This action is irreversible and will refund points according to the cancellation policy.
Authentication
Requires a valid Clerk JWT token in the Authorization header.
Path Parameters
fulfillmentIdpathstringrequiredUUID of the fulfillment to cancel
Request
curl -X POST "http://localhost:3000/v1/members/me/wallet/fulfillments/fulfill_550e8400-e29b-41d4-a716-446655440000/cancel" \
-H "Authorization: Bearer YOUR_CLERK_JWT"Response
successbooleanrequiredWhether the cancellation was successful
messagestringrequiredHuman-readable confirmation message
Response
{
"success": true,
"message": "Fulfillment cancelled successfully"
}Cancellable Statuses
Only fulfillments with these statuses can be cancelled:
claimed
- Timing: Just claimed, not yet processed
- Refund: Full point refund
- Impact: No impact on property
pending_approval
- Timing: Waiting for property approval
- Refund: Full point refund
- Impact: Notifies property of cancellation
modified
- Timing: Property modified, awaiting member response
- Refund: Full point refund
- Impact: Notifies property of cancellation
approved
- Timing: Approved but not yet used
- Refund: Full point refund
- Impact: Notifies property, may affect relationship
Non-Cancellable Statuses
These fulfillments cannot be cancelled:
fulfilled
- Reason: Already redeemed/used
- Action: Contact support for exceptional cases
rejected
- Reason: Already declined by property
- Action: Points already refunded
cancelled
- Reason: Already cancelled
- Action: No further action needed
expired
- Reason: Already expired
- Action: Points typically already refunded
Cancellation Process
When a fulfillment is successfully cancelled:
- Status Update: Fulfillment status changes to "cancelled"
- Point Refund: Points are refunded to the member's wallet
- Property Notification: Property is notified of cancellation (if applicable)
- Code Invalidation: Verification codes become invalid
- Transaction Record: Cancellation is logged for audit purposes
Refund Details
- Point Type: Same asset type as originally charged (VALID/CREDIT)
- Amount: Full amount originally charged
- Timing: Immediate (synchronous with API call)
- Transaction: Creates a CREDIT transaction in wallet
Best Practices
Before Cancelling
- Check Status: Ensure fulfillment can be cancelled
- Review Terms: Some offers may have no-cancellation policies
- Contact Property: For courtesy, especially if close to travel dates
After Cancelling
- Confirm Refund: Check wallet balance to confirm points returned
- Save Confirmation: Keep the success message for records
- Property Follow-up: Contact property if needed to confirm cancellation
Error Handling
Common error scenarios:
Fulfillment Not Found (404)
- Cause: Invalid fulfillment ID or not owned by member
- Solution: Verify the fulfillment ID and membership
Cannot Cancel (400)
- Cause: Fulfillment status doesn't allow cancellation
- Solution: Check fulfillment status and cancellation rules
System Error (500)
- Cause: Backend processing error
- Solution: Retry or contact support if persistent
Related Endpoints
- Get Fulfillment - Check fulfillment status before cancelling
- Get Fulfillments - List all fulfillments
- Get Balance - Verify refund processed