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

# Webhooks y Callbacks

Los webhooks te permiten recibir notificaciones automáticas en tu servidor cuando ocurre un evento en PayCode, como un pago aprobado o una devolución procesada. Debes registrar la URL de tu servidor donde quieres recibir esas notificaciones.

## Obtener callback

Consulta la información de un callback registrado.

**Método:** `GET` **Endpoint:** `/Api/v2/hook/get`

**Header requerido:** `Authorization: Bearer {token}`

**Parámetros:**

| Parámetro | Tipo    | Requerido | Descripción                            |
| --------- | ------- | --------- | -------------------------------------- |
| `id`      | integer | Sí        | Identificador del callback a consultar |

**Ejemplo de request:**

```bash theme={null}
curl -G {{url}}Api/v2/hook/get \
     --data-urlencode "id=43"
```

## Crear callback

Registra una nueva URL donde PayCode enviará las notificaciones de los eventos configurados.

**Método:** `POST` **Endpoint:** `/Api/v2/hook/create`

**Header requerido:** `Authorization: Bearer {token}`

**Ejemplo de request:**

```json theme={null}
{
  "url": "https://tuservidor.com/paycode/webhook",
  "type_callback": "schedule_payment_valid_invoice_id"
}
```

**Descripción de los campos:**

| Campo           | Tipo   | Requerido | Descripción                                                 |
| --------------- | ------ | --------- | ----------------------------------------------------------- |
| `url`           | string | Sí        | URL de tu servidor donde PayCode enviará las notificaciones |
| `type_callback` | string | Sí        | Tipo de evento que disparará la notificación                |

**Ejemplo de respuesta 200 OK:**

```json theme={null}
{
  "success": true,
  "message": "La ruta se creó correctamente"
}
```

## Actualizar callback

Modifica la URL o el tipo de evento de un callback existente.

**Método:** `PUT` **Endpoint:** `/Api/v2/hook/update`

**Header requerido:** `Authorization: Bearer {token}`

**Parámetros:**

| Parámetro | Tipo    | Requerido | Descripción                             |
| --------- | ------- | --------- | --------------------------------------- |
| `id`      | integer | Sí        | Identificador del callback a actualizar |

**Ejemplo de request:**

```json theme={null}
{
  "id": 96,
  "url": "https://tuservidor.com/paycode/webhook",
  "type_callback": "card"
}
```

**Descripción de los campos:**

| Campo           | Tipo    | Requerido | Descripción                                        |
| --------------- | ------- | --------- | -------------------------------------------------- |
| `id`            | integer | Sí        | Identificador del callback a actualizar            |
| `url`           | string  | Sí        | Nueva URL donde PayCode enviará las notificaciones |
| `type_callback` | string  | Sí        | Nuevo tipo de evento                               |

## Eliminar callback

Elimina un callback registrado. PayCode dejará de enviar notificaciones a esa URL.

**Método:** `DELETE` **Endpoint:** `/Api/v2/hook/delete`

**Header requerido:** `Authorization: Bearer {token}`

**Ejemplo de request:**

```json theme={null}
{
  "id": 1
}
```

**Descripción de los campos:**

| Campo | Tipo    | Requerido | Descripción                           |
| ----- | ------- | --------- | ------------------------------------- |
| `id`  | integer | Sí        | Identificador del callback a eliminar |

<Warning>
  Esta acción es irreversible. Una vez eliminado el callback PayCode dejará de enviar notificaciones a esa URL.
</Warning>

## Reenviar notificación

Reenvía una notificación de un evento que ya ocurrió. Útil cuando tu servidor no recibió correctamente la notificación original.

**Método:** `POST` **Endpoint:** `/api/v2/internal/callback/resendnotificacion`

**Header requerido:** `Authorization: Bearer {token}`

**Ejemplo de request:**

```json theme={null}
{
  "business_info": 25958,
  "type_callback": "payment_links"
}
```

**Descripción de los campos:**

| Campo           | Tipo    | Requerido | Descripción                                       |
| --------------- | ------- | --------- | ------------------------------------------------- |
| `business_info` | integer | Sí        | Identificador de tu negocio en PayCode            |
| `type_callback` | string  | Sí        | Tipo de evento cuya notificación quieres reenviar |
