# Start

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /v1/members/programs/{program_id}/registrations/start:
    post:
      summary: Start
      deprecated: false
      description: >-
        Allows to register (existing or non-existing) member in given Program by
        e-mail.


        Sends an email message that contains a link that needs to be clicked by
        member in order to [confirm](api-3510836) the registration.

        The link is active for 24 hours.


        ## URL Parameters


        | Parameter | Description  | Type    |

        |-----------|--------------|---------|

        | id        | Program's ID | integer |


        ## Body Parameters


        | Parameter       | Type             | Required? |
        Description                                                                                                                
        |

        |-----------------|------------------|-----------|-----------------------------------------------------------------------------------------------------------------------------|

        | member.email    | string (email)   | yes      
        |                                                                                                                            
        |

        | member.consents | object           | no        | Member's consents
        (similar to [Member's consents JSON
        model](doc-342131#members-consents-json-model)) |


        ## Response Body


        When successful, returns an empty JSON object.


        ## Error Responses


        | Status | Reason                 |

        |--------|------------------------|

        | `404`  | Program does not exist |


        ## Specific Validation Errors


        | Key            | Error                             |

        |----------------|-----------------------------------|

        | `program_id`   | `cannot_register_to_this_program` |

        | `member.email` | `already_belongs_to_program`      |


        ## Example


        ```shell

        curl -X POST \

        "https://api.mpc.placewise.com/v1/members/programs/45/registrations/start"
        \
          -H 'content-type: application/json' \
          -H 'x-client-authorization: B7t9U9tsoWsGhrv2ouUoSqpM' \
          -H 'x-loyalty-club-slug: infinity-mall' \
          -H 'x-product-name: default' \
          -H 'x-user-agent: CURL manual test' \
          -d {
            "member": {
              "email": "member@example.com",
              "consents": {
                "email_marketing": { "status": true }
              }
            }
          }
        ```
      tags:
        - API Reference/Public API/Member/Programs/Registration
      parameters:
        - name: program_id
          in: path
          description: ''
          required: true
          example: 1
          schema:
            type: integer
        - name: Content-Type
          in: header
          description: '[Details](doc-341635)'
          required: true
          example: application/json
          schema:
            type: string
            default: application/json
            const: application/json
        - name: X-User-Agent
          in: header
          description: Arbitrary identifier of your client. [Details](doc-341635)
          required: true
          example: '{{X_USER_AGENT}}'
          schema:
            type: string
            default: '{{X_USER_AGENT}}'
        - name: X-Product-Name
          in: header
          description: API Product for API context. [Details](doc-341635)
          required: true
          example: '{{PRODUCT_NAME}}'
          schema:
            type: string
            default: '{{PRODUCT_NAME}}'
        - name: X-Loyalty-Club-Slug
          in: header
          description: LoyaltyClub for API context. [Details](doc-342138)
          required: false
          example: '{{LOYALTY_CLUB_SLUG}}'
          schema:
            type: string
            default: '{{LOYALTY_CLUB_SLUG}}'
        - name: X-Customer
          in: header
          description: Customer for API context.  [Details](doc-342139)
          required: false
          example: '{{CUSTOMER_ID}}'
          schema:
            type: string
            default: '{{CUSTOMER_ID}}'
        - name: Authorization
          in: header
          description: '[Member](doc-342129) or [User](doc-342130) Authorization.'
          required: false
          example: Bearer {{_OAUTH_TOKEN}}
          schema:
            type: string
            default: Bearer {{_OAUTH_TOKEN}}
        - name: X-Client-Authorization
          in: header
          description: '[Token](doc-342128) Authorization.'
          example: '{{API_TOKEN}}'
          schema:
            type: string
            default: '{{API_TOKEN}}'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
          x-apidog-name: Success
      security: []
      x-apidog-folder: API Reference/Public API/Member/Programs/Registration
      x-apidog-status: pending
      x-run-in-apidog: https://app.eu.apidog.com/web/project/346351/apis/api-3510835-run
components:
  schemas: {}
  securitySchemes: {}
servers:
  - url: https://api.mpc.dev.placewise.com
    description: Staging
security: []

```