# v1 API Referencias

### Autenticación de la API

Toda petición a la API **debe tener una cabecera `x-api-key` válida proporcionada.**

{% hint style="info" %}
**¿No estás seguro de dónde encontrar tu API Key?**

Contacta al Equipo de Desarrollo para obtener tu API-KEY
{% endhint %}

### Información de Endpoints

### Asignar o Remover Licencia (SEMOVI)

> Permite asignar o remover roles de licencias de Discord a los usuarios. Este endpoint incluye un sistema económico automatizado: si se proporciona un `costo` mayor a 0, procesa el cobro en cascada (Efectivo > Corriente > Salario) y distribuye los impuestos (16% al SAT, 84% a SEMOVI). Si el costo es 0, la licencia es gratis.

## Asignar o remover licencia

> Asigna o remueve un rol de licencia en Discord y maneja el cobro automático si aplica.

```json
{"openapi":"3.0.1","info":{"title":"MXRP Public API","version":"1.0.0"},"servers":[{"url":"http://mrp-api-odgwba.fly.dev","description":"Servidor de Producción (Fly.io)"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"REQUERIDO EN TODAS LAS PETICIONES."}}},"paths":{"/v1/semovi/licenses":{"post":{"summary":"Asignar o remover licencia","description":"Asigna o remueve un rol de licencia en Discord y maneja el cobro automático si aplica.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["userId","license","action"],"properties":{"userId":{"type":"string","description":"El ID numérico del usuario en Discord."},"license":{"type":"string","description":"El identificador de la licencia (Ej. LicenciaA1, LicenciaB1)."},"action":{"type":"string","description":"Acción a realizar. Valores permitidos: 'add' o 'remove'."},"costo":{"type":"number","description":"Costo de la licencia. 0 por defecto (Gratis)."}}}}}},"responses":{"200":{"description":"Licencia actualizada exitosamente.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"paymentProcessed":{"type":"boolean"},"costo":{"type":"number"}}}}}},"400":{"description":"Petición incorrecta o fondos insuficientes.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"401":{"description":"No autorizado. Falta el API Key."},"403":{"description":"Prohibido. API Key inválida."},"404":{"description":"Usuario no encontrado en la base de datos de economía."},"500":{"description":"Error interno del servidor o fallo de comunicación con Discord."}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://scarlet-2.gitbook.io/docs.mxrp/para-desarrolladores/v1-api-referencias.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
