> ## Documentation Index
> Fetch the complete documentation index at: https://developer.fabric.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# Enroll Member

> After setting up your loyalty program with fabric, the next crucial step is to enroll members to the program. This endpoint enrolls a loyalty member into a default tier associated with a club. <br /> **Note**: Only a single member can be enrolled at a time.



## OpenAPI

````yaml member post /v1/members
openapi: 3.0.1
info:
  title: Loyalty (Member)
  description: >-
    fabric **Loyalty** formerly **Member** is a Loyalty Management System (LMS)
    that enables marketers to create multiple loyalty strategies under a loyalty
    program to cater to various businesses and customer segments. <br />
    **Member overview**: <br /> During onboarding, you are given the necessary
    **credentials** (client_id and client_secret) to obtain an access token,
    which is required to run every call. Membership hierarchy is organized into
    Programs, Clubs, and Tiers. <br /> **Program** is the first hierarchy level
    and is where rewards and benefits are configured for the organization. <br
    /> **Club** is the second hierarchy level and is where Rules for the program
    are configured. <br />Each Club must have at least one **Tier**, which is
    used to define membership and to configure criteria and thresholds
    (including free vs paid). Additional hierarchy levels can be added to
    support the needs of your business.  <br /> Members are always enrolled into
    a **Default Tier** within a club. When members make purchases, they earn
    Points based on the rules set at the club level and/or based on promotions.
    When points in a member account reach a predefined **Threshold Value**,
    points are converted to **Rewards**. This conversion may be manual or
    automatic depending on the program configuration. Members can **Redeem**
    their rewards within the reward **Expiry Period**. Account point balances
    are updated after each point-impacting activity.
  version: 1.0.0
  contact:
    email: support@fabric.inc
  license:
    name: fabric Inc
    url: https://fabric.inc
servers:
  - url: https://vanilla-dev02-loyalty.fabric.zone/api
    description: For developers to work outside of the production environment.
  - url: https://vanilla-stg-loyalty.fabric.zone/api
    description: Replica of the production environment for testing.
  - url: https://loyalty-sbx.fabric.zone/api
    description: >-
      An isolated testing environment (UAT) to run programs without affecting
      the application, system or platform on which they run.
  - url: https://loyalty.fabric.zone/api
    description: Production environment.
security:
  - bearerAuth: []
paths:
  /v1/members:
    post:
      tags:
        - Members
      summary: Enroll Member
      description: >-
        After setting up your loyalty program with fabric, the next crucial step
        is to enroll members to the program. This endpoint enrolls a loyalty
        member into a default tier associated with a club. <br /> **Note**: Only
        a single member can be enrolled at a time.
      operationId: member_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollMember'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollMemberResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponseClass1'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponseClass2'
components:
  schemas:
    EnrollMember:
      required:
        - clubReference
        - emailAddress
        - entityReference
        - firstName
        - lastName
        - phoneNumber
      type: object
      description: Member details with contact information
      properties:
        firstName:
          title: Firstname
          maxLength: 100
          minLength: 1
          type: string
          description: First name of member
          example: John
        middleName:
          title: Middlename
          maxLength: 100
          type: string
          description: Middle name of member
          example: Duke
        lastName:
          title: Lastname
          maxLength: 100
          minLength: 1
          type: string
          description: Last name of member
          example: Wayne
        suffix:
          title: Suffix
          type: string
          description: Suffix of the member name, if any.
          nullable: true
        gender:
          title: Gender
          type: string
          description: Gender of member
          enum:
            - None
            - Male
            - Female
            - Other
          example: Male
        birthDate:
          title: Birthdate
          type: string
          description: Date of birth of member
          example: '1990-11-16'
          format: date
        emailAddress:
          title: Emailaddress
          maxLength: 254
          minLength: 1
          type: string
          description: Email address of the member
          example: user@abc.com
          format: email
        phoneNumber:
          title: Phonenumber
          maxLength: 16
          minLength: 1
          type: string
          description: Phone number of member (without space or dash).
          example: '923331234567'
        addressLine1:
          title: Addressline1
          maxLength: 500
          type: string
          description: Line 1 of address
          example: 10400 NE 4th St
          nullable: true
        addressLine2:
          title: Addressline2
          maxLength: 500
          type: string
          description: Line 2 of address
          example: Suite 505
          nullable: true
        addressLine3:
          title: Addressline3
          maxLength: 500
          type: string
          description: Additional line for directional information
          example: ''
          nullable: true
        city:
          title: City
          maxLength: 50
          type: string
          description: City name of the address.
          example: Austin
        region:
          title: Region
          maxLength: 150
          type: string
          description: State name of address
          example: Texas
        postalCode:
          title: Postalcode
          type: string
          description: Zip code of address
          example: '98004'
        country:
          title: Country
          minLength: 1
          type: string
          description: Country name
          example: United States
        nationality:
          title: Nationality
          type: string
          description: Nationality of member
          example: ''
        maritalStatus:
          title: Maritalstatus
          type: string
          description: Marital status of member
          example: Single
          enum:
            - None
            - Single
            - Married
            - Divorced
            - Widowed
            - Separated
        prefix:
          title: Prefix
          type: string
          description: Prefix (if appliable) of member name.
          example: Mr
          enum:
            - None
            - Mr
            - Mrs
            - Ms
        redemptionChoice:
          title: Redemptionchoice
          minLength: 1
          type: string
          description: >-
            Redemption choices are Bank and Auto. When the choice is 'auto,' the
            points are automatically converted to rewards. When the choice is
            'bank,' the points are converted to rewards at the member’s request.
          example: Auto
          enum:
            - Bank
            - Auto
          nullable: true
        redemptionThreshold:
          title: Redemptionthreshold
          type: string
          description: Threshold value (configurable) to redeem reward.
          example: 10
          nullable: true
        entityReference:
          title: Entityreference
          minLength: 1
          type: string
          description: Name or ID of store (or entity) where the member is enrolled.
          example: BOUNTEE_CLUB
        enrollmentTimestamp:
          title: enrollmenttimestamp
          type: string
          description: Date of member enrollment
          example: '2021-01-25'
          format: date-time
          nullable: true
        clubReference:
          title: Clubreference
          minLength: 1
          type: string
          description: Club name or ID where the member is enrolled
          example: BLOCK_A
        enrollReasonCode:
          title: Enrollreasoncode
          maxLength: 30
          type: string
          description: Reason code for enrollment
          example: '1234'
          nullable: true
        enrollReasonNote:
          title: Enrollreasonnote
          maxLength: 300
          type: string
          description: Enrollment reason
          example: As guest member
          nullable: true
        tierReference:
          title: Tierreference
          type: string
          description: >-
            Tiers are always setup at the club level and a number of tiers can
            be created. Tiers are categorized as Free (Predefined names are
            Bronze, Silver, Gold) and Paid (Example - Pro). <br /> **Note**:
            Tier names and the rules to move up and down the tiers are
            configurable. In addition, points, rewards, and tier expiration can
            be setup at the tier level.
          example: Silver
          nullable: true
        customAttributes:
          title: customAttributes
          type: object
          properties: {}
          description: Inputs from the store (if applicable) and stored without validation.
          nullable: true
        sourceExternalReference:
          title: Sourceexternalreference
          maxLength: 100
          type: string
          description: Company website used for member enrollmen
          example: example.com
          nullable: true
        channelExternalReference:
          title: Channelexternalreference
          maxLength: 100
          type: string
          description: Sales channel
          example: WEB
          nullable: true
    EnrollMemberResponse:
      description: Member details with current status
      type: object
      properties:
        message:
          title: Message
          minLength: 1
          type: string
          description: Message corresponding to status
          default: Exception message
          example: Created
        errors:
          title: Errors
          type: object
          properties: {}
          description: A dictionary of lists with different number of errors or exceptions.
          example: {}
        data:
          $ref: '#/components/schemas/Member'
        status:
          title: Status
          type: integer
          description: Request status
          example: 201
          format: int32
    GenericResponseClass1:
      type: object
      description: Bad request
      properties:
        message:
          title: Message
          minLength: 1
          type: string
          description: Message corresponding to the call.
          example: Error message string
        errors:
          title: Errors
          type: object
          properties: {}
          description: A dictionary of lists with different number of errors or exceptions.
          example:
            ExceptionString:
              - Invalid Field
        data:
          title: Data
          type: object
          properties: {}
          description: Returns data in the form of a list of dictionaries or null
          example: null
        status:
          title: Status
          type: integer
          description: Status code of the call
          example: 400
          format: int32
    GenericResponseClass2:
      type: object
      description: Unauthorized
      properties:
        detail:
          title: Detail
          type: string
          description: Message corresponding to the response
          example: Authentication Failed
    Member:
      type: object
      description: Member details
      properties:
        accounts:
          type: array
          description: Member account details
          items:
            $ref: '#/components/schemas/MemberAccount'
        addressLine1:
          title: Addressline1
          maxLength: 500
          type: string
          description: Line 1 of address
          example: 10400 NE 4th St
          nullable: true
        addressLine2:
          title: Addressline2
          maxLength: 500
          type: string
          description: Line 2 of the address
          example: Suite 505
          nullable: true
        addressLine3:
          title: Addressline3
          maxLength: 500
          type: string
          description: For additional directional information.
          example: ''
          nullable: true
        birthdate:
          title: Birthdate
          type: string
          description: Date of birth of member
          example: '1990-11-16'
        channelExternalReference:
          title: Channelexternalreference
          type: string
          description: Sales channel
          example: Web
        city:
          title: City
          maxLength: 50
          type: string
          description: City name
          example: Austin
        country:
          title: Country
          minLength: 1
          type: string
          description: Country abbreviation of the member
          example: US
        emailAddress:
          title: Emailaddress
          type: string
          description: Email address of member
          example: user@abc.com
        enrollReasonCode:
          title: Enrollreasoncode
          type: string
          maxLength: 30
          description: Reason code for member enrollment
          example: '1234'
        enrollReasonNote:
          title: Enrollreasonnote
          type: string
          maxLength: 300
          description: Reason for member enrollment
          example: Guest
        enrollmentTimestamp:
          title: Enrollmenttimestamp
          type: string
          description: Date of member enrollment, in UTC format
          example: '2021-09-14T11:32:55.508949Z'
          format: date-time
        firstName:
          title: Firstname
          type: string
          description: First name of member
          example: John
        fullCountry:
          title: Fullcountry
          type: string
          description: Country name of member
          example: United States
        fullRegion:
          title: Fullregion
          type: string
          description: Region name of member
          example: Texas
        gender:
          title: Gender
          type: string
          description: Gender of member
          enum:
            - None
            - Male
            - Female
            - Other
          example: Male
        lastName:
          title: Lastname
          type: string
          description: Last name of member
          example: Wayne
        maritalStatus:
          title: Maritalstatus
          type: string
          enum:
            - None
            - Single
            - Married
            - Divorced
            - Widowed
            - Separated
        middleName:
          title: Middlename
          type: string
          description: Middle name of member
          example: Duke
        nationality:
          title: Nationality
          type: string
          description: Nationality of member
          example: ''
        phoneNumber:
          title: Phonenumber
          minLength: 1
          type: string
          description: Phone number used for enrollment (without space or dash)
          example: '923331234567'
        postalCode:
          title: Postalcode
          type: string
          description: Zip code of address
          example: '98004'
        prefix:
          title: Prefix
          type: string
          description: Prefix associated with member name
          example: Mr
          enum:
            - None
            - Mr
            - Mrs
            - Ms
        region:
          title: Region
          maxLength: 150
          type: string
          description: Region abbreviation of member
          example: TX
        sourceExternalReference:
          title: Sourceexternalreference
          type: string
          description: Website of parent company
          example: www.abcdemo.com
        suffix:
          title: Suffix
          type: string
          description: Suffix of member name (if any)
    MemberAccount:
      type: object
      properties:
        accountStatus:
          title: Accountstatus
          minLength: 1
          type: string
          description: Account status such as enabled, disabled, etc.
          example: Enabled
        clubReference:
          title: Clubreference
          minLength: 1
          type: string
          description: Club name or ID where the member is enrolled.
          example: abc_club
        clubTitle:
          title: Clubtitle
          minLength: 1
          type: string
          description: Club name
          example: ABC Club
        customAttributes:
          title: Customattributes
          type: object
          properties: {}
          description: >-
            Account details as shared by the business. The details are stored in
            the LMS as provided, and without validation.
          example:
            memberSinceDate: '2021-07-26'
            enrolledAtCenter: Liberty Store
            profileCompleted: false
        enrollmentEntity:
          title: enrollmententity
          minLength: 1
          type: string
          description: Store where the member is enrollment.
          example: demo
        enrollmentStatus:
          title: Enrollmentstatus
          type: boolean
          description: Status of the member's enrollment.
          example: true
        entityReference:
          title: Entityreference
          minLength: 1
          type: string
          description: Name or ID for the store (or entity) where the member is enrolled.
          example: entity_level_1
        loyaltyNumber:
          title: Loyaltynumber
          type: string
          description: Loyalty-number for this member account
          example: '10000147371'
        paidStatus:
          title: Paidstatus
          type: boolean
          description: 'true: Paid membership <br /> false: Free membership.'
          example: false
          default: false
        profileId:
          title: Profileid
          type: string
          description: >-
            Profile ID of the member. In an ecosystem, it acts as a primary ID
            to keep the various systems (apps, websites, etc.) in sync.
          example: f90a1da5-c072-48b7-a9ea-eb35c5dd506b
          format: uuid
        redemptionChoice:
          title: Redemptionchoice
          minLength: 1
          type: string
          description: >-
            Redemption choices are Bank and Auto. When the redemptionChoice is
            `auto` the points are automatically converted to rewards. When the
            redemptionChoice is `bank` the points are converted to rewards only
            on member’s request.
          example: Auto
          enum:
            - Bank
            - Auto
          nullable: true
        redemptionThreshold:
          title: Redemptionthreshold
          type: string
          description: Threshold value for redemption (configurable)
          example: 10
        tierExpiryDate:
          title: Tierexpirydate
          type: string
          description: Tier expiry time, in UTC format
          example: '2022-09-17T14:26:32.192148+00:00'
          format: date-time
        tierExternalReference:
          title: Tierexternalreference
          minLength: 1
          type: string
          description: External reference of tier
          example: GLD
        tierId:
          title: Tierid
          type: integer
          description: Tier ID
          example: 4185
          format: int32
        tierTitle:
          title: Tiertitle
          minLength: 1
          type: string
          description: Tier name (configurable)
          example: ClubTier
        updatedAt:
          title: Updatedat
          type: string
          description: Timestamp of when the member account was last updated (UTC format)
          example: '2021-11-01 12:15:53.831401+00:00'
          format: date-time
      description: Member account details as shared by the business.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````