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

# Create Loyalty Program Customer

> ### Create Loyalty Program Customer

Creates a new customer within a loyalty program.

**Path Parameters**:
- `programId`: UUID of the loyalty program

**Request Body**:
- `data`: Customer data to be added

**Returns**:
- Customer details as a JSON object on successful creation.
- HTTP 404 Not Found if the program template is not found.



## OpenAPI

````yaml https://api.loyalty.dog/openapi.json post /v2/loyalty/programs/{programId}/customers
openapi: 3.1.0
info:
  title: LoyaltyDog
  description: >-

    Welcome to the LoyaltyDog API! This API provides access to our loyalty
    program features, allowing you to integrate with various platforms and
    manage your loyalty data.


    Want to query LoyaltyDog via an AI assistant (Claude, Cursor, Windsurf)? See
    the [MCP Integration guide](https://loyaltydog.ai/playground#mcp).
        
  termsOfService: https://loyalty.dog/loyalty-program-terms-service
  contact:
    name: LoyaltyDog Support
    url: https://loyalty.dog/contact-us
    email: support@loyalty.dog
  version: 1.0.1
servers:
  - url: https://api.loyalty.dog
    description: Production
security:
  - bearerAuth: []
paths:
  /v2/loyalty/programs/{programId}/customers:
    post:
      tags:
        - Loyalty
      summary: Create Loyalty Program Customer
      description: |-
        ### Create Loyalty Program Customer

        Creates a new customer within a loyalty program.

        **Path Parameters**:
        - `programId`: UUID of the loyalty program

        **Request Body**:
        - `data`: Customer data to be added

        **Returns**:
        - Customer details as a JSON object on successful creation.
        - HTTP 404 Not Found if the program template is not found.
      operationId: >-
        create_loyalty_program_customer_v2_loyalty_programs__programId__customers_post
      parameters:
        - name: programId
          in: path
          required: true
          schema:
            anyOf:
              - $ref: '#/components/schemas/PydanticObjectId'
              - type: string
            title: Programid
        - name: authorization
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerPayload'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    PydanticObjectId:
      type: string
      maxLength: 24
      minLength: 24
      pattern: ^[0-9a-f]{24}$
      example: 5eb7cf5a86d9755df3a6c593
    CreateCustomerPayload:
      properties:
        firstName:
          anyOf:
            - type: string
            - type: 'null'
          title: Firstname
        lastName:
          anyOf:
            - type: string
            - type: 'null'
          title: Lastname
        email:
          anyOf:
            - type: string
              format: email
            - type: string
            - type: 'null'
          title: Email
        phone:
          anyOf:
            - type: string
              format: phone
            - type: 'null'
          title: Phone
        points:
          type: integer
          title: Points
          default: 0
        referrerId:
          anyOf:
            - $ref: '#/components/schemas/PydanticObjectId'
            - type: 'null'
        customFields:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Customfields
        initialConsentGranted:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Initialconsentgranted
      type: object
      title: CreateCustomerPayload
      description: |-
        The customer creation payload

        Attributes:
            firstName (str | None, optional): The first name of the customer. Defaults to None
            lastName (str | None, optional): The last name of the customer. Defaults to None
            email (str | None, optional): The email address of the customer. Defaults to None
            phone (str | None, optional): The E164 phone number of the customer. Defaults to None
            customFields (Dict | None, optional): The values of the custom fields. Defaults to {}

            referrerId (PydanticObjectId | None, optional): The ID of the referrer customer. Defaults to None
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT access token obtained from POST /v2/token.

````