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:

Estos son los pasos para usar TripPay con éxito para pagar una reserva:

  1. Asegurate de que los beneficiarios que mencionás en el contrato de reserva hayan sido mapeados.
  2. Dejá que el viajero elija el inventario que quiere reservar y prepáralo para pagar.
  3. Creá un payable contract con TripPay que contenga los ítems a reservar.
  4. Dejá 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í hay un ejemplo de solicitud JSON que incluye todo lo que necesitás 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 ya 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 de TripPay que facilita la reserva. Puede ser:
    • Tu cuenta integradora de TripPay.
    • Si manejás una red de afiliados, puede ser tu afiliado.
  • Usá un traceId para agrupar múltiples reservas de varios proveedores. Así podés cancelar una reserva grupal.
  • redirectUrl le indica a TripPay a qué página redirigir después de completar el pago.
  • sourceUrl es el sitio/app donde se realizó la reserva.

El array 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 generás.
  • El proveedor del que querés reservar inventario.
  • El inventario que querés reservar de ese proveedor. Todos están especificados en el array anidado contractItemList.
  • Cada entrada bajo contractItemList contiene:
    • Usuario huésped Este es el usuario que llegará al lugar.
    • Nombre en inglés El nombre del inventario en idioma 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, podés incluir cuánto cuesta esa habitación por cada noche que se quede el huésped.
    • Beneficiarios Incluye qué cuenta(s) de 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"
}
}
]

Guardá 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 necesitás hacer. Todo el trabajo pesado lo hace TripPay a partir de aquí.