Skip to main content

Update a member

PUT /members/{id}

Requires the members:write permission.

Authorization​

X-API-Key required

Parameters​

NameLocationTypeRequired
idpathstringYes

Request Body​

FieldTypeRequiredLimitsDescription
titleMr, Ms, Mrs, Miss, Sir, Madam, Dr, RevNoOptional member title or honorific.
namestringNomin length 1Updated member full name.
firstNamestringNomax length 120Updated member first name.
lastNamestringNomax length 120Updated member last name.
emailstring (email)NoUpdated member email address.
addressobjectNo
contactPreferencesobjectNo
memberIdstringNoUnique member identifier. Must not contain spaces.
memberSincestring (date-time)NoUpdated member joined date.
typeMember, VisitorNoUpdated member category.
statusactive, inactiveNoUpdated member account status.
locationstringNomax length 100Member location or branch.
phonestringNomax length 50Member phone number.
dateOfBirthstring (date)NoMember date of birth.
gendermale, female, other, prefer_not_to_sayNoMember gender.
notesstringNomax length 5000Internal member notes.
flaggedbooleanNoWhether the member is flagged for staff attention.
flagNotestringNomax length 500Optional note shown when the member is flagged.
customFieldsobjectNoUpdated organisation-defined custom field values keyed by custom field key. Use first-party fields such as phone, dateOfBirth, gender, and notes at the top level.
photostringNoBase64 image data URL. On update, an empty string removes the photo and existing URLs leave it unchanged
membershipTypeIdstringNoOptional membership assignment after saving the member
membershipPricingOptionIdstringNoPricing option id within the selected membership type
membershipManualPaymentobjectNo
deactivateLinkedMembersbooleanNoWhen changing status to inactive, also deactivate linked active members
statusChangeReasonobjectNo

Request Examples​

curl -X PUT "https://api.remypass.com/api/v1/public/members/507f1f77bcf86cd799439011" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Mr",
  "name": "string",
  "firstName": "string",
  "lastName": "string",
  "email": "user@example.com",
  "address": {
    "addressLine1": "23 Gastons Road",
    "addressLine2": "",
    "city": "London",
    "region": "Greater London",
    "postalCode": "SW1A 1AA",
    "country": "United Kingdom"
  },
  "contactPreferences": {
    "email": true,
    "post": true,
    "phone": true
  },
  "memberId": "string",
  "memberSince": "2026-01-01T12:00:00.000Z",
  "type": "Member",
  "status": "active",
  "location": "Main Street",
  "phone": "+447700900123",
  "dateOfBirth": "1990-04-20",
  "gender": "male",
  "notes": "Prefers email contact",
  "flagged": true,
  "flagNote": "Check eligibility before issuing renewal",
  "customFields": {
    "membershipLevel": "Gold",
    "favoriteLocation": "Main Street",
    "newsletterOptIn": true
  },
  "photo": "string",
  "membershipTypeId": "507f1f77bcf86cd799439011",
  "membershipPricingOptionId": "string",
  "membershipManualPayment": {
    "method": "cash",
    "amount": 1,
    "currency": "507f1f77bcf86cd799439011",
    "reference": "string",
    "notes": "string"
  },
  "deactivateLinkedMembers": true,
  "statusChangeReason": {
    "reason": "string",
    "reasonLabel": "string",
    "comments": "string"
  }
}'

Use Case Examples​

Update member​

curl -X PUT https://api.remypass.com/api/v1/public/members/507f1f77bcf86cd799439011 \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Prof",
"name": "Prof. John Smith",
"phone": "+447700900124",
"dateOfBirth": "1988-09-12",
"gender": "male",
"notes": "Updated contact preference",
"memberId": "MEM001",
"status": "active",
"customFields": {
"department": "Research",
"position": "Senior Researcher"
}
}'

Responses​

StatusDescription
200Member updated.
400Bad request. The top-level message explains what is invalid and, where applicable, the errors array contains structured field details.
401Missing or invalid API key.
403The caller is not allowed to access this resource.
404Resource not found.
429Rate limit exceeded.
500Server error.

200 Response Example​

{
"success": true,
"message": "string",
"data": {
"_id": "507f1f77bcf86cd799439011",
"title": "Mr",
"name": "John Doe",
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"address": {
"addressLine1": "23 Gastons Road",
"addressLine2": "",
"city": "London",
"region": "Greater London",
"postalCode": "SW1A 1AA",
"country": "United Kingdom"
},
"contactPreferences": {
"email": true,
"post": true,
"phone": true
},
"memberId": "MEM001",
"memberSince": "2024-01-15T00:00:00.000Z",
"type": "Member",
"status": "active",
"location": "Main Street",
"phone": "+447700900123",
"dateOfBirth": "1990-04-20",
"gender": "male",
"notes": "Prefers email contact",
"flagged": true,
"flagNote": "Check eligibility before issuing renewal",
"customFields": {
"membershipLevel": "Gold",
"favoriteLocation": "Main Street",
"newsletterOptIn": true
},
"passes": [
{
"passInstance": {
"_id": "507f1f77bcf86cd799439013",
"serialNumber": null,
"status": null,
"member": null,
"pass": null,
"recipientName": null,
"recipientEmail": null,
"expiryDate": null,
"issuedAt": null,
"walletUrls": {},
"maxUses": null,
"usesRemaining": null,
"redeemedCount": null,
"lastRedeemedAt": null,
"passType": null,
"customFields": {},
"eventTime": null,
"eventName": null,
"seatInfo": {},
"recipientTitle": null,
"voided": null,
"voidedAt": null,
"isNonMemberTicket": null,
"currentStamps": null,
"lifetimeStampsEarned": null,
"lastStampUpdate": null,
"createdAt": null,
"updatedAt": null,
"membershipManaged": null,
"memberMembershipId": null
},
"issuedAt": "2026-01-01T12:00:00.000Z",
"issuedBy": null,
"status": "active",
"expiryDate": "2026-01-01T12:00:00.000Z"
}
],
"createdAt": "2026-01-01T12:00:00.000Z",
"updatedAt": "2026-01-01T12:00:00.000Z",
"walletSummary": {
"total": 1,
"added": 1,
"status": "no_pass"
},
"photo": "string",
"linkedMemberGroupId": "507f1f77bcf86cd799439011"
}
}

Response Fields​

FieldTypeDescriptionAttributes
successboolean
messagestring
dataobject
Show child attributes
  • _id: string
  • title: Mr, Ms, Mrs, Miss, Sir, Madam, Dr, Rev — Optional member title or honorific.
  • name: string — Member full name.
  • firstName: string — Member first name.
  • lastName: string — Member last name.
  • email: string (email) — Member email address. Used for pass delivery emails when a pass is issued.
  • address: object
    Show child attributes
    • addressLine1: string
    • addressLine2: string
    • city: string
    • region: string — State, county, province, or region.
    • postalCode: string
    • country: string — Country name or ISO country code.
  • contactPreferences: object — Optional marketing communication preferences. Essential service communications are unaffected.
    Show child attributes
    • email: boolean
    • post: boolean
    • phone: boolean
  • memberId: string — External or organisation-defined member identifier.
  • memberSince: string (date-time) — Date the member joined. Defaults to the creation date when omitted.
  • type: Member, Visitor — Member category. Defaults to Member when omitted.
  • status: active, inactive — Member account status. Defaults to active when omitted.
  • location: string — Member location or branch.
  • phone: string — Member phone number.
  • dateOfBirth: string (date-time) — Member date of birth.
  • gender: male, female, other, prefer_not_to_say — Member gender.
  • notes: string — Internal member notes.
  • flagged: boolean — Whether the member is flagged for staff attention.
  • flagNote: string — Optional note shown when the member is flagged.
  • customFields: object — Organisation-defined custom field values keyed by custom field key. Use customFields only for fields configured by the organisation; use first-party fields such as phone, dateOfBirth, gender, and notes at the top level.
  • passes: array of object — Pass wrappers included by member list and lookup endpoints
    Show child attributes
    • passInstance: object
      Show child attributes
      • _id: string
      • serialNumber: string
      • status: active, inactive, expired, void
      • member: string or object
      • pass: string or object
      • recipientName: string
      • recipientEmail: string (email)
      • expiryDate: string (date-time)
      • issuedAt: string (date-time)
      • walletUrls: object
      • maxUses: integer — Maximum number of successful scans allowed for an event ticket. Defaults to 1 for tickets issued before multi-use support or when omitted.
      • usesRemaining: integer — Remaining successful scans available on an event ticket.
      • redeemedCount: integer — Number of successful event ticket redemptions.
      • lastRedeemedAt: string (date-time) — Timestamp of the latest successful event ticket redemption.
      • passType: generic, eventTicket, loyalty
      • customFields: object
      • eventTime: string (date-time)
      • eventName: string
      • seatInfo: object
      • recipientTitle: string
      • voided: boolean
      • voidedAt: string (date-time)
      • isNonMemberTicket: boolean
      • currentStamps: number
      • lifetimeStampsEarned: number
      • lastStampUpdate: string (date-time)
      • createdAt: string (date-time)
      • updatedAt: string (date-time)
      • membershipManaged: boolean — Included within member lookup pass wrappers
      • memberMembershipId: string — Managing membership _id, when included in a member lookup pass wrapper
    • issuedAt: string (date-time)
    • issuedBy: string or object
      Show child attributes
      • _id: string
      • name: string
      • email: string (email)
    • status: active, inactive, expired, void
    • expiryDate: string (date-time)
  • createdAt: string (date-time)
  • updatedAt: string (date-time)
  • walletSummary: object — Included on member list responses
    Show child attributes
    • total: integer
    • added: integer
    • status: no_pass, added, not_added
  • photo: string — Stored member photo URL
  • linkedMemberGroupId: string