POST members

POST
/members

Authorization

Bearer
headerAuthorizationBearer <token>

Paste your JWT token here

Request Body

The data transfer object containing registration information.

application/json
  1. body

Defines the DTO for posting a member, containing the necessary information for creating a new member, including personal details, contact information, and other relevant properties. The PostMemberDTO is used to transfer data from the client to the server when creating a new member, ensuring that all required information is provided and validated appropriately for the creation process.

studentNumber*string

The student number of the member.

firstName*string

The first name of the member.

Length0 <= length <= 60
lastName*string

The last name of the member.

Length0 <= length <= 60
email*string

The email address of the member.

Match^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$
Length0 <= length <= 100
phoneNumber*string

The phone number of the member.

Match^(\+?[1-9]\d{6,14}|0[1-9]\d{8})$
Length1 <= length
street*string

The street of the member.

Length0 <= length <= 40
houseNumber*string

The house number of the member.

Match^[1-9][0-9]*(?:[\s-]?[a-zA-Z0-9]{1,3})?$
Length1 <= length
postalCode*string

The postal code of the member.

Length0 <= length <= 10
city*string

The city of the member.

Length0 <= length <= 40
dateOfBirth*string

The date of birth of the member.

Formatdate-time
parentPhoneNumber?|

Phone number of the member's parent or guardian, if the member is a minor.

Match^(\+?[1-9]\d{6,14}|0[1-9]\d{8})$
subscribedMailinglistIds?array<string>|

The IDs of the mailing lists the member should be subscribed to.

preferredLanguage*Language

Defines the language preference of a member, which can be either Dutch (NL) or English (EN). This enumeration is used to indicate the preferred language for communication and content presentation for a member within the system.

Formatint32
Value in"NL""EN"
studyEnrollments?array<>|

Studies where the member is enrolled.

begunstiger?|

Indicates whether the member is a "Begunstiger".

Response Body

Created

application/json
  1. response

Represents a member of the organization. A member has various properties such as personal information, contact details, registration date, and relationships with other entities such as enrollments, group memberships, and announcements. This entity is used to manage and organize members within the system, allowing for better communication, access control, and personalized experiences based on member preferences and attributes.

id?string

The unique identifier of a member, assigned incrementally.

Formatuuid
authSystemUserId?|

The id of the member in the authentication system, used for authentication and authorization.

Formatuuid
calendarId?string

The unguessable identifier under which this member's personal iCalendar feed is published. Because calendar clients cannot authenticate, possession of this value is the only thing guarding the feed, so it is always generated with M:System.Guid.NewGuid and never derived from Backend.Models.Domain.Member.Id. It defaults to a freshly generated value so that a member can never be persisted with a guessable identifier, and it can be regenerated by the member to revoke a leaked feed URL.

Formatuuid
activationEmailSentAt?|

When the one-time account-activation email (verify email + set password) was sent to this member, if ever. Used to make sending it idempotent regardless of how many times the confirmation page is visited.

Formatdate-time
studyStatusMailSentAt?|

When the annual study-status update email was last sent to this member, if ever. Used to make sending it idempotent across retries of the yearly Hangfire job: a run only mails members whose value is null or older than 24 hours, so a Hangfire retry after a partial failure never re-mails someone already notified earlier in the same run. A 24-hour window (rather than "same calendar year") is used deliberately so that changing the configured send date to re-trigger the job later in the same year is not silently skipped for everyone.

Formatdate-time
outstandingPaymentMailSentAt?|

When the outstanding-payment reminder email was last sent to this member, if ever. Used to make sending it idempotent across retries of the weekly Hangfire job: a run only mails members whose value is null or older than 24 hours, so a Hangfire retry after a partial failure never re-mails someone already notified earlier in the same run, while still allowing next week's run to mail them again if their balance is still outstanding.

Formatdate-time
studentNumber*string

The student number of the member.

Length1 <= length
firstName*string

The first name of the member.

Length0 <= length <= 60
lastName*string

The last name of the member.

Length0 <= length <= 60
email*string

The email address of the member.

Match^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$
Length0 <= length <= 100
phoneNumber*string

The phone number of the member.

Match^(\+?[1-9]\d{6,14}|0[1-9]\d{8})$
Length1 <= length
parentPhoneNumber?|

Phone number of the member's parent or guardian, if the member is a minor.

Match^(\+?[1-9]\d{6,14}|0[1-9]\d{8})$
street*string

The street of the member.

Length0 <= length <= 40
houseNumber*string

The house number of the member.

Match^[1-9][0-9]*(?:[\s-]?[a-zA-Z0-9]{1,3})?$
Length0 <= length <= 10
postalCode*string

The postal code of the member.

Length0 <= length <= 10
city*string

The city of the member.

Length0 <= length <= 40
dateOfBirth?string

The date of birth of the member.

Formatdate-time
notes?|

The notes about the member.

registeredOn?string

The date and time at which the member registered.

Formatdate-time
studyEnrollments?array<>

The enrollments associated with this member.

enrollments?array<>

The activities this member is enrolled in.

groupMemberships?array<>

The groups this member is part of.

preferredLanguage?Language

Defines the language preference of a member, which can be either Dutch (NL) or English (EN). This enumeration is used to indicate the preferred language for communication and content presentation for a member within the system.

Formatint32
Value in"NL""EN"
gratie?boolean

Indicates whether the member is granted a fee waiver.

lidVanVerdienste?boolean

Indicates whether the member is a "Lid van Verdienste".

ereLid?boolean

Indicates whether the member is an honorary member.

begunstiger?boolean

Indicates whether the member is a "Begunstiger".

suspended?boolean

Indicates whether the member is suspended.

isDeleted?boolean

Indicates whether the member account is soft-deleted and anonymized.

announcements?array<>

The announcements created by this member.

profilePicturePath?|

The path to the profile picture of the member.

profilePictureFileName?|

The file name of the profile picture of the member.

curl -X POST 'https://example.com/members' \  -H 'Content-Type: application/json' \  -d '{  "studentNumber": "string",  "firstName": "string",  "lastName": "string",  "email": "string",  "phoneNumber": "string",  "street": "string",  "houseNumber": "string",  "postalCode": "string",  "city": "string",  "dateOfBirth": "2019-08-24T14:15:22Z",  "preferredLanguage": "NL"}'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "authSystemUserId": "21acf037-4cf7-4197-964d-bb28bd02794e",  "calendarId": "9869a533-1db4-43d9-aed3-3d63324120f5",  "activationEmailSentAt": "2019-08-24T14:15:22Z",  "studyStatusMailSentAt": "2019-08-24T14:15:22Z",  "outstandingPaymentMailSentAt": "2019-08-24T14:15:22Z",  "studentNumber": "string",  "firstName": "string",  "lastName": "string",  "email": "string",  "phoneNumber": "string",  "parentPhoneNumber": "string",  "street": "string",  "houseNumber": "string",  "postalCode": "string",  "city": "string",  "dateOfBirth": "2019-08-24T14:15:22Z",  "notes": "string",  "registeredOn": "2019-08-24T14:15:22Z",  "studyEnrollments": [    {      "id": 0,      "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",      "member": {},      "studyId": 0,      "study": {        "id": 0,        "title": "string",        "nominalDurationYears": 0,        "type": "Bachelor",        "active": true,        "enrollments": [          {}        ]      },      "enrollmentDate": "2019-08-24T14:15:22Z",      "completionDate": "2019-08-24T14:15:22Z",      "status": "Enrolled"    }  ],  "enrollments": [    {      "activityId": 0,      "activity": {        "id": 0,        "name": "string",        "price": 0.1,        "posterFileName": "string",        "posterPath": "string",        "dutchDescription": "string",        "englishDescription": "string",        "dateTimeStart": "2019-08-24T14:15:22Z",        "dateTimeEnd": "2019-08-24T14:15:22Z",        "unenrollmentDeadline": "2019-08-24T14:15:22Z",        "enrollmentDeadline": "2019-08-24T14:15:22Z",        "enrollOpenDate": "2019-08-24T14:15:22Z",        "location": "string",        "participantLimit": 0,        "organizerId": 0,        "organizer": {          "id": 0,          "name": "string",          "active": true,          "groupMemberships": [            {              "id": 0,              "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",              "member": {},              "groupId": 0,              "group": {},              "membershipYear": 0,              "roleAliasId": 0,              "roleAlias": {                "id": 0,                "roleId": 0,                "role": {                  "id": 0,                  "name": "string"                },                "name": "string"              }            }          ],          "type": "Committee",          "defaultGLAccount": "string",          "defaultCostCenter": "string",          "defaultCostUnit": "string",          "groupPicturePath": "string",          "groupPictureFileName": "string"        },        "specificationQuestions": [          {            "id": 0,            "activityId": 0,            "questionDutch": "string",            "questionEnglish": "string",            "type": "String",            "isMandatory": true,            "isPublic": true,            "activity": {},            "answers": [              {                "id": 0,                "specificationQuestionId": 0,                "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",                "member": {},                "answer": "string",                "question": {},                "enrollment": {}              }            ],            "options": "string",            "closeOnUnenrollmentDeadline": true          }        ],        "showInKoala": true,        "showOnWebsite": true,        "isEnrollable": true,        "areParticipantsVisible": true,        "isAdultOnly": true,        "isWeeklyDrinks": true,        "allowedAudience": "None",        "isOpenForPayment": true,        "vatRate": 0,        "enrollments": [          {}        ],        "glAccountId": "string",        "costCenterId": "string",        "costUnitId": "string",        "paymentDeadline": "2019-08-24T14:15:22Z"      },      "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",      "member": {},      "price": 0.1,      "specificationAnswers": [        {          "id": 0,          "specificationQuestionId": 0,          "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",          "member": {},          "answer": "string",          "question": {            "id": 0,            "activityId": 0,            "questionDutch": "string",            "questionEnglish": "string",            "type": "String",            "isMandatory": true,            "isPublic": true,            "activity": {              "id": 0,              "name": "string",              "price": 0.1,              "posterFileName": "string",              "posterPath": "string",              "dutchDescription": "string",              "englishDescription": "string",              "dateTimeStart": "2019-08-24T14:15:22Z",              "dateTimeEnd": "2019-08-24T14:15:22Z",              "unenrollmentDeadline": "2019-08-24T14:15:22Z",              "enrollmentDeadline": "2019-08-24T14:15:22Z",              "enrollOpenDate": "2019-08-24T14:15:22Z",              "location": "string",              "participantLimit": 0,              "organizerId": 0,              "organizer": {                "id": 0,                "name": "string",                "active": true,                "groupMemberships": [                  {                    "id": 0,                    "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",                    "member": {},                    "groupId": 0,                    "group": {},                    "membershipYear": 0,                    "roleAliasId": 0,                    "roleAlias": {                      "id": 0,                      "roleId": 0,                      "role": {                        "id": 0,                        "name": "string"                      },                      "name": "string"                    }                  }                ],                "type": "Committee",                "defaultGLAccount": "string",                "defaultCostCenter": "string",                "defaultCostUnit": "string",                "groupPicturePath": "string",                "groupPictureFileName": "string"              },              "specificationQuestions": [                {}              ],              "showInKoala": true,              "showOnWebsite": true,              "isEnrollable": true,              "areParticipantsVisible": true,              "isAdultOnly": true,              "isWeeklyDrinks": true,              "allowedAudience": "None",              "isOpenForPayment": true,              "vatRate": 0,              "enrollments": [                {}              ],              "glAccountId": "string",              "costCenterId": "string",              "costUnitId": "string",              "paymentDeadline": "2019-08-24T14:15:22Z"            },            "answers": [              {}            ],            "options": "string",            "closeOnUnenrollmentDeadline": true          },          "enrollment": {}        }      ],      "registeredOn": "2019-08-24T14:15:22Z",      "isOnWaitingList": true    }  ],  "groupMemberships": [    {      "id": 0,      "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",      "member": {},      "groupId": 0,      "group": {        "id": 0,        "name": "string",        "active": true,        "groupMemberships": [          {}        ],        "type": "Committee",        "defaultGLAccount": "string",        "defaultCostCenter": "string",        "defaultCostUnit": "string",        "groupPicturePath": "string",        "groupPictureFileName": "string"      },      "membershipYear": 0,      "roleAliasId": 0,      "roleAlias": {        "id": 0,        "roleId": 0,        "role": {          "id": 0,          "name": "string"        },        "name": "string"      }    }  ],  "preferredLanguage": "NL",  "gratie": true,  "lidVanVerdienste": true,  "ereLid": true,  "begunstiger": true,  "suspended": true,  "isDeleted": true,  "announcements": [    {      "id": 0,      "titleDutch": "string",      "titleEnglish": "string",      "contentDutch": "string",      "contentEnglish": "string",      "createdAt": "2019-08-24T14:15:22Z",      "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",      "createdBy": {}    }  ],  "profilePicturePath": "string",  "profilePictureFileName": "string"}