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

# Crea una app

> Cómo registrar tu app en Craqui, qué datos pide, y cómo guardar su identificador y su secreto.

Una app se registra desde una cuenta de Craqui: la crea el propietario de un negocio cuyo plan incluye la API, y
queda a nombre de ese negocio. Cualquier propietario de ese negocio la puede gestionar, así que la app no depende
de una sola persona.

> [!NOTE]
>
> Si tu empresa no tiene un negocio en Craqui, escríbenos antes de empezar: te preparamos una cuenta para
> registrar y probar tu app.

## 1. Crea la app

En Craqui, **Configuración → Integraciones → API**, abre **Tus aplicaciones** y elige **Nueva aplicación**.

| Campo | Qué poner |
| - | - |
| **Nombre** | Como la conocen quienes usan tu producto, de 3 a 60 caracteres. No puede incluir «Craqui». |
| **Sitio web** | La dirección completa de tu producto, con `https://`. El propietario ve su dominio al conectar («Hecha por tuempresa.com»). |
| **Política de privacidad** | Una página pública, con `https://`. |
| **Email de soporte** | A donde te escribimos sobre la revisión, y a donde pueden escribirte los negocios. |
| **Descripción corta** | Opcional, hasta 200 caracteres. La ve el propietario al conectar. |
| **Direcciones de retorno** | De 1 a 10. Las direcciones exactas a las que Craqui vuelve después de que el propietario conecta tu app. |
| **Permisos que va a pedir** | El máximo que tu app puede pedirle a un negocio. Lee [Permisos](https://docs.craqui.com/apps/permissions.md). |

### La descripción

Puedes nombrar Craqui para contar con qué se conecta tu app: «Sincroniza tus pagos de Craqui con tu
contabilidad» está bien. Lo que no puede hacer la descripción es presentar tu app como si fuera de Craqui:
empezar con «Craqui…», decir que es oficial, hecha, verificada o aprobada por Craqui, o hablar en nombre de
Craqui («Craqui te pide…»). La marca **Verificada por Craqui** la pone la pantalla de conexión cuando
aprobamos tu app, no la descripción.

### Las direcciones de retorno

Se comparan **exactamente**, letra por letra: sin normalizar mayúsculas, barras finales ni puertos. La
`redirect_uri` que mandas al conectar tiene que ser una de estas, tal cual.

* Con `https://`, sin `#` y sin usuario ni contraseña.
* Mientras la app está **en desarrollo** también sirven `http://localhost` y `http://127.0.0.1`, para probar en
  tu máquina. El puerto es parte de la dirección: registra exactamente el que usas
  (`http://localhost:3000/craqui/callback`). En cualquier otro estado, esas direcciones no funcionan aunque
  sigan en la lista, y no podemos aprobar una app que todavía las tenga: quítalas antes de enviarla a
  revisión.
* Usa una dirección de tu propio dominio, el mismo de tu sitio o un subdominio:
  `https://app.tuempresa.com/craqui/callback`. En la revisión lo miramos.

## 2. Guarda el identificador y el secreto

Al crear la app, Craqui te muestra dos valores:

| Valor | Empieza con | Qué es |
| - | - | - |
| **Identificador** | `app_` | El `client_id` de tu app. Es público: va en la URL de conexión. |
| **Secreto** | `crq_cs_` | El `client_secret`. Se muestra **una sola vez**. |

Craqui no guarda el secreto en claro y no lo puede volver a mostrar. Cópialo en ese momento al gestor de
secretos o a las variables de entorno de tu servidor:

```bash theme={null}
export CRAQUI_CLIENT_ID="app_01jsy4wejjfcesyg3c5t6nm6sq"
export CRAQUI_CLIENT_SECRET="crq_cs_TU_SECRETO"
```

> [!WARNING]
>
> El secreto va solo en tu servidor: nunca en una página web, en una app de teléfono ni en un repositorio.
> Quien lo tenga puede hacerse pasar por tu app. Lee [Seguridad](https://docs.craqui.com/apps/security.md).

Si lo pierdes, crea uno nuevo desde la app (**Credenciales → Nuevo secreto**). Una app puede tener hasta
**dos secretos activos**, para cambiar uno por otro sin cortar el servicio.

## 3. Pruébala en desarrollo

La app nace **en desarrollo**. Así ya funciona de punta a punta, con dos límites:

* Solo la pueden conectar los propietarios del negocio que la registró.
* Solo la pueden conectar a negocios donde ellos también son propietarios.

Para probarla, conéctala a tu propio negocio siguiendo [Conectar un negocio](https://docs.craqui.com/apps/authorization-code.md) y haz
algunos pedidos. Son datos reales: las apps no tienen un negocio de prueba. Cada pedido aparece en la
**Actividad** de tu app, en el panel, y en la Actividad de la API del negocio.

## 4. Envíala a revisión

Cuando funciona, elige **Enviar a revisión** en la app. Mientras la revisamos no se puede editar. Si la
aprobamos, cualquier propietario la puede conectar; si nos falta algo, la app pasa a **Necesita cambios**
con lo que pedimos, y la envías de nuevo. Lee [Revisión de tu app](https://docs.craqui.com/apps/review.md).

## Los estados de una app

| Estado | Quién la puede conectar |
| - | - |
| **En desarrollo** | Los propietarios del negocio que la registró, a sus propios negocios |
| **En revisión** | Igual que en desarrollo, mientras la revisamos, pero sin las direcciones de `localhost` |
| **Necesita cambios** | Igual que en revisión, hasta que la envíes de nuevo |
| **Aprobada** | El propietario de cualquier negocio |
| **Suspendida** | Nadie. Sus tokens dejan de funcionar en todos los negocios ([`app_suspended`](https://docs.craqui.com/errors/app_suspended)) hasta que la reactivemos; las conexiones no se pierden |

## Si el plan del negocio que la registró cambia

Si el plan de tu negocio deja de incluir la API, tu app **sigue funcionando** en los negocios que la tienen
conectada. Tu panel queda en solo lectura: puedes ver la app, crear y revocar secretos y eliminarla, pero no
editarla ni enviarla a revisión hasta volver a un plan con API.

## Eliminar la app

Desde la app, **Zona de peligro → Eliminar aplicación**. Se desconecta de todos los negocios que la usan, sus
secretos dejan de funcionar y no se puede deshacer.


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