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

# Webhooks

> Notificaciones de cambios de estado.

Los webhooks permiten recibir notificaciones cuando una transacción cambia de estado.

## Crear Webhook

```http theme={null}
POST /v2/webhooks
```

```json theme={null}
{
  "url": "https://partner.example.com/webhooks/yp",
  "description": "Webhook principal",
  "apiKey": "partner-secret",
  "status": "ACTIVE",
  "events": {
    "transaction": ["completed_transaction", "failed_transaction"]
  }
}
```

### Response

```json theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "url": "https://partner.example.com/webhooks/yp",
  "apiKey": "partner-secret",
  "description": "Webhook principal",
  "events": ["completed_transaction", "failed_transaction"]
}
```

## Listar Webhooks

```http theme={null}
GET /v2/webhooks
```

### Response

```json theme={null}
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "callbalckUrl": "https://partner.example.com/webhooks/yp",
    "events": {
      "transaction": ["completed_transaction", "failed_transaction"]
    },
    "createdAt": "2026-05-12T12:00:00.000Z",
    "updatedAt": "2026-05-12T12:00:00.000Z",
    "description": "Webhook principal",
    "status": "ACTIVE"
  }
]
```

## Obtener Webhook

```http theme={null}
GET /v2/webhooks/{id}
```

### Response

```json theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "callbalckUrl": "https://partner.example.com/webhooks/yp",
  "events": {
    "transaction": ["completed_transaction", "failed_transaction"]
  },
  "createdAt": "2026-05-12T12:00:00.000Z",
  "updatedAt": "2026-05-12T12:00:00.000Z",
  "description": "Webhook principal",
  "status": "ACTIVE"
}
```

## Actualizar Webhook

```http theme={null}
PATCH /v2/webhooks/{id}
```

```json theme={null}
{
  "url": "https://partner.example.com/webhooks/yp-v2",
  "description": "Webhook actualizado",
  "apiKey": "partner-secret",
  "status": "ACTIVE",
  "events": {
    "transaction": [
      "completed_transaction",
      "failed_transaction",
      "expired_transaction"
    ]
  }
}
```

### Response

```json theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "url": "https://partner.example.com/webhooks/yp-v2",
  "apiKey": "partner-secret",
  "description": "Webhook actualizado",
  "events": [
    "completed_transaction",
    "failed_transaction",
    "expired_transaction"
  ]
}
```

## Payloads de Transacciones Crypto

### `withdrawal_crypto`

```json theme={null}
{
  "externalReference": "9dd9614e-5059-4cb5-826c-ef092fd99cb9",
  "status": "completed_transaction",
  "transactionType": "withdrawal_crypto",
  "timestamp": "2026-06-29T20:30:52.828Z",
  "details": {
    "amount": "100",
    "asset": "USDC",
    "blockchain": "Polygon",
    "transactionHash": "0x8f2a7d8dd74c53d68d7f8cfa6529370aa322f1b02a7d68cce8485b571735a9b1",
    "message": "Transaction 48942363-dc5f-47ec-baae-5628d814ccf6 updated to status completed_transaction",
    "transactionId": "48942363-dc5f-47ec-baae-5628d814ccf6"
  }
}
```

### `deposit_crypto`

```json theme={null}
{
  "status": "completed_transaction",
  "transactionType": "deposit_crypto",
  "timestamp": "2026-06-29T20:30:52.828Z",
  "details": {
    "walletId": "550e8400-e29b-41d4-a716-446655440001",
    "amount": "100",
    "asset": "USDC",
    "blockchain": "Polygon",
    "transactionHash": "0x8f2a7d8dd74c53d68d7f8cfa6529370aa322f1b02a7d68cce8485b571735a9b1",
    "message": "Transaction 48942363-dc5f-47ec-baae-5628d814ccf6 updated to status completed_transaction",
    "transactionId": "48942363-dc5f-47ec-baae-5628d814ccf6"
  }
}
```

`transactionHash` se incluye cuando el proveedor blockchain lo informa y puede utilizarse para consultar la operación en el explorador de la red correspondiente.

## Logs

```http theme={null}
GET /v2/webhooks/logs
```

### Query Params

| Parámetro   | Requerido | Valores            |
| ----------- | --------- | ------------------ |
| `page`      | No        | Número de página   |
| `limit`     | No        | Máximo 100         |
| `status`    | No        | `SUCCESS`, `ERROR` |
| `webhookId` | No        | UUID del webhook   |

### Response

```json theme={null}
{
  "logs": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440010",
      "webhookId": "550e8400-e29b-41d4-a716-446655440000",
      "name": "Webhook principal",
      "webhookUrl": "https://partner.example.com/webhooks/yp",
      "status": "SUCCESS",
      "payload": {
        "event": "completed_transaction"
      },
      "statusCode": 200,
      "duration": 120,
      "retries": 0,
      "createdAt": "2026-05-12T12:00:00.000Z",
      "updatedAt": "2026-05-12T12:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 1,
    "totalPages": 1
  }
}
```

## Eventos Soportados

```text theme={null}
pending_transaction
processing_transaction
completed_transaction
reject_transaction
failed_transaction
expired_transaction
```
