Ir al contenido

Referencia del payload del webhook

El cuerpo JSON que Timemark envía mediante POST para un evento Nueva foto, campo por campo.


Estás escribiendo el endpoint que recibe los webhooks de Timemark y necesitas conocer la forma exacta del cuerpo de la solicitud para poder analizarlo.

Cada entrega es un POST HTTP con un cuerpo JSON. El cuerpo contiene el evento y la foto a la que se refiere. Tu endpoint debe devolver una respuesta 2xx dentro del tiempo de espera; cualquier otra cosa se considera una entrega fallida y se reintenta.

Este es el cuerpo enviado para un evento Nueva foto (event_type: "photo.uploaded"):

{
"event_type": "photo.uploaded",
"event_id": "3f4566da-938d-4e11-834b-ba9e3faec98c",
"group_name": "Group Scenery",
"project_name": "Project Sunrise",
"photo_code": "A1BCDEFGHIJ23K",
"photo_name": "2025-12-11 13.45.00_1388 Central Park, New York, example.jpg",
"photo_url": "https://example.com/uploads/photos/123456.jpg",
"thumbnail_url": "https://example.com/uploads/photos/123456.jpg",
"photo_timestamp": "2025-12-11T13:45:00Z",
"photo_location": {
"location_name": "Central Park, New York, USA",
"location_latitude": "40.785091",
"location_longitude": "-73.968285"
},
"member": {
"member_name": "Alice Chen",
"member_short_name": "Alice",
"member_profile_picture_url": "https://example.com/user/profile_photo/123456.jpg",
"member_contact": "alice.chen@example.com"
},
"device_model": "Apple iPhone 14 Pro Max",
"custom_notes": [
{
"title": "custom_note_title_1",
"content": "custom_note_content_1"
},
{
"title": "custom_note_title_2",
"content": "custom_note_content_2"
}
]
}
FieldTypeDescription
event_typestringEl evento que se activó. photo.uploaded para un evento Nueva foto.
event_idstringID único para esta entrega. Úsalo para eliminar duplicados en los reintentos.
group_namestringEl equipo al que pertenece la foto.
project_namestringEl proyecto al que pertenece la foto.
photo_codestringEl código de verificación de la foto, también usado en el Centro de verificación de fotos.
photo_namestringEl nombre de archivo de la foto, incluida su hora y ubicación de captura.
photo_urlstringURL de la imagen a tamaño completo.
thumbnail_urlstringURL de la imagen en miniatura.
photo_timestampstringHora de captura en ISO 8601 (UTC).
photo_locationobjectUbicación de captura. Ver más abajo.
photo_location.location_namestringNombre del lugar o dirección, legible para humanos.
photo_location.location_latitudestringLatitud, como string.
photo_location.location_longitudestringLongitud, como string.
memberobjectEl miembro que capturó la foto. Ver más abajo.
member.member_namestringNombre completo mostrado.
member.member_short_namestringNombre corto.
member.member_profile_picture_urlstringURL de la foto de perfil del miembro.
member.member_contactstringEl contacto del miembro, como un correo electrónico.
device_modelstringEl dispositivo que capturó la foto.
custom_notesarrayNotas personalizadas en la foto. Cada elemento tiene un title y un content.
  • La latitud y la longitud son strings, no números. Conviértelas antes de hacer cálculos.
  • Elimina duplicados usando event_id. Una entrega reintentada repite el mismo event_id, así que guárdalo y omite los duplicados.
  • Confirma rápido, procesa después. Devuelve 2xx primero y luego realiza el trabajo pesado, o la entrega se considerará fallida y se reintentará.

Última actualización: