payment_link.failed
Falló un intento de cobro de un link de pago.
Payload
All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.
The payment link ID.
The link status. Always "failed" for this event.
The amount that was attempted in cents (100 = $1.00).
The payment currency code.
The payment description shown to the customer.
The customer ID, or null when the link is not tied to a customer. Returns your externalId if you provided one when creating the customer, otherwise returns the Commet publicId.
The failure code from the payment processor.
A human-readable failure message.
{
"event": "payment_link.failed",
"timestamp": "2026-06-18T14:03:00.000Z",
"organizationId": "org_abc123",
"mode": "live",
"apiVersion": "2026-06-10",
"data": {
"paymentId": "pay_l1m2n3",
"status": "failed",
"amount": 5000,
"currency": "usd",
"description": "One-time onboarding fee",
"customerId": "user_123",
"failureCode": "card_declined",
"failureMessage": "Your card was declined."
}
}Cuándo se dispara
Cuando se rechaza un intento de cobro sobre un link de pago. El link queda abierto — un link fallido se puede reintentar, y el cliente puede pagarlo de nuevo. Un intento exitoso posterior dispara payment_link.completed.
failureCode es el código del procesador (por ejemplo card_declined) y failureMessage es el motivo legible, o null cuando el proveedor no da ninguno.
El evento se dispara igual ya sea que tu organización use el proveedor Stripe o el proveedor sandbox de Commet.
¿Cómo está esta guía?