Crea una credencial
Desde Integraciones, crea una clave de pruebas con los permisos mínimos.
rv_sk_test_••••••••Consulta disponibilidad, crea y modifica reservas y conecta tu lista de espera con un contrato estable, idempotencia y eventos firmados.
{
"data": {
"date": "2026-08-12",
"party_size": 4,
"state": "ready",
"slots": [
{ "time": "20:30", "duration_minutes": 90 },
{ "time": "21:00", "duration_minutes": 90 }
]
},
"meta": { "request_id": "…" }
}
Desde Integraciones, crea una clave de pruebas con los permisos mínimos.
rv_sk_test_••••••••Lee reglas, campos publicados e identidad visual antes de construir el formulario.
availability:readUsa una clave de idempotencia distinta por acción y guarda los identificadores devueltos.
Idempotency-KeyEjecuta peticiones reales contra este entorno. La clave vive únicamente en la memoria de esta pestaña y nunca se guarda.
Devuelve reglas, campos y configuración publicada.
/api/v1/venues/{venue_id}/booking-profile{
"message": "Configura una operación y pulsa Enviar petición."
}
Cada clave pertenece a un restaurante y canal. Separa test y live; rota de inmediato ante cualquier exposición.
Authorization: Bearer $RESERVIFY_API_KEYRepite una solicitud con la misma clave solo si el método, la ruta y el cuerpo son idénticos.
Idempotency-Key: booking_01J...Los errores usan application/problem+json e incluyen código estable y request_id para diagnóstico.
{ "code": "slot_unavailable" }Reservify firma el cuerpo JSON exacto con HMAC-SHA256. Responde con cualquier estado 2xx; si fallas, reintentaremos hasta ocho veces con espera creciente.
reservation.createdreservation.updatedreservation.cancelledwaitlist.createdwaitlist.updatedwebhook.test$signature = $_SERVER['HTTP_RESERVIFY_SIGNATURE'] ?? '';
[$timestampPart, $hashPart] = explode(',', $signature, 2);
$timestamp = substr($timestampPart, 2);
$received = substr($hashPart, 3);
$expected = hash_hmac(
'sha256',
$timestamp . '.' . $rawBody,
getenv('RESERVIFY_WEBHOOK_SECRET')
);
if (!hash_equals($expected, $received)) {
http_response_code(401);
exit;
}