Integrar Webhook
El sistema enviará un webhook con información detallada sobre la transacción una vez que se complete el pago. Esta información es crucial para actualizar el estado de la reserva en su sistema.
A continuación se explicaran unos ejemplos de integración para pruebas o en su efecto para conectar con una plataforma como pipedream
Estructura JSON Webhook
Este documento proporciona una descripción detallada del JSON de un evento webhook.
Ejemplo JSON
{
"uuid": "string",
"reference": "string",
"booking_number": "string | null",
"amount": "number",
"fee": "number",
"currency": "string",
"checkin": "string (format: DD/MM/YYYY)",
"checkout": "string (format: DD/MM/YYYY)",
"description": "string",
"customer_info": {
"first_name": "string",
"last_name": "string",
"email": "string",
"ip": "string",
"phone": "string",
"user_agent": "string",
"browser_info": {
"language": "string",
"color_depth": "string",
"java_enabled": "boolean",
"screen_width": "number",
"accept_header": "string",
"screen_height": "number",
"java_script_enabled": "boolean"
}
},
"items": [
{
"price": "number",
"quantity": "number",
"description": "string"
}
],
"payment_mode": "string",
"order_status": "string",
"payment_status": "string",
"created_at": "string (format: DD/MM/YYYY HH:MM:SS)",
"merchant": {
"name": "string",
"slug": "string",
"logo": "string (HTML)",
"billing_email": "string | null",
"reservation_email": "string",
"reservation_email_bcc": "string | null",
"bg_color": "string (hex color)",
"text_color": "string (hex color)",
"address": "string",
"address_phone": "string | null",
"contact_info": "string (HTML)",
"pictures": "array"
},
"transactions": [
{
"priority": "string",
"kind": "string",
"amount": "number",
"card_address": {
"address": "string",
"city": "string",
"country": "string",
"country_code": "string",
"zip": "string",
"address2": "string | null",
"state": "string"
},
"card": {
"bin": "string",
"type": "string",
"brand": "string",
"bank_name": "string",
"last_4_digits": "string",
"country_code": "string",
"url_brand": "string (URL)"
},
"card_info": {
"holder_name": "string",
"expiration": "string (format: MM/YYYY)"
},
"installment": "string",
"monthly": "string",
"descriptor": "string"
}
],
"transaction_template": [
{
"BRAND": "string",
"CARD_ICON": "string (URL)",
"TYPE": "string",
"LAST_4_DIGITS": "string",
"HOLDER_NAME": "string",
"MERCHANT_DESCRIPTOR": "string",
"INSTALLMENT": "string",
"MONTHLY": "string"
}
],
"holder_name_diff": "boolean",
"payment_adds": {
"date": "string (format: DD/MM/YYYY HH:MM)",
"amount": "string"
},
"webhook_event": "string"
}
{
"uuid": "f5b07c64-a98a-4b9e-8fbc-9cef25cc7659",
"reference": "f80f1431-1d94-44d0-ab30-b3a6b7d19d4e",
"booking_number": null,
"amount": 1000,
"fee": 0,
"currency": "MXN",
"checkin": "05/07/2024",
"checkout": "06/07/2024",
"description": "Reserva de hotel",
"customer_info": {
"first_name": "Alex",
"last_name": "Galindo",
"email": "pruebas@retrypay.com",
"ip": "177.249.170.25",
"phone": "3311224455",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0",
"browser_info": {
"language": "en-US",
"color_depth": "1",
"java_enabled": true,
"screen_width": 564,
"accept_header": "*/",
"screen_height": 200,
"java_script_enabled": true
}
},
"items": [
{
"price": 1000,
"quantity": 1,
"description": "Reserva de hotel"
}
],
"payment_mode": "single",
"order_status": "inactive",
"payment_status": "paid",
"created_at": "01/07/2024 20:56:04",
"merchant": {
"name": "Merchant Test",
"slug": "merchant-test",
"logo": "<img src=\"https://hotelpay-merchants.s3.us-east-2.amazonaws.com/logos/66673da2078ae\" alt=\"\" height=\"120\">",
"billing_email": null,
"reservation_email": "pagos@retrypay.com",
"reservation_email_bcc": null,
"bg_color": "#d16363",
"text_color": "#ba6a6a",
"address": "Tiburon, -, -, Guadalajara, Jalisco, CP 32400",
"address_phone": null,
"contact_info": "<p>Llámanos al</p>",
"pictures": []
},
"transactions": [
{
"priority": "primary",
"kind": "card",
"amount": 1000,
"card_address": {
"address": "Av Hidalgo 1995",
"city": "Guadalajara",
"country": "México",
"country_code": "MX",
"zip": "123456",
"address2": null,
"state": "Jalisco"
},
"card": {
"bin": "400000",
"type": "credit",
"brand": "visa",
"bank_name": "Intl Hdqtrs-Center Owned",
"last_4_digits": "0051",
"country_code": "US",
"url_brand": "https://testing.hotelpay.net/storage/img/brands/flats/visa.svg"
},
"card_info": {
"holder_name": "Alex",
"expiration": "12/2030"
},
"installment": "1",
"monthly": "$1,000.00 MXN",
"descriptor": "HOTELPAY"
}
],
"transaction_template": [
{
"BRAND": "visa",
"CARD_ICON": "https://testing.hotelpay.net/storage/img/brands/flats/visa.svg",
"TYPE": "credit",
"LAST_4_DIGITS": "0051",
"HOLDER_NAME": "Alex",
"MERCHANT_DESCRIPTOR": "HOTELPAY",
"INSTALLMENT": "1",
"MONTHLY": "$1,000.00 MXN"
}
],
"holder_name_diff": true,
"payment_adds": {
"date": "01/07/2024 20:56",
"amount": "$1,000.00 MXN"
}
}
{
"uuid": "399acbc6-d37b-4062-8a2b-088c6d88b839",
"reference": "9ddb4e83-c1e0-4142-8b42-a82549c711d7",
"booking_number": "123456",
"amount": 300,
"fee": 0,
"currency": "MXN",
"checkin": null,
"checkout": null,
"description": "Reserva de hotel",
"customer_info": {
"first_name": "Alejandro",
"last_name": "Galindo",
"email": "alex@retrypay.com",
"ip": "177.241.36.59",
"phone": "3311224455",
"user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/130.0.0.0 Safari\/537.36",
"browser_info": {
"language": "en-US",
"color_depth": "1",
"java_enabled": true,
"screen_width": 1255,
"accept_header": "*\/",
"screen_height": 1017,
"java_script_enabled": true
}
},
"items": [
{
"price": "300.00",
"quantity": 1,
"description": "Reserva de hotel"
}
],
"payment_mode": "single",
"created_at": "14\/11\/2024 13:37:28",
"merchant": {
"name": "Hotel Obsidiana",
"slug": "hotel-obsidiana",
"logo": "<img src=\"https:\/\/hotelpay-merchants.s3.us-east-2.amazonaws.com\/logos\/664e0ede37956\" alt=\"\" height=\"120\">",
"billing_email": null,
"reservation_email": "pruebas@retrypay.com",
"reservation_email_bcc": [
{
"email": "pruebas+otro@retrypay.com",
"name": "CC 1"
}
],
"bg_color": "#32e0a2",
"text_color": "#ede2e2",
"address": "Avenida Hidalgo, 1995, 07-09, Guadalajara, Jalisco, CP 44600",
"address_phone": null,
"contact_info": "<p><strong>\u00bfNecesitas ayuda?<\/strong><br><em>Ll\u00e1manos al +<\/em>52 669 689-0169 Ext 2<br>Whatsapp +52 669 918 2401<\/p>",
"enable_internal_email_notifications": true,
"pictures": []
},
"transactions": [
{
"priority": "primary",
"kind": "card",
"amount": 300,
"card_address": {
"address": "Av Hidalgo 1995",
"city": "Guadalajara",
"country": "M\u00e9xico",
"country_code": "MX",
"zip": "45089",
"address2": null,
"state": "Jalisco"
},
"card": {
"bin": "400000",
"type": "credit",
"brand": "visa",
"bank_name": "Intl Hdqtrs-Center Owned",
"last_4_digits": "0008",
"country_code": "MX",
"url_brand": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg"
},
"card_info": {
"holder_name": "Alex Galindo",
"expiration": "12\/2034"
},
"installment": "3",
"monthly": "$100.00 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
}
],
"transaction_template": [
{
"BRAND": "visa",
"CARD_ICON": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg",
"TYPE": "credit",
"LAST_4_DIGITS": "0008",
"HOLDER_NAME": "Alex Galindo",
"MERCHANT_DESCRIPTOR": "STRIPE*HOTELPAY",
"INSTALLMENT": "3",
"MONTHLY": "$100.00 MXN"
}
],
"holder_name_diff": false,
"payment_adds": {
"date": "14\/11\/2024 13:37",
"amount": "$300.00 MXN"
},
"order_status": "inactive",
"payment_status": "paid",
"webhook_event": "success"
}
{
"uuid": "34a87687-c66e-4e60-8bff-506ac4ecc3d8",
"reference": "8c0950b6-210d-4020-b2d4-c44f61269f98",
"booking_number": "123456",
"amount": 300,
"fee": 0,
"currency": "MXN",
"checkin": null,
"checkout": null,
"description": "Reserva de hotel",
"customer_info": {
"first_name": "Alejandro",
"last_name": "Galindo",
"email": "alex@retrypay.com",
"ip": "177.241.36.59",
"phone": "3311224455",
"user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/130.0.0.0 Safari\/537.36",
"browser_info": {
"language": "en-US",
"color_depth": "1",
"java_enabled": true,
"screen_width": 1255,
"accept_header": "*\/",
"screen_height": 1017,
"java_script_enabled": true
}
},
"items": [
{
"price": "300.00",
"quantity": 1,
"description": "Reserva de hotel"
}
],
"payment_mode": "split",
"created_at": "14\/11\/2024 14:57:37",
"merchant": {
"name": "Hotel Obsidiana",
"slug": "hotel-obsidiana",
"logo": "<img src=\"https:\/\/hotelpay-merchants.s3.us-east-2.amazonaws.com\/logos\/664e0ede37956\" alt=\"\" height=\"120\">",
"billing_email": null,
"reservation_email": "pruebas@retrypay.com",
"reservation_email_bcc": [
{
"email": "pruebas+otro@retrypay.com",
"name": "CC 1"
}
],
"bg_color": "#32e0a2",
"text_color": "#ede2e2",
"address": "Avenida Hidalgo, 1995, 07-09, Guadalajara, Jalisco, CP 44600",
"address_phone": null,
"contact_info": "<p><strong>\u00bfNecesitas ayuda?<\/strong><br><em>Ll\u00e1manos al +<\/em>52 669 689-0169 Ext 2<br>Whatsapp +52 669 918 2401<\/p>",
"enable_internal_email_notifications": true,
"pictures": []
},
"transactions": [
{
"priority": "primary",
"kind": "card",
"amount": 150,
"card_address": {
"address": "Av Hidalgo 1995",
"city": "Guadalajara",
"country": "M\u00e9xico",
"country_code": "MX",
"zip": "45089",
"address2": null,
"state": "Jalisco"
},
"card": {
"bin": "400000",
"type": "credit",
"brand": "visa",
"bank_name": "Intl Hdqtrs-Center Owned",
"last_4_digits": "0008",
"country_code": "MX",
"url_brand": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg"
},
"card_info": {
"holder_name": "Alex Galindo",
"expiration": "12\/2034"
},
"installment": "1",
"monthly": "$150.00 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
},
{
"priority": "secondary",
"kind": "card",
"amount": 150,
"card_address": {
"address": "Av Hidalgo 1995",
"city": "Guadalajara",
"country": "M\u00e9xico",
"country_code": "MX",
"zip": "45089",
"address2": null,
"state": "Jalisco"
},
"card": {
"bin": "424242",
"type": "credit",
"brand": "visa",
"bank_name": "UNKNOWN",
"last_4_digits": "4242",
"country_code": "GB",
"url_brand": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg"
},
"card_info": {
"holder_name": "Alex Galindo",
"expiration": "12\/2034"
},
"installment": "1",
"monthly": "$150.00 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
}
],
"transaction_template": [
{
"BRAND": "visa",
"CARD_ICON": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg",
"TYPE": "credit",
"LAST_4_DIGITS": "0008",
"HOLDER_NAME": "Alex Galindo",
"MERCHANT_DESCRIPTOR": "STRIPE*HOTELPAY",
"INSTALLMENT": "1",
"MONTHLY": "$150.00 MXN"
},
{
"BRAND": "visa",
"CARD_ICON": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg",
"TYPE": "credit",
"LAST_4_DIGITS": "4242",
"HOLDER_NAME": "Alex Galindo",
"MERCHANT_DESCRIPTOR": "STRIPE*HOTELPAY",
"INSTALLMENT": "1",
"MONTHLY": "$150.00 MXN"
}
],
"holder_name_diff": false,
"payment_adds": {
"date": "14\/11\/2024 14:57",
"amount": "$300.00 MXN"
},
"order_status": "inactive",
"payment_status": "paid",
"webhook_event": "success"
}
{
"uuid": "94051245-3a3b-4eab-afaa-391add70a1d4",
"reference": "2276da80-eef9-43fb-958c-92cbddea399c",
"booking_number": "123456",
"amount": 1000,
"fee": 0,
"currency": "MXN",
"checkin": null,
"checkout": null,
"description": "Reserva de hotel",
"customer_info": {
"first_name": "Alejandro",
"last_name": "Galindo",
"email": "alex@retrypay.com",
"ip": "177.241.36.59",
"phone": "3311224455",
"user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/130.0.0.0 Safari\/537.36",
"browser_info": {
"language": "en-US",
"color_depth": "1",
"java_enabled": true,
"screen_width": 1255,
"accept_header": "*\/",
"screen_height": 1017,
"java_script_enabled": true
}
},
"items": [
{
"price": "1000.00",
"quantity": 1,
"description": "Reserva de hotel"
}
],
"payment_mode": "split",
"created_at": "14\/11\/2024 14:59:32",
"merchant": {
"name": "Hotel Obsidiana",
"slug": "hotel-obsidiana",
"logo": "<img src=\"https:\/\/hotelpay-merchants.s3.us-east-2.amazonaws.com\/logos\/664e0ede37956\" alt=\"\" height=\"120\">",
"billing_email": null,
"reservation_email": "pruebas@retrypay.com",
"reservation_email_bcc": [
{
"email": "pruebas+otro@retrypay.com",
"name": "CC 1"
}
],
"bg_color": "#32e0a2",
"text_color": "#ede2e2",
"address": "Avenida Hidalgo, 1995, 07-09, Guadalajara, Jalisco, CP 44600",
"address_phone": null,
"contact_info": "<p><strong>\u00bfNecesitas ayuda?<\/strong><br><em>Ll\u00e1manos al +<\/em>52 669 689-0169 Ext 2<br>Whatsapp +52 669 918 2401<\/p>",
"enable_internal_email_notifications": true,
"pictures": []
},
"transactions": [
{
"priority": "primary",
"kind": "card",
"amount": 500,
"card_address": {
"address": "Av Hidalgo 1995",
"city": "Guadalajara",
"country": "M\u00e9xico",
"country_code": "MX",
"zip": "45089",
"address2": null,
"state": "Jalisco"
},
"card": {
"bin": "400000",
"type": "credit",
"brand": "visa",
"bank_name": "Intl Hdqtrs-Center Owned",
"last_4_digits": "0008",
"country_code": "MX",
"url_brand": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg"
},
"card_info": {
"holder_name": "Alex Galindo",
"expiration": "12\/2034"
},
"installment": "3",
"monthly": "$166.67 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
},
{
"priority": "secondary",
"kind": "card",
"amount": 500,
"card_address": {
"address": "Av Hidalgo 1995",
"city": "Guadalajara",
"country": "M\u00e9xico",
"country_code": "MX",
"zip": "45089",
"address2": null,
"state": "Jalisco"
},
"card": {
"bin": "424242",
"type": "credit",
"brand": "visa",
"bank_name": "UNKNOWN",
"last_4_digits": "4242",
"country_code": "GB",
"url_brand": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg"
},
"card_info": {
"holder_name": "Alex Galindo",
"expiration": "12\/2034"
},
"installment": "1",
"monthly": "$500.00 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
}
],
"transaction_template": [
{
"BRAND": "visa",
"CARD_ICON": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg",
"TYPE": "credit",
"LAST_4_DIGITS": "0008",
"HOLDER_NAME": "Alex Galindo",
"MERCHANT_DESCRIPTOR": "STRIPE*HOTELPAY",
"INSTALLMENT": "3",
"MONTHLY": "$166.67 MXN"
},
{
"BRAND": "visa",
"CARD_ICON": "https:\/\/testing.hotelpay.net\/storage\/img\/brands\/flats\/visa.svg",
"TYPE": "credit",
"LAST_4_DIGITS": "4242",
"HOLDER_NAME": "Alex Galindo",
"MERCHANT_DESCRIPTOR": "STRIPE*HOTELPAY",
"INSTALLMENT": "1",
"MONTHLY": "$500.00 MXN"
}
],
"holder_name_diff": false,
"payment_adds": {
"date": "14\/11\/2024 14:59",
"amount": "$1,000.00 MXN"
},
"order_status": "inactive",
"payment_status": "paid",
"webhook_event": "success"
}
{
"uuid": "18f9668a-e462-4a6a-8a71-4b4b28195686",
"reference": "140882cf-902d-4e40-853c-9226d7fd559d",
"booking_number": "123456",
"amount": 20,
"fee": 0,
"currency": "MXN",
"checkin": null,
"checkout": null,
"description": "Alojamiento m\u00faltiple",
"customer_info": {
"first_name": "Alejandro",
"last_name": "Galindo",
"email": "alex@retrypay.com",
"ip": "177.241.36.59",
"phone": "3311224455",
"user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/130.0.0.0 Safari\/537.36",
"browser_info": {
"language": "en-US",
"color_depth": "1",
"java_enabled": true,
"screen_width": 1766,
"accept_header": "*\/",
"screen_height": 859,
"java_script_enabled": true
}
},
"items": null,
"payment_mode": "single",
"order_status": "canceled",
"payment_status": "canceled",
"created_at": "01\/11\/2024 13:58:27",
"merchant": {
"name": "Hotel Zafiro",
"slug": "hotel-zafiro",
"logo": "<img src=\\"https:\/\/hotelpay-merchants.s3.us-east-2.amazonaws.com\/logos\/66ccf5622099a\\" alt=\\"\\" height=\\"120\\">",
"billing_email": null,
"reservation_email": "alex@retrypay.com",
"reservation_email_bcc": null,
"bg_color": "#ffffff",
"text_color": "#000000",
"address": "Av Obsidiana, 2552, , Zapopan, Jalisco, CP 45089",
"address_phone": null,
"contact_info": "<p>800 RESERVAS<\/p><p>\ud83d\udcf1+52 3311 224455<\/p>",
"pictures": []
},
"transactions": [],
"transaction_template": [],
"holder_name_diff": false,
"payment_adds": {
"date": "01\/11\/2024 13:58",
"amount": "$20.00 MXN"
}
}
{
"uuid": "f39de2d1-d8b7-4488-86d8-b7cff54dd67d",
"reference": "79d9863e-ac27-4937-aa0d-e536797c2909",
"booking_number": "123456",
"amount": 20,
"fee": 0,
"currency": "MXN",
"checkin": null,
"checkout": null,
"description": "Alojamiento m\u00faltiple",
"customer_info": {
"first_name": "Alejandro",
"last_name": "Galindo",
"email": "alex@retrypay.com",
"ip": "177.241.36.59",
"phone": "3311224455",
"user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/130.0.0.0 Safari\/537.36",
"browser_info": {
"language": "en-US",
"color_depth": "1",
"java_enabled": true,
"screen_width": 1766,
"accept_header": "*\/",
"screen_height": 859,
"java_script_enabled": true
}
},
"items": null,
"payment_mode": "single",
"order_status": "active",
"payment_status": "error",
"created_at": "01\/11\/2024 14:02:19",
"merchant": {
"name": "Hotel Zafiro",
"slug": "hotel-zafiro",
"logo": "<img src=\\"https:\/\/hotelpay-merchants.s3.us-east-2.amazonaws.com\/logos\/66ccf5622099a\\" alt=\\"\\" height=\\"120\\">",
"billing_email": null,
"reservation_email": "alex@retrypay.com",
"reservation_email_bcc": null,
"bg_color": "#ffffff",
"text_color": "#000000",
"address": "Av Obsidiana, 2552, , Zapopan, Jalisco, CP 45089",
"address_phone": null,
"contact_info": "<p>800 RESERVAS<\/p><p>\ud83d\udcf1+52 3311 224455<\/p>",
"pictures": []
},
"transactions": [],
"transaction_template": [],
"holder_name_diff": false,
"payment_adds": {
"date": "01\/11\/2024 14:02",
"amount": "$20.00 MXN"
}
}
{
"uuid": "29a60640-9efc-46eb-a3b7-bb57ed032bdc",
"reference": "22f17fe2-8e36-417c-b33b-4c15962ab2b2",
"booking_number": "123456",
"amount": 300,
"fee": 0,
"currency": "MXN",
"checkin": null,
"checkout": null,
"description": "Reserva de hotel",
"customer_info": {
"first_name": "Mauricio",
"last_name": "Madrigal",
"email": "mau@retrypay.com",
"ip": "187.144.172.101",
"phone": "3338149130",
"user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/129.0.0.0 Safari\/537.36",
"browser_info": {
"language": "en-US",
"color_depth": "1",
"java_enabled": true,
"screen_width": 563,
"accept_header": "*\/",
"screen_height": 200,
"java_script_enabled": true
}
},
"items": [
{
"price": "300.00",
"quantity": 1,
"description": "Reserva de hotel"
}
],
"payment_mode": "single",
"order_status": "expired",
"payment_status": "pending",
"created_at": "10\/10\/2024 10:16:46",
"merchant": {
"name": "Hotel Zafiro",
"slug": "hotel-zafiro",
"logo": "<img src=\"https:\/\/hotelpay-merchants.s3.us-east-2.amazonaws.com\/logos\/66ccf5622099a\" alt=\"\" height=\"120\">",
"billing_email": null,
"reservation_email": "alex@retrypay.com",
"reservation_email_bcc": null,
"bg_color": "#FFFFFF",
"text_color": "#000000",
"address": "Av Obsidiana, 2552, , Zapopan, Jalisco, CP 45089",
"address_phone": null,
"contact_info": "<p>800 RESERVAS<\/p><p>\ud83d\udcf1+52 3311 224455<\/p>",
"pictures": []
},
"transactions": [],
"transaction_template": [],
"holder_name_diff": false,
"payment_adds": {
"date": "10\/10\/2024 10:16",
"amount": "$300.00 MXN"
}
}
Estructura del JSON
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
uuid |
Identificador único universal para la reserva. | String | f5b07c64-a98a-4b9e-8fbc-9cef25cc7659 |
reference |
Referencia interna de la reserva. | String | f80f1431-1d94-44d0-ab30-b3a6b7d19d4e |
booking_number |
Número de reserva | String | 123456 |
amount |
Monto total de la reserva en la moneda especificada. | Number | 1000 |
fee |
Comisión aplicada a la transacción. | Number | 0 |
currency |
Moneda utilizada | String | MXN |
checkin |
Fecha de entrada al hotel. | String | 05/07/2024 |
checkout |
Fecha de salida del hotel. | String | 06/07/2024 |
description |
Descripción de la reserva. | String | Reserva de hotel |
customer_info |
Información del cliente | json | Información del Cliente |
items |
Detalles de las habitaciones | array of json | |
payment_mode |
Modalidad de pago (único en este caso). | String | single |
order_status |
Estado de la orden (inactiva). | String | inactive |
payment_status |
Estados del pago (pagado). | String | Estados del pago |
created_at |
Fecha y hora de creación de la reserva. | String | 01/07/2024 20:56:04 |
merchant |
Información del merchant | json | Información del Merchant |
transactions |
Transacciones | array of json | Transacciones |
transaction_template |
Plantilla de la Transacción ( Sendgrid) | array of json | Plantilla de la Transacción |
holder_name_diff |
Indica si el nombre del titular de la tarjeta es diferente. | Boolean | true |
payment_adds |
Información Adicional | Json | Información Adicional |
webhook_event |
Indica el estado del evento | String | "success" |
Información del Cliente
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
first_name |
Nombre del cliente. | String | Pedro |
last_name |
Apellido del cliente. | String | Paramo |
email |
Correo electrónico del cliente. | String | pedroparamo@gmail.com |
ip |
Dirección IP del cliente. | String | 177.229.160.25 |
phone |
Número de teléfono del cliente. | String | 3311224455 |
user_agent |
Información del navegador y sistema operativo del cliente. | String | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0 |
browser_info |
Información del Navegador | json | Información del Navegador del Cliente |
Información del Navegador del Cliente
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
language |
Idioma del navegador. | String | en-US |
color_depth |
Profundidad de color de la pantalla. | String | 1 |
java_enabled |
Indica si Java está habilitado. | Boolean | true |
screen_width |
Ancho de la pantalla en píxeles. | Number | 564 |
accept_header |
Encabezado de aceptación del navegador. | String | */ |
screen_height |
Altura de la pantalla en píxeles. | Number | 200 |
java_script_enabled |
Indica si JavaScript está habilitado. | Boolean | true |
Detalles de las habitaciones
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
price |
Precio del artículo. | Number | 1000 |
quantity |
Cantidad de artículos. | Number | 1 |
description |
Descripción del artículo. | String | Reserva de hotel |
Información del Merchant
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
name |
Nombre del comerciante. | String | Merchant Test |
slug |
Identificador único del comerciante. | String | merchant-test |
logo |
Logo del comerciante en formato HTML. | String | <img src="<https://hotelpay-merchants.s3.us-east-2.amazonaws.com/logos/66673da2078ae>" alt="" height="120"> |
billing_email |
Correo electrónico de facturación (puede no estar disponible). | String | correo... |
reservation_email |
Correo electrónico para reservas. | String | correo... |
reservation_email_bcc |
Correo electrónico en copia oculta para reservas (puede no estar disponible). | String | correos... |
bg_color |
Color de fondo. | String | #d16363 |
text_color |
Color del texto. | String | #ba6a6a |
address |
Dirección del comerciante. | String | Tiburon, -, -, Guadalajara, Jalisco, CP 32400 |
address_phone |
Teléfono de la dirección (no disponible). | String | null |
contact_info |
Información de contacto en formato HTML. | String | <p>Llámanos al</p> |
pictures |
Imágenes asociadas (ninguna disponible). | Array | [] |
Transacciones
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
priority |
Prioridad de la transacción. | String | primary |
kind |
Tipo de transacción (tarjeta). | String | card |
amount |
Monto de la transacción. | Number | 1000 |
card_address |
Dirección de la Tarjeta | json | Dirección de la Tarjeta |
card |
Información de la Tarjeta | json | Información de la Tarjeta |
card_info |
Información del Titular de la Tarjeta | json | Información del Titular de la Tarjeta |
installment |
Número de cuotas. | String | 1 |
monthly |
Pago mensual. | String | $1,000.00 MXN |
descriptor |
Descripción del comerciante en la transacción. | String | HOTELPAY |
Dirección de la Tarjeta
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
address |
Dirección de la tarjeta. | String | Av Hidalgo 1995 |
address2 |
Segunda línea de dirección (no disponible). | Null | null |
city |
Ciudad de la tarjeta. | String | Guadalajara |
country |
País de la tarjeta. | String | México |
country_code |
Código del país de la tarjeta. | String | MX |
zip |
Código postal de la tarjeta. | String | 123456 |
state |
Estado de la tarjeta. | String | Jalisco |
Información de la Tarjeta
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
bin |
Bin de la tarjeta. | String | 400000 |
type |
Tipo de tarjeta (crédito). | String | credit |
brand |
Marca de la tarjeta. | String | visa |
bank_name |
Nombre del banco. | String | Generic Bank Name |
Información del Titular de la Tarjeta
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
holder_name |
Nombre del titular de la tarjeta. | String | Pedro Paramo |
expiration |
Fecha de expiración de la tarjeta. | String | 12/2030 |
Plantilla de la Transacción
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
BRAND |
Marca de la tarjeta. | String | visa |
CARD_ICON |
Icono de la tarjeta. | String | https://testing.hotelpay.net/storage/img/brands/flats/visa.svg |
TYPE |
Tipo de tarjeta. | String | credit |
LAST_4_DIGITS |
Últimos 4 dígitos de la tarjeta. | String | 0051 |
HOLDER_NAME |
Nombre del titular de la tarjeta. | String | Alex |
MERCHANT_DESCRIPTOR |
Descripción del comerciante. | String | HOTELPAY |
INSTALLMENT |
Número de cuotas. | String | 1 |
MONTHLY |
Pago mensual. | String | $1,000.00 MXN |
Información Adicional
| Campo | Descripción | Tipo de Dato | Ejemplo |
|---|---|---|---|
payment_adds.date |
Fecha del pago. | String | 01/07/2024 20:56 |
payment_adds.amount |
Monto del pago. | String | $1,000.00 MXN |
Estados del pago
| Valor | Descripción |
|---|---|
pending |
La orden de pago está pendiente de ser procesada. |
process |
La orden de pago está en proceso de ser completada. |
paid |
La orden de pago ha sido completada y confirmada. |
canceled |
La orden de pago ha sido cancelada y no se completará. |
error |
Ha ocurrido un error durante el proceso de la orden de pago. |
expired |
La orden de pago expiró y no se completará. |
Estas Tablas vinculadas permite una presentación estructurada y clara de la información contenida en el JSON, facilitando su comprensión y uso.
Estados del webhook
| Valor | Descripción |
|---|---|
success |
La orden de pago ha sido completada y confirmada. |
canceled |
La orden de pago ha sido cancelada y no se completará. |
expired |
La orden de pago expiró y no se completará. |
error |
Ha ocurrido un error durante el proceso de la orden de pago. |
Casos de Uso
Pagos con Tarjeta de Crédito con MSI y Pagos Combinados
En este apartado se detallan los casos de uso para pagos con tarjeta de crédito utilizando Meses Sin Intereses (MSI), pagos combinados y MSI con pagos combinados. Es esencial comprender cómo la propiedad transactions varía según el tipo de pago realizado.
Pagos con Tarjeta de Crédito con MSI
Cuando un cliente realiza un pago con tarjeta de crédito utilizando la opción de Meses Sin Intereses (MSI), la propiedad transactions es un arreglo que contiene un solo objeto. Dentro de este objeto, la propiedad installment indica el número de mensualidades seleccionadas.
"transactions": [
{
"installment": "3",
"monthly": "$100.00 MXN"
}
]
En este ejemplo, el cliente ha seleccionado pagar en 3 meses sin intereses. La propiedad installment refleja el plazo elegido, y monthly indica el monto a pagar mensualmente.
Pagos Combinados
Los pagos combinados permiten al cliente utilizar más de un método de pago para completar la transacción. En este caso, la propiedad transactions es un arreglo que contiene múltiples objetos, cada uno representando una transacción independiente. Si no se utilizan MSI, la propiedad installment en cada transacción será "1".
"transactions": [
{
"priority": "primary",
"kind": "card",
"amount": 150,
"card_address": { ... },
"card": { ... },
"card_info": { ... },
"installment": "1",
"monthly": "$150.00 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
},
{
"priority": "secondary",
"kind": "card",
"amount": 150,
"card_address": { ... },
"card": { ... },
"card_info": { ... },
"installment": "1",
"monthly": "$150.00 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
}
]
En este caso, el pago total de $300.00 MXN se divide en dos transacciones de $150.00 MXN cada una. Ambas transacciones tienen installment igual a "1", indicando que se realizaron sin MSI.
Pagos con MSI y Pago Combinado
Es posible que un cliente realice un pago combinado y además seleccione MSI en una o varias de las transacciones. En este escenario, la propiedad transactions reflejará múltiples objetos, y la propiedad installment variará dependiendo del plazo seleccionado en cada transacción.
"transactions": [
{
"priority": "primary",
"kind": "card",
"amount": 500,
"card_address": { ... },
"card": { ... },
"card_info": { ... },
"installment": "3",
"monthly": "$166.67 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
},
{
"priority": "secondary",
"kind": "card",
"amount": 500,
"card_address": { ... },
"card": { ... },
"card_info": { ... },
"installment": "1",
"monthly": "$500.00 MXN",
"status": "capture",
"descriptor": "STRIPE*HOTELPAY"
}
]
En este ejemplo, el cliente ha realizado un pago combinado de $1,000.00 MXN:
- Transacción 1: $500.00 MXN con MSI a 3 meses (
installment:"3"), con pagos mensuales de$166.67 MXN. - Transacción 2: $500.00 MXN en un solo pago (
installment:"1").
Consideraciones sobre la Propiedad transactions
-
Arreglo de Transacciones: La propiedad
transactionses siempre un arreglo. Sin pagos combinados, contiene un solo objeto. Con pagos combinados, contiene tantos objetos como métodos de pago o tarjetas se hayan utilizado. -
Propiedad
installment:- Valor
"1": Indica que la transacción se realizó en un solo pago sin MSI. - Valor
"X": Si el cliente selecciona MSI,installmentreflejará el número de meses elegidos (por ejemplo,"3","6","12").
- Valor
-
Pagos Combinados con MSI: En pagos combinados, es posible que algunas transacciones utilicen MSI y otras no. Cada transacción reflejará individualmente si se aplicaron MSI.
Webhook.site
Webhook.site es una herramienta que te permite generar URLs únicas para recibir y observar peticiones HTTP, incluyendo JSONs enviados por webhooks. Es útil para pruebas y depuración.
Pasos para usar Webhook.site
-
Generar una URL de Webhook:
-
Ve a Webhook.site.
-
Se generará automáticamente una URL única para ti.
-
-
Configurar la url del Webhook :
-
Ve al backend de hotelpay en el apartado Hoteles.
-
Indica la URL que actuará como el endpoint que recibirá el JSON y de ser necesario indica un token.

-
-
Observar los Datos Recibidos:
- Regresa a la página de Webhook.site.
- Verás las solicitudes HTTP recibidas en tiempo real, incluyendo el JSON que se ha enviado.
Pipedream.com
Pipedream es una plataforma de integración que permite automatizar flujos de trabajo conectando diferentes servicios y aplicaciones. Puedes usar Pipedream para recibir webhooks y procesar los datos.
Pasos para usar Pipedream.com
-
Crear una Cuenta y un Nuevo Workflow:
- Regístrate o inicia sesión en Pipedream.
- Crea un nuevo Workflow.
-
Configurar el Trigger del Webhook:
-
Selecciona "HTTP / Webhook" como trigger.
-
Pipedream generará una URL única que actuará como tu endpoint para recibir webhooks.
-
-
Configurar el Emisor del Webhook:
- Utiliza la URL generada en el servicio que enviará el webhook.
- Ve al backend de hotelpay en el apartado Hoteles.
- Indica la URL que actuará como el endpoint que recibirá el JSON y de ser necesario indica un token.

-
Añadir Pasos para Procesar el JSON:
-
Una vez configurado el trigger, añade un paso para procesar los datos. Puedes usar Node.js, Python o cualquier otro lenguaje soportado por Pipedream, en este caso se utilizara Node js
-
Copiamos el código y lo pegamos dentro del apartado código en Pipedream
export default defineComponent({ async run({ steps, $ }) { const data = steps.trigger.event.body; console.log('Datos recibidos:', data); const { uuid, reference, amount, currency, customer_info, items, transactions } = data; console.log(`Reserva UUID: ${uuid}`); console.log(`Referencia: ${reference}`); console.log(`Monto: ${amount} ${currency}`); console.log(`Cliente: ${customer_info.first_name} ${customer_info.last_name}`); console.log(`Artículos:`); items.forEach(item => { console.log(`- Descripción: ${item.description}, Precio: ${item.price}, Cantidad: ${item.quantity}`); }); console.log(`Transacciones:`); transactions.forEach(transaction => { console.log(`- Monto: ${transaction.amount}, Estado: ${transaction.status}`); }); return data; } }); -
-
Deploy y Probar:
- Guarda y despliega el workflow..
-
Observar y Procesar los Datos:
-
En el dashboard de Pipedream, podrás ver la ejecución de cada workflow, incluyendo los datos recibidos y procesados.
-
Pipedream también te permite integrar fácilmente con otros servicios y realizar acciones adicionales, como enviar correos electrónicos, almacenar datos en bases de datos, etc.
-
Consideraciones Adicionales
- Seguridad: Asegúrate de que solo fuentes confiables envíen datos a tu webhook. Pipedream permite configurar autenticación y otros mecanismos de seguridad.
- Errores y Reintentos: Maneja adecuadamente los errores y considera implementar un sistema de reintento en caso de fallos.
- Logs y Monitorización: Tanto Webhook.site como Pipedream proporcionan herramientas para monitorizar y registrar las solicitudes recibidas, lo cual es útil para depuración y análisis.
Usando estas herramientas, puedes recibir, observar y procesar los datos enviados a través del webhook de hotelpay.