> ## 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.

# Registrar pago



## OpenAPI

````yaml POST /v1/payments
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/payments:
    post:
      tags:
        - Payments
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 160
                studentId:
                  type: string
                  format: uuid
                amount:
                  type: number
                  minimum: 0
                  exclusiveMinimum: true
                  maximum: 1000000000000
                currency:
                  type: string
                  minLength: 3
                  maxLength: 3
                  pattern: ^[A-Za-z]{3}$
                  default: USD
                description:
                  type: string
                  minLength: 1
                  maxLength: 2000
                dueDate:
                  type: string
                  nullable: true
                status:
                  type: string
                  enum:
                    - pending
                    - paid
                    - overdue
                    - cancelled
                    - refunded
                  default: pending
                paidAt:
                  type: string
                  nullable: true
              required:
                - studentId
                - amount
                - description
                - dueDate
      responses:
        '201':
          description: Created payment
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      externalId:
                        type: string
                        nullable: true
                      studentId:
                        type: string
                        format: uuid
                      studentName:
                        type: string
                      studentCode:
                        type: string
                      amount:
                        type: number
                      currency:
                        type: string
                      status:
                        type: string
                      description:
                        type: string
                      stripePaymentIntentId:
                        type: string
                        nullable: true
                      dueDate:
                        type: string
                      paidAt:
                        type: string
                        nullable: true
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - externalId
                      - studentId
                      - studentName
                      - studentCode
                      - amount
                      - currency
                      - status
                      - description
                      - stripePaymentIntentId
                      - dueDate
                      - paidAt
                      - createdAt
                      - updatedAt
                required:
                  - data
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: EdTools service token

````