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

# Crear webhook de despliegue

> Crea un webhook de despliegue para un repositorio de GitHub, de forma que un push a la rama elegida despliegue la aplicación.

**app\_id** `string` *required*

El ID de la aplicación en la que se creará el webhook.

**owner** `string` *required*

El propietario del repositorio de GitHub.

**repo\_name** `string` *required*

El nombre del repositorio de GitHub.

**repo\_id** `string` *required*

El ID del repositorio de GitHub. Se comprueba contra el propio repositorio: si no coincide con `owner` y `repo_name`, la petición falla con `VALIDATION_ERROR` (`400`) y `details.path` apunta a `repo_id`.

**account\_id** `string` *required*

El ID de la cuenta de GitHub.

**branch** `string`

La rama de Git que dispara el despliegue (por ejemplo `develop` o `release/1.2`). Es opcional: sin ella, un push a `main` o `master` despliega. Con ella, solo un push a esa rama despliega, y un push a cualquier otra rama se ignora. La entrega sigue respondiendo con `200`.

Si vuelves a llamar a esta ruta para una aplicación que ya tiene un webhook, se reemplaza la rama: envía otra `branch` para cambiarla, o omítela para volver a `main` o `master`. Un nombre de rama no válido falla con `VALIDATION_ERROR` (`400`) y `details.path` apunta a `branch`.

### Respuesta

**response** `object`

Contiene el webhook creado.

**Mostrar objeto**

**url** `string`

La URL del webhook creado.

```json theme={null}
{
  "response": {
    "url": "https://api.vertracloud.app/v1/apps/123/deploys/receiver/webhook"
  }
}
```

### Respuestas de error

**code** `string`

Códigos de error posibles:

* `AUTH_TOKEN_MISSING`, `API_KEY_INVALID`, `SESSION_REVOKED`: Falta la cabecera `Authorization`, la clave de API no es válida o la sesión del panel fue revocada (`401`).
* `API_KEY_IP_DENIED`, `API_KEY_SCOPE_DENIED`: La clave de API se usa desde una IP fuera de su lista de permitidas, o no tiene el scope que requiere la ruta (`403`).
* `ACCESS_DENIED`: El recurso pertenece a otra cuenta, o no tienes el permiso de workspace necesario para él (`403`).
* `PLAN_RESTRICTED_FEATURE`: El plan del usuario no admite el despliegue automático.
* `INSTALLATION_NOT_FOUND`: No se encontró la instalación de GitHub del usuario, o el repositorio no es uno de los repositorios a los que esa instalación tiene acceso (`404`).
* `IMAGE_APP_CODE_NOT_APPLICABLE`: La aplicación ejecuta una imagen Docker personalizada, que no tiene despliegue automático desde GitHub (`409`). Vincula la imagen a GitHub en su lugar.
* `FETCH_ZIP_ERROR`: No se pudo contactar con GitHub, o estaba limitando las peticiones mientras se comprobaba el repositorio (`502`). Inténtalo de nuevo en unos minutos.
* `VALIDATION_ERROR`: El cuerpo no superó la validación, por ejemplo un `owner`, `repo_name`, `repo_id` o `branch` no válidos (`400`). `details.path` indica el campo.

**message** `string`

Una descripción detallada con información adicional sobre el error.

```json theme={null}
{
  "code": "INSTALLATION_NOT_FOUND"
}
```


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