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

# Crear postulación



## OpenAPI

````yaml POST /v1/admissions/applications
openapi: 3.1.0
info:
  title: EdTools Client API
  version: 1.0.0
  description: >-
    Stable server-to-server API for tenant-owned EdTools integrations. Public
    docs disable the playground; use your own secure client or Postman workspace
    for real tokens.
servers:
  - url: https://app.edtools.co/api/client
    description: Production
  - url: http://localhost:3000/api/client
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Client API
    description: Identity and token introspection.
  - name: Students
    description: Student reads, writes and external-id sync.
  - name: Admissions
    description: Admission applications, pipeline statuses and contacts.
  - name: Payments
    description: Payment and obligation reads, writes and external-id sync.
  - name: Programs
    description: Current academic program catalog.
  - name: Courses
    description: Current academic course catalog.
  - name: Forms
    description: Read-only form templates and submissions.
  - name: Vault
    description: Document types, documents, requirements and requests.
paths:
  /v1/admissions/applications:
    post:
      tags:
        - Admissions
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 160
                givenNames:
                  type: string
                  minLength: 1
                  maxLength: 255
                familyNames:
                  type: string
                  minLength: 1
                  maxLength: 255
                programId:
                  type: string
                  nullable: true
                  format: uuid
                program:
                  type: string
                  maxLength: 255
                  default: ''
                email:
                  anyOf:
                    - type: string
                      format: email
                    - type: string
                      enum:
                        - ''
                phone:
                  type: string
                  maxLength: 40
                country:
                  type: string
                  minLength: 1
                  maxLength: 100
                stateProvince:
                  anyOf:
                    - type: string
                      maxLength: 100
                    - type: string
                      enum:
                        - ''
                city:
                  type: string
                  minLength: 1
                  maxLength: 100
                address:
                  anyOf:
                    - type: string
                      maxLength: 2000
                    - type: string
                      enum:
                        - ''
                academicYear:
                  anyOf:
                    - type: string
                      maxLength: 50
                    - type: string
                      enum:
                        - ''
                academicPeriod:
                  anyOf:
                    - type: string
                      maxLength: 50
                    - type: string
                      enum:
                        - ''
                status:
                  type: string
                  minLength: 2
                  maxLength: 64
                  pattern: ^[a-z][a-z0-9_-]*$
                primaryContact:
                  type: object
                  nullable: true
                  properties:
                    contactId:
                      type: string
                      nullable: true
                      format: uuid
                    displayName:
                      type: string
                      nullable: true
                      maxLength: 255
                    email:
                      anyOf:
                        - type: string
                          format: email
                        - type: string
                          enum:
                            - ''
                        - nullable: true
                    phone:
                      type: string
                      nullable: true
                      maxLength: 40
                    role:
                      type: string
                      nullable: true
                      enum:
                        - applicant
                        - primary_contact
                        - family
                        - emergency
                        - billing
                        - other
                    relationshipLabel:
                      type: string
                      nullable: true
                      maxLength: 120
                    isPrimary:
                      type: boolean
                      nullable: true
                    source:
                      type: string
                      nullable: true
                      enum:
                        - manual
                        - import
                        - api
                        - whatsapp
                        - form
                        - system
                    metadata:
                      type: object
                      nullable: true
                      additionalProperties:
                        nullable: true
                contacts:
                  type: array
                  items:
                    type: object
                    properties:
                      contactId:
                        type: string
                        nullable: true
                        format: uuid
                      displayName:
                        type: string
                        nullable: true
                        maxLength: 255
                      email:
                        anyOf:
                          - type: string
                            format: email
                          - type: string
                            enum:
                              - ''
                          - nullable: true
                      phone:
                        type: string
                        nullable: true
                        maxLength: 40
                      role:
                        type: string
                        nullable: true
                        enum:
                          - applicant
                          - primary_contact
                          - family
                          - emergency
                          - billing
                          - other
                      relationshipLabel:
                        type: string
                        nullable: true
                        maxLength: 120
                      isPrimary:
                        type: boolean
                        nullable: true
                      source:
                        type: string
                        nullable: true
                        enum:
                          - manual
                          - import
                          - api
                          - whatsapp
                          - form
                          - system
                      metadata:
                        type: object
                        nullable: true
                        additionalProperties:
                          nullable: true
                  maxItems: 10
              required:
                - givenNames
                - familyNames
                - country
                - city
      responses:
        '201':
          description: Created admission application
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      externalId:
                        type: string
                        nullable: true
                      applicationCode:
                        type: string
                      fullName:
                        type: string
                      programId:
                        type: string
                        nullable: true
                        format: uuid
                      program:
                        type: string
                      programRef:
                        type: object
                        nullable: true
                        properties:
                          id:
                            type: string
                            format: uuid
                          name:
                            type: string
                          educationLevel:
                            type: string
                          organizationProfile:
                            type: string
                          status:
                            type: string
                        required:
                          - id
                          - name
                          - educationLevel
                          - organizationProfile
                          - status
                      status:
                        type: string
                        minLength: 2
                        maxLength: 64
                        pattern: ^[a-z][a-z0-9_-]*$
                      givenNames:
                        type: string
                        nullable: true
                      familyNames:
                        type: string
                        nullable: true
                      email:
                        type: string
                        nullable: true
                      phone:
                        type: string
                        nullable: true
                      country:
                        type: string
                        nullable: true
                      stateProvince:
                        type: string
                        nullable: true
                      city:
                        type: string
                        nullable: true
                      address:
                        type: string
                        nullable: true
                      academicYear:
                        type: string
                        nullable: true
                      academicPeriod:
                        type: string
                        nullable: true
                      photoUrl:
                        type: string
                        nullable: true
                      studentId:
                        type: string
                        nullable: true
                        format: uuid
                      contactId:
                        type: string
                        nullable: true
                        format: uuid
                      primaryContact:
                        type: object
                        nullable: true
                        properties:
                          id:
                            type: string
                            format: uuid
                          contactId:
                            type: string
                            format: uuid
                          role:
                            type: string
                            enum:
                              - applicant
                              - primary_contact
                              - family
                              - emergency
                              - billing
                              - other
                          relationshipLabel:
                            type: string
                            nullable: true
                          isPrimary:
                            type: boolean
                          source:
                            type: string
                            enum:
                              - manual
                              - import
                              - api
                              - whatsapp
                              - form
                              - system
                          displayName:
                            type: string
                          email:
                            type: string
                            nullable: true
                          phone:
                            type: string
                            nullable: true
                          metadata:
                            type: object
                            additionalProperties:
                              nullable: true
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                        required:
                          - id
                          - contactId
                          - role
                          - relationshipLabel
                          - isPrimary
                          - source
                          - displayName
                          - email
                          - phone
                          - metadata
                          - createdAt
                          - updatedAt
                      contacts:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                            contactId:
                              type: string
                              format: uuid
                            role:
                              type: string
                              enum:
                                - applicant
                                - primary_contact
                                - family
                                - emergency
                                - billing
                                - other
                            relationshipLabel:
                              type: string
                              nullable: true
                            isPrimary:
                              type: boolean
                            source:
                              type: string
                              enum:
                                - manual
                                - import
                                - api
                                - whatsapp
                                - form
                                - system
                            displayName:
                              type: string
                            email:
                              type: string
                              nullable: true
                            phone:
                              type: string
                              nullable: true
                            metadata:
                              type: object
                              additionalProperties:
                                nullable: true
                            createdAt:
                              type: string
                            updatedAt:
                              type: string
                          required:
                            - id
                            - contactId
                            - role
                            - relationshipLabel
                            - isPrimary
                            - source
                            - displayName
                            - email
                            - phone
                            - metadata
                            - createdAt
                            - updatedAt
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - externalId
                      - applicationCode
                      - fullName
                      - programId
                      - program
                      - programRef
                      - status
                      - givenNames
                      - familyNames
                      - email
                      - phone
                      - country
                      - stateProvince
                      - city
                      - address
                      - academicYear
                      - academicPeriod
                      - photoUrl
                      - studentId
                      - contactId
                      - primaryContact
                      - contacts
                      - createdAt
                      - updatedAt
                required:
                  - data
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: EdTools service token

````