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

# Agregar puntos de lealtad a un cliente

> Agrega puntos de lealtad (Justo Coins) a un cliente específico. Requiere autorización de administrador.



## OpenAPI

````yaml post /royalty/justo-coins/add
openapi: 3.1.0
info:
  title: Justo API
  version: 3.0.0
servers:
  - url: https://api.service.getjusto.com/v3
    description: Production server
security: []
paths:
  /royalty/justo-coins/add:
    post:
      summary: Agregar puntos de lealtad a un cliente
      description: >-
        Agrega puntos de lealtad (Justo Coins) a un cliente específico. Requiere
        autorización de administrador.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: number
                  minimum: 0.01
                  example: 100
                  description: >-
                    Cantidad de puntos de lealtad a agregar (debe ser un número
                    positivo)
                userId:
                  type: string
                  example: u-001
                  description: ID del usuario de Justo al que se le agregarán los puntos
                expiresAt:
                  type: string
                  format: date-time
                  example: '2025-12-31T23:59:59.000Z'
                  description: Fecha de expiración de los puntos (opcional)
                  nullable: true
              required:
                - amount
                - userId
      responses:
        '200':
          description: Puntos de lealtad agregados exitosamente
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                    description: Operación exitosa
                  data:
                    type: object
                    properties:
                      amount:
                        type: number
                        example: 100
                        description: Cantidad de puntos agregados
                      websiteId:
                        type: string
                        example: w-001
                        description: ID del sitio web donde se realizó la transacción
                      date:
                        type: string
                        format: date-time
                        example: '2025-01-14T14:16:11.000Z'
                        description: Fecha y hora de la transacción
                      balance:
                        type: number
                        example: 250
                        description: Balance total de puntos después de la transacción
                      user:
                        type: object
                        properties:
                          clientId:
                            type: string
                            example: rty-cli-001
                            description: ID del cliente
                          email:
                            type: string
                            example: cliente@example.com
                            description: Email del cliente
                          fullName:
                            type: string
                            example: Juan Pérez
                            description: Nombre completo del cliente
                          phone:
                            type: string
                            example: '+1234567890'
                            description: Teléfono del cliente
                        required:
                          - clientId
                          - email
                          - fullName
                          - phone
                    required:
                      - amount
                      - websiteId
                      - date
                      - balance
                      - user
                required:
                  - status
                  - data
        '400':
          description: Error de validación - datos inválidos o faltantes
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: invalidAmount
                    description: Código de error
                  message:
                    type: string
                    example: Amount is required and must be a number
                    description: Mensaje descriptivo del error
        '401':
          description: No autorizado - token de autenticación inválido o ausente
        '404':
          description: Usuario no encontrado en el sitio web especificado
        '500':
          description: Error interno del servidor - fallo en la transacción
      security:
        - bearerAuth:
            - admin
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT Token

````