Ir al contenido

Integración con TripPay

Este artículo contiene un ejemplo de principio a fin de cómo integrarse con TripPay.

Se recomienda que ya hayas leído:

Aquí están los pasos para usar TripPay con éxito para pagar una reserva:

  1. Asegúrate de que los beneficiarios que mencionas en el contrato de reserva hayan sido mapeados.
  2. Deja que el viajero elija el inventario que desea reservar y prepáralo para pagar.
  3. Crea un payable contract con TripPay que contenga los ítems a reservar.
  4. Deja que el viajero pague usando el Payment Web Component de TripPay.

Asumimos que ya completaste el Paso 1 y el Paso 2 y estás listo para informar a TripPay sobre la reserva.

Aquí tienes un ejemplo de solicitud JSON que incluye todo lo que necesitas para crear tu primer contrato pagable.

{
"user": {
"userIdentifier": "191d5729-0b90-4000-85df-1bea7a6e9a01",
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]"
},
"affiliateAccountIdentifier": "291d5729-0b91-4001-95df-2bec7a6e9a01",
"affiliateAccountIdentifierType": "INTERNAL",
"displayCurrency": "USD",
"traceId": "trace-1",
"redirectUrl": "/thank-you",
"sourceUrl": "https://www.travel.com",
"contractList": [
{
"identifier": "191d5729-0b90-4000-8298-72431beb1701",
"supplierIdentifier": "191d5729-0b90-4000-8b72-58186a642401",
"supplierIdentifierType": "EXTERNAL",
"contractItemList": [
{
"user": {
"userIdentifier": "191d5729-0b90-4000-8596-ed18f9876801",
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"telephone": "+1 212 555 1212",
},
"nameInEnglish": "Deluxe King",
"descriptionInEnglish": "This is the best deluxe king that money can buy.",
"price": {
"amount": 100,
"currency": "USD"
},
"itinerary": {
"startDate": "2024-12-24T00:00:00.000Z",
"endDate": "2024-12-25T00:00:00.000Z",
"adults": 2
},
"pricingType": "PER_STAY",
"type": "LODGING",
"payable": "PREPAY",
"policy": {
"refundable": true
},
"externalIdentifier": "room-type-1",
"dailyRateList": [
{
"date": "2024-12-24",
"price": {
"amount": 100,
"currency": "USD"
}
}
],
"beneficiaryList": [
{
"identifier": "account-0",
"identifierType": "INTERNAL",
"amountDue": {
"type": "PERCENTAGE",
"percent": 0.015
},
"type": "PLATFORM_FEE"
},
{
"identifier": "account-1",
"identifierType": "INTERNAL",
"amountDue": {
"type": "PERCENTAGE",
"percent": 0.0985
},
"type": "COMMISSION"
},
{
"identifier": "account-2",
"identifierType": "INTERNAL",
"amountDue": {
"type": "PERCENTAGE",
"percent": 0.8865
},
"type": "SALE"
}
]
}
]
}
]
}

Explicación:

No explicaremos cada dato aquí ya que están cubiertos en la documentación de la API.

  • Líneas: 2 - 7 es el usuario responsable de la reserva. Hay dos tipos de reservadores:
    • Viajero.
    • Agente de viajes.
  • Líneas: 8 - 9 es la cuenta TripPay que facilita la reserva. Puede ser:
    • Tu cuenta integradora de TripPay.
    • Si gestionas una red de afiliados, puede ser tu afiliado.
  • Usa un traceId para agrupar múltiples reservas de varios proveedores. Así puedes cancelar una reserva grupal.
  • redirectUrl indica a TripPay a qué página redirigir después de completar el pago.
  • sourceUrl es el sitio o app donde se realizó la reserva.

El arreglo contractList contiene el/los ítem(s) que el viajero quiere comprar de varios proveedores. Cada ítem contiene:

  • El identifier es un UUID válido que generas.
  • El proveedor del que quieres reservar inventario.
  • El inventario que quieres reservar de ese proveedor. Todos están especificados en el arreglo anidado contractItemList.
  • Cada entrada bajo contractItemList contiene:
    • Usuario huésped Este es el usuario que llegará a las instalaciones.
    • Nombre en inglés El nombre del inventario en inglés.
    • Descripción en inglés Una descripción más larga del inventario en inglés.
    • Precio El precio del ítem.
    • Itinerario Cuándo debe reservarse este ítem.
    • Tipo de precio Cómo se calculó el precio.
    • Tipo de inventario Qué tipo de inventario es.
    • Pagable Cuándo se debe cobrar al viajero. Actualmente solo soportamos opciones de pago inmediato.
    • Política Incluye reglas de política de cancelación.
    • Lista de tarifas diarias Si el ítem reservado es una habitación, puedes incluir cuánto cuesta esa habitación por cada noche que el huésped se quede.
    • Beneficiarios Incluye qué cuenta(s) TripPay debe(n) recibir qué monto(s) del precio del ítem. Se soportan montos fijos y porcentajes.

Cuando TripPay responde a tu solicitud, se verá algo así:

[
{
"id": "contract-1",
"traceId": "trace-1",
"supplierContractIdentifier": "191d5729-0b90-4000-8298-72431beb1701",
"supplierIdentifier": "191d5729-0b90-4000-8b72-58186a642401",
"supplierName": "Hilton",
"totalPrice": {
"amount": 100,
"currency": "USD"
},
"totalDisplayPrice": {
"amount": 100,
"currency": "USD"
},
"totalSupplierPrice": {
"amount": 100,
"currency": "USD"
},
"totalInternalPrice": {
"amount": 100,
"currency": "USD"
},
"totalCapturePrice": {
"amount": 100,
"currency": "USD"
}
}
]

Guarda el id en la línea 3. Lo usarás para inyectar en el Payment Web Component de TripPay.

En este punto, estás listo para incrustar el Payment Web Component en tu sitio web y mostrárselo al usuario.

<trip-pay id="contract-1"></trip-pay>

En cuanto a la integración, eso es todo lo que necesitas hacer. Todo el trabajo pesado lo realiza TripPay a partir de aquí.