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

# Register a new partner (Public)

> 
  Register a new ticketing platform as a Tickify partner.

  **Process:**
  1. Submit registration with company details
  2. Verification email sent to contact email
  3. Tickify admin reviews and approves/rejects
  4. If approved: partner status becomes ACTIVE, API keys can be generated

  **Required fields:**
  - `companyName`: Legal company name
  - `contactEmail`: Primary contact email (must be unique)
  - `contactName`: Contact person name
  - `password`: Account password (min 8 chars)

  **Optional fields:**
  - `website`: Company website URL
  - `currency`: Default currency (ISO 4217, default: USD)

  **Response includes:**
  - Partner object with `partnerId` (format: `par_xxx`)
  - Temporary user credentials for dashboard access
  - Message about email verification and admin review
      



## OpenAPI

````yaml /partner-docs/openapi.json post /partners/auth/register
openapi: 3.0.0
info:
  title: Tickify Partner API
  description: >2-

        API documentation for the Tickify Partner Platform.

        Getting Started:
    1. Register as a partner and wait for approval from the Tickify team.
        2. Once approved, request an API key from the Tickify team. A Tickify admin will generate and securely share your API key with you.
        3. Use your API key to authenticate partner API requests.
        4. Generate an access token using the /partner/auth/token endpoint in the Auth documentation.
        5. Use the access token for authenticated requests where required.

        **API Keys:**
    - Test keys use the 

    `tk_test_` prefix. These keys work in sandbox mode and never charge real
    payment methods.

    - Live keys use the 

    `tk_live_` prefix. These keys process real payments and require completed
    Stripe Connect onboarding.

    - Both key types follow the same API behavior — only the payment environment
    differs.

    - To test checkout flows without real charges, use 

    `tk_test_` keys and include test card numbers in your Stripe integration.
        
  version: '1.0'
  contact: {}
servers:
  - url: http://localhost:3000
    description: Local Development
  - url: https://api-staging.tickify.io
    description: Staging
  - url: https://api.tickify.io
    description: Production
security: []
tags: []
paths:
  /partners/auth/register:
    post:
      tags:
        - Partner Auth
      summary: Register a new partner (Public)
      description: |2-

          Register a new ticketing platform as a Tickify partner.

          **Process:**
          1. Submit registration with company details
          2. Verification email sent to contact email
          3. Tickify admin reviews and approves/rejects
          4. If approved: partner status becomes ACTIVE, API keys can be generated

          **Required fields:**
          - `companyName`: Legal company name
          - `contactEmail`: Primary contact email (must be unique)
          - `contactName`: Contact person name
          - `password`: Account password (min 8 chars)

          **Optional fields:**
          - `website`: Company website URL
          - `currency`: Default currency (ISO 4217, default: USD)

          **Response includes:**
          - Partner object with `partnerId` (format: `par_xxx`)
          - Temporary user credentials for dashboard access
          - Message about email verification and admin review
              
      operationId: PartnerAuthController_register
      parameters: []
      requestBody:
        required: true
        description: Partner registration details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerRegistrationDto'
      responses:
        '201':
          description: |-
            Registration submitted successfully

            Registration submitted successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  partner:
                    type: object
                    properties:
                      partnerId:
                        type: string
                        example: par_abc123def456
                      name:
                        type: string
                        example: Acme Ticketing
                      status:
                        type: string
                        enum:
                          - PENDING
                          - ACTIVE
                          - SUSPENDED
                          - REJECTED
                        example: PENDING
                      contactEmail:
                        type: string
                        example: contact@acme.com
                  user:
                    type: object
                    properties:
                      key:
                        type: string
                        example: user_xyz789
                      email:
                        type: string
                        example: contact@acme.com
                      role:
                        type: string
                        example: organiser
                  message:
                    type: string
                    example: >-
                      Partner registration submitted successfully. Please check
                      your email to verify your account. An admin will review
                      your application and approve it.
        '400':
          description: Invalid input or email already registered as customer
        '409':
          description: Partner already exists for this email
        '422':
          description: Validation failed or partner registration failed
components:
  schemas:
    PartnerRegistrationDto:
      type: object
      properties:
        companyName:
          type: string
          example: Ticketmaster
        website:
          type: string
          example: https://ticketmaster.com
          description: Company website URL (optional)
        contactName:
          type: string
          example: John Smith
        contactEmail:
          type: string
          example: john@ticketmaster.com
        password:
          type: string
          example: password123
          minLength: 8
        country:
          type: string
          example: US
        currency:
          type: string
          example: USD
        description:
          type: string
          example: We want to integrate with Tickify for blockchain ticketing
      required:
        - companyName
        - contactName
        - contactEmail
        - password

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.