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

# whatsapp.payment.updated

> Se produce cuando cambia una transacción de pago de WhatsApp.

Usa `whatsapp.payment.updated` para gestionar este evento en tu endpoint de webhook.

## Desencadenadores

Se produce cuando cambia una transacción de pago de WhatsApp.

Suscríbete a `whatsapp.payment.updated` cuando [configures tu endpoint de webhook](https://docs.ycloud.com/es/api-reference/guides/api-fundamentals/configure-webhooks.md).

## Sintaxis

YCloud envía una solicitud HTTP `POST` a la URL de webhook que hayas configurado. La siguiente estructura muestra una variante de carga útil. Los valores entre corchetes angulares son marcadores de posición; sus tipos se indican en **Parámetros**. Los campos opcionales y otras variantes se describen a continuación.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "<ID>",
  "type": "whatsapp.payment.updated",
  "apiVersion": "<API_VERSION>",
  "createTime": "<CREATE_TIME>",
  "whatsappPayment": {
    "wabaId": "<WABA_ID>",
    "referenceId": "<REFERENCE_ID>",
    "status": "<STATUS>",
    "transactions": [
      {
        "id": "<ID>",
        "type": "<TYPE>",
        "status": "<STATUS>",
        "createdTimestamp": "<CREATED_TIMESTAMP_VALUE>",
        "updatedTimestamp": "<UPDATED_TIMESTAMP_VALUE>",
        "amount": {
          "value": "<VALUE_VALUE>",
          "offset": "<OFFSET_VALUE>"
        },
        "currency": "<CURRENCY>",
        "methodType": "<METHOD_TYPE>",
        "error": {
          "code": "<CODE>",
          "reason": "<REASON>"
        }
      }
    ]
  }
}
```

## Parámetros

Valida el encabezado HTTP `YCloud-Signature` antes de procesar el cuerpo JSON. Consulta [validación de firma](https://docs.ycloud.com/es/api-reference/guides/api-fundamentals/configure-webhooks.md).

### Sobre del evento

| Parámetro | Tipo | Obligatorio | Descripción |
| - | - | - | - |
| `id` | string | Sí | Identificador único para el evento. Longitud mínima: `6`. Longitud máxima: `128`. |
| `type` | string | Sí | Siempre `whatsapp.payment.updated`. |
| `apiVersion` | string | Sí | La versión de la API utilizada para representar este evento. |
| `createTime` | string (date-time) | Sí | La hora en que se creó este evento, con formato [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339). Por ejemplo, `2022-06-01T12:00:00.000Z`. |

### Carga útil del evento

| Parámetro | Tipo | Obligatorio | Descripción |
| - | - | - | - |
| `whatsappPayment` | object | No | Carga útil específica de `whatsappPayment` para el evento. |

Los cuatro campos comunes del sobre son obligatorios. Los campos de la carga útil dependen de la variante del evento. En cada tabla de objetos, **Obligatorio** se aplica cuando su objeto superior está presente. Los campos opcionales pueden omitirse; una muestra no hace que un campo sea obligatorio.

#### whatsappPayment

| Parámetro | Tipo | Obligatorio | Descripción |
| - | - | - | - |
| `wabaId` | string | Sí | ID de la cuenta de WhatsApp Business. |
| `referenceId` | string | Sí | Identificador único para el pago proporcionado por la empresa. Distingue entre mayúsculas y minúsculas, no puede ser una cadena vacía, solo puede contener letras en inglés, números, guiones bajos, guiones o puntos, y no debe superar los 35 caracteres. |
| `status` | string | Sí | Estado de este pago.<ul><li>`captured`: indica que el pago se completó correctamente.</li><li>`pending`: indica que el usuario lo intentó, pero aún no se ha recibido la señal de transacción correcta.</li></ul> |
| `transactions` | object\[] | No | Contiene el intento de transacción más reciente para este pago. |

> [accordion] whatsappPayment.transactions\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `id` | string | Sí | ID de la transacción. |
> | `type` | string | Sí | El tipo de pago para esta transacción. Uno de `billdesk`, `razorpay`, `payu` o `zaakpay`. |
> | `status` | string | Sí | El estado de la transacción. Uno de `pending`, `success` o `failed`. |
> | `createdTimestamp` | integer (int64) | Sí | Hora en que se creó la transacción en milisegundos de época. |
> | `updatedTimestamp` | integer (int64) | Sí | Hora en que se actualizó la transacción por última vez en milisegundos de época. |
> | `amount` | object | Sí | Importe total que ha pagado el usuario. |
> | `currency` | string | Sí | La moneda para este pago. Actualmente, el único valor admitido es `INR`. |
> | `methodType` | string | No | Describe el tipo de método de pago utilizado por el consumidor para pagar el pedido. Puede ser uno de `upi`, `card`, `wallet` o `netbanking`. Es posible que la información sobre el método de pago no esté disponible para pagos fallidos. |
> | `error` | object | No | Es posible que los detalles del error de pago no estén disponibles para todos los intentos de pago. |

> [accordion] whatsappPayment.transactions\[].amount
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `offset` | integer (int32) | Sí | Debe ser `100` para `INR`. |
> | `value` | integer (int32) | Sí | Entero positivo que representa el valor del importe multiplicado por el desplazamiento (offset). Por ejemplo, ₹12.34 tiene el valor 1234. |
> | `description` | string | No | Úsalo solo para `tax`, `shipping` o `discount`. Descripción del importe. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |
> | `discount_program_name` | string | No | Úsalo solo para `discount`. Texto utilizado para definir pedidos con incentivos. Si el pedido tiene incentivos, el comerciante debe definir esta información. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |

> [accordion] whatsappPayment.transactions\[].error
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `code` | string | Sí | Describe el motivo del fallo de pago generado por la pasarela de pago, el cual Meta transmite a los socios. |
> | `reason` | string | Sí | Describe el motivo del fallo de pago en texto plano generado por la pasarela de pago, el cual Meta transmite a los socios. |

## Ejemplo

El siguiente JSON es el cuerpo entregado a tu receptor. Los identificadores, números de teléfono y otros valores de cuenta son ilustrativos.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "evt_eEkn26qar3nOB8md",
  "type": "whatsapp.payment.updated",
  "apiVersion": "v2",
  "createTime": "2024-10-10T07:08:00.000Z",
  "whatsappPayment": {
    "wabaId": "WABA-ID",
    "referenceId": "<reference-id>",
    "status": "captured",
    "transactions": [
      {
        "id": "<transaction-id>",
        "type": "razorpay",
        "status": "success",
        "createdTimestamp": 1728544066000,
        "updatedTimestamp": 1728544066000,
        "amount": {
          "value": 21000,
          "offset": 100
        },
        "currency": "INR",
        "methodType": "upi | card | wallet | netbanking",
        "error": {
          "code": "error-code",
          "reason": "error-reason"
        }
      }
    ]
  }
}
```

Tras verificar la firma y aceptar el evento de forma duradera, devuelve una respuesta `2xx`. Procesa el trabajo lento de forma asíncrona.

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
```

Para ver ejemplos prácticos basados en escenarios, consulta [ejemplos anotados](https://docs.ycloud.com/es/api-reference/guides/examples/webhook-examples/whatsapp-payment-updated-webhook-examples).


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