Reenviar webhook de transacción
POST /api/resend-webhook/{transactionIdentifier}
POST https://api.fypay.me/api/resend-webhook/{transactionIdentifier}Requiere un Bearer token en el header Authorization. Vea Generar Token para obtener uno.
Reenvía el webhook de una transacción específica a la(s) URL(s) configurada(s) o a una URL temporal (override).
El identificador de la transacción puede ser:
- ID numérico de transacción: El ID retornado por FyPay (campo
transactionIden los webhooks) - Su ID de referencia: El identificador que usted proporcionó al crear la transacción (
externalId) - PIX End-to-End ID: El
e2eIdretornado en los webhooks (formato: E/D + 32 caracteres)
Autenticación
Requiere un Bearer token en el header Authorization.
Parámetros de ruta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
transactionIdentifier | string | Sí | Identificador de la transacción: id numérico, externalId o endToEndId |
Cuerpo de la solicitud (opcional)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
url | string | No | URL temporal para este reenvío específico. Si no se proporciona, el reenvío va a todas las URLs activas configuradas para el evento. Si se proporciona una URL, usa los headers y la versión de payload de la primera URL activa del evento. La URL no se persiste |
{
"url": "https://meu-servidor.com/webhooks/fypay"
}Comportamiento de la URL
- Si no se proporciona
url, el reenvío se envía a todas las URLs activas configuradas para el evento, cada una con sus propios headers personalizados y versión de payload - Si se proporciona
urlen el cuerpo, utiliza esa URL temporalmente (no se persiste), con los headers personalizados y la versión de payload de la primera URL activa configurada para el evento - Si no hay URL disponible, retorna error 400
El reenvío pasa por el mismo pipeline que el envío original: el payload se reconstruye a partir del estado actual de la transacción y se firma con el secret HMAC actual de la cuenta en el header X-Avista-Signature (mientras la clave de firma no se genere en el panel, el reenvío sale sin ese header).
Ejemplos de Código
curl -X POST "https://api.fypay.me/api/resend-webhook/PAG-2024-0001" \
-H "Authorization: Bearer $FYPAY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://meu-servidor.com/webhooks/fypay"
}'const axios = require('axios');
const response = await axios.post('https://api.fypay.me/api/resend-webhook/PAG-2024-0001',
{
"url": "https://meu-servidor.com/webhooks/fypay"
},
{
headers: {
'Authorization': `Bearer ${process.env.FYPAY_TOKEN}`,
'Content-Type': 'application/json',
},
}
);
console.log(response.data);import os, requests
response = requests.post(
'https://api.fypay.me/api/resend-webhook/PAG-2024-0001',
headers={
'Authorization': f'Bearer {os.environ["FYPAY_TOKEN"]}',
'Content-Type': 'application/json',
},
json={
"url": "https://meu-servidor.com/webhooks/fypay"
},
)
print(response.json())$ch = curl_init('https://api.fypay.me/api/resend-webhook/PAG-2024-0001');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('FYPAY_TOKEN'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => '{
"url": "https://meu-servidor.com/webhooks/fypay"
}',
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;String body = """
{
"url": "https://meu-servidor.com/webhooks/fypay"
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.fypay.me/api/resend-webhook/PAG-2024-0001"))
.header("Authorization", "Bearer " + System.getenv("FYPAY_TOKEN"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Respuesta (200)
| Campo | Tipo | Descripción |
|---|---|---|
message | string | Mensaje descriptivo del resultado |
webhookLogId | number | ID del registro de webhook generado para auditoría |
sentAt | string | Fecha/hora de envío del webhook (ISO 8601) |
statusCode | number | Código de estado HTTP retornado por la URL de destino |
{
"message": "Webhook resent successfully",
"webhookLogId": 12345,
"sentAt": "2024-01-15T10:30:00.000Z",
"statusCode": 200
}Errores
| Estado | Descripción |
|---|---|
| 400 | No hay URL de webhook disponible. Configure un webhook para el tipo de operación de esta transacción o proporcione una URL temporal en el campo url |
| 401 | Token inválido, expirado o faltante |
| 404 | Transacción no encontrada o no pertenece a la cuenta autenticada |
| 429 | Límite de 60 solicitudes por minuto por cuenta excedido. Espere a que la ventana se renueve (header Retry-After) |
| 502 | La URL de destino respondió con un status fuera de 2xx. El cuerpo incluye message, webhookLogId y sentAt |
| 504 | La URL de destino no respondió en 10 segundos. El cuerpo incluye message, webhookLogId y sentAt |