Skip to content

TQPro Integration Inventory

Full inventory of all external service integrations in TQPro — every API, SDK, and protocol connection to systems outside the application boundary. This covers B2B supplier APIs, utility services (payments, messaging, AI), cloud infrastructure, and authentication.


1. B2B Travel Supplier Integrations

1.1 Amadeus GDS (Module: tqamds)

  • Service: Amadeus Global Distribution System
  • Protocol: REST/JSON via Amadeus Java SDK (com.amadeus:amadeus-java:9.1.0)
  • Auth: OAuth 2.0 Client Credentials (key/secret from file)
  • Config: config/amadeus-client.xmlidfile property points to CSV with clientKey,clientSecret[,clientHost]
  • Endpoints used:
  • /v1/shopping/flight-offers/search — flight search
  • /v1/shopping/flight-offers/pricing — flight pricing
  • /v1/booking/flight-orders — booking create/read/cancel
  • referenceData.locations / referenceData.airlines — reference data
  • Entities: AmdFlightOffer, AmdHotel, AmdHotelOffer, AmdPassenger, AmdFlightBooking, AmdLocation, AmdAirline
  • Key classes: AmadeusClientService, AmdFlightSearchService, AmadeusFlightOrderService, AmdHotelOfferSearchService, AmdRefDataService

1.2 Rayna B2B Tours (Module: tqryb2b)

  • Service: Rayna Tours B2B API
  • Protocol: REST/JSON via JAX-RS RestClient wrapper
  • Auth: Bearer token (rayna.client.token)
  • Config: config/rayna-client.xml
  • Base URL: rayna.client.apiServer + rayna.client.apiModule (e.g. /api/v2)
  • Operations: Tour availability, pricing, booking, cancellation, timeslots, options
  • CDN: https://dlvz9zmk16t7v.cloudfront.net/ for Rayna media assets
  • Key classes: RaynaServiceFactory, AbstractRemoteService, TourAvailabilityService, TourPriceService, TourBookService, TourCancelService

1.3 Tiqets (Module: tqtiqets)

  • Service: Tiqets Experience Booking API
  • Protocol: REST/JSON via custom TiqetsHttpClient (JAX-RS)
  • Auth: API Key for reads (Authorization: Token {key}), JWT RS256 for writes (X-Signature header)
  • Config: config/tiqets-client.xmltiqets.api.key, tiqets.jwt.privateKeyFile, tiqets.jwt.keyId
  • Endpoints: /experiences, /orders, /products, /tags
  • Entities: TiqetsExperience, orders, products, tags
  • Sync: config/scripts/tiqets_full_sync.py for catalog synchronization
  • Key classes: TiqetsServiceFactory, TiqetsHttpClient, ExperiencesService, OrdersService, ProductsService, TiqetsCatalogService

1.4 GoGlobal (Module: tqgglbl)

  • Service: GoGlobal Travel XML Web Service API (v3.16.8)
  • Protocol: SOAP 1.2 over HTTP POST (Java NIO HttpClient)
  • Auth: Agency ID + Login/Password in SOAP headers (API-AgencyID, API-Operation)
  • Config: config/goglobal-client.xmlgoglobal.api.url, goglobal.api.agencyId, goglobal.api.login, goglobal.api.password
  • Operations (by code): 2=BookingInsert, 3=BookingCancel, 4=BookingDetails, 5=BookingStatus, 6=HotelInfo, 8=VoucherDetails, 9=BookingValuation, 10=AdvBookingSearch, 11=HotelSearch, 14=PriceBreakdown, 15=AmendmentOptions, 16=BookingAmendment, 61=HotelInfoByCode
  • Payload logging: Configurable via goglobal.api.logPayloads
  • Key classes: GoGlobalSoapClient, GoGlobalRequestBuilder, GoGlobalResponseParser, GoGlobalHotelService, GoGlobalCitySearchService

1.5 Google Flights via RapidAPI (Module: tqgflights)

  • Service: Google Flights data via RapidAPI DataCrawler
  • Protocol: REST/JSON via Java NIO HttpClient
  • Auth: RapidAPI headers (x-rapidapi-key, x-rapidapi-host)
  • Config: config/googleflights-client.xmlrapidapi.key, rapidapi.host, api.baseUrl
  • Endpoints: /api/v1/searchAirport, /api/v1/searchFlights
  • Payload logging: Configurable via api.logPayloads
  • Key classes: GoogleFlightsServiceFactory, GFFlightSearchService, GFAirportSearchService

1.6 Odoo ERP (Module: tqodoo)

  • Service: Odoo ERP (CRM, products, invoicing)
  • Protocol: XML-RPC via org.apache.xmlrpc:xmlrpc-client:3.1.3
  • Auth: Username/password with session token; endpoints: /xmlrpc/2/common (auth), /xmlrpc/2/object (CRUD)
  • Config: config/odoo-server.properties, config/odoo-client.properties
  • Entities: OdooProduct, OdooUser, OdooCustomer, OdooInvoice, OdooPayment, OdooLead, OdooWebCategory
  • Key classes: OdooServiceFactory, OdooEntitySearchService, OdooEntityReadService, OdooEntityWriteService

2. Payment Processing

2.1 Telr Payment Gateway

  • Service: Telr (UAE-based payment gateway)
  • Protocol: HTTPS POST/JSON
  • Endpoint: https://secure.telr.com/gateway/order.json
  • Auth: Store ID + Auth Key (telr.store-id, telr.auth-key)
  • Config: config/tourlinq.properties
  • Features: Transaction creation, status checking, framed payment interface
  • Callback endpoints (tqapi):
  • /payment/blm/success|cancel|decline — booking payments
  • /payment/offline/success|cancel|decline — offline sales
  • /payment/hotel/success|cancel|decline — hotel payments
  • Key classes: TelrJPgw (tqapp), AbstractPaymentCallbackApi, BookingPaymentCallbackApi, HotelPaymentCallbackApi, PaymentCallbackApi (tqapi)

3. Messaging & Communication

3.1 Twilio (SMS + WhatsApp)

  • Service: Twilio Messaging API
  • SDK: com.twilio.sdk:twilio:10.5.1
  • Config: config/properties.d/messaging.properties
  • Account SID, Auth Token
  • SMS sender (regular + promo messaging services)
  • WhatsApp sender (messaging service)
  • Features: SMS send, WhatsApp template messages with media, status webhooks, notification binding
  • Webhook: /marketing/broadcast/webhook/twilio-status
  • Key class: MessageUtil (tqcommon)

3.2 Meta WhatsApp Cloud API (via Python service)

  • Service: Meta Graph API for WhatsApp Business
  • Endpoint: https://graph.facebook.com/{version}/ (v25.0)
  • Auth: Meta access token, WABA ID, Phone Number ID
  • Implementation: Python FastAPI microservice in tqwhatsapp/
  • Config (Java side): whatsapp.python.service.url (default http://localhost:8001), whatsapp.python.service.api-key
  • Config (Python side): .env with META_ACCESS_TOKEN, META_PHONE_NUMBER_ID, META_WABA_ID, META_APP_SECRET
  • Features: Template messages, interactive messages, text messages, template listing, webhook signature verification (HMAC-SHA256)
  • Provider switch: broadcast.wa.provider=META|TWILIO
  • Key classes: MetaBroadcastDispatcher (Java), meta_client.py (Python)

3.3 SMTP Email (Zoho)

  • Service: Zoho Mail SMTP
  • Protocol: SMTP/TLS (port 587)
  • Config: config/tourlinq.propertiesmail.server=smtp.zoho.com, mail.port=587, mail.from=odoo@peruntours.com
  • Features: Transactional email with attachments (booking confirmations, notifications, password resets)
  • Key class: MailUtil (tqcommon)

4. AI & Content Services

4.1 Anthropic Claude API

  • Service: Anthropic Claude LLM
  • Protocol: HTTPS POST
  • Endpoint: https://api.anthropic.com/v1/messages
  • Auth: API key (x-api-key header), version header (anthropic-version: 2023-06-01)
  • Model: claude-sonnet-4-5-20250929 (configurable via ai.model)
  • Config: config/tourlinq.propertiesai.api.key, ai.api.endpoint, ai.max.tokens=4096, ai.timeout.seconds=30
  • Use cases:
  • Travel outline generation — destination briefs with trip context (dates, pax, nationalities, budget); cached for 30 days (ai.cache.ttl.hours=720)
  • Ticket pattern analysis — analyze PDF ticket text to suggest regex extraction patterns for serial numbers, dates, barcodes
  • AI CSR (WhatsApp) — multi-turn customer service conversations with offer context awareness, language switching, handoff logic
  • Cost tracking: Input/output token usage logged to internal API
  • Key classes: AiOutlineFacade (tqapp), TicketPatternAnalyzer (tqapp), csr.py (tqwhatsapp)

4.2 Pexels Image API

  • Service: Pexels stock photo search
  • Protocol: HTTPS with Authorization header
  • Endpoint: https://api.pexels.com/v1/search
  • Config: config/tourlinq.propertiespexels.api.key
  • Features: Destination cover photo search, image download with redirect following, Base64 encoding for embedding
  • Key class: PexelsImageService (tqapp)

5. Utility APIs

5.1 Exchange Rate API

  • Service: open.er-api.com (free currency conversion)
  • Protocol: HTTPS GET
  • Endpoint: https://open.er-api.com/v6/latest/{baseCurrency}
  • Auth: None (public API)
  • Features: Real-time rates, 1-hour TTL cache (bounded at 200 entries), default local currency AED
  • Key class: ExchangeRateHelper (tqapp)

5.2 Visa Requirements API (RapidAPI)

  • Service: TravelBuddyAI via RapidAPI
  • Protocol: HTTPS POST
  • Endpoint: https://visa-requirement.p.rapidapi.com/v2/visa/check
  • Auth: RapidAPI headers (x-rapidapi-key, x-rapidapi-host)
  • Config: config/tourlinq.propertiesrapidapi.visa.key, rapidapi.visa.host, rapidapi.visa.url
  • Features: Passport/nationality-based visa rule lookups; same-country optimization
  • Key class: VisaRequirementService (tqapp), VisaApi (tqapi)

6. Cloud Infrastructure

6.1 AWS S3

  • Service: AWS S3 object storage
  • SDK: AWS SDK v2 (software.amazon.awssdk:s3, v2.25.60+)
  • Features:
  • Media CDN uploads/downloads (images, videos)
  • Visa document storage (server-side KMS encryption, MIME validation, presigned URLs)
  • Booking document storage
  • Image processing (thumbnail generation via Thumbnailator, compression to ~100KB)
  • Key classes: MediaS3Config, MediaService, VisaDocumentStorageService, BookingDocumentStorageService (tqapp)

6.2 AWS CloudFront CDN

  • Config prefixes:
  • Content CDN: https://d117ew1ll41gas.cloudfront.net/
  • Broadcast media CDN: https://media.perunapps.com/
  • Rayna CDN: https://dlvz9zmk16t7v.cloudfront.net/

7. Authentication

7.1 Keycloak / OIDC

  • Service: Keycloak OpenID Connect
  • Issuer: Configurable (e.g. https://dev-auth.vanevski.net/realms/tqpro-adm)
  • JWKS endpoint: {issuer}/protocol/openid-connect/certs
  • Modes: NATIVE_OIDC, OAUTH2_PROXY, or HYBRID
  • Libraries: com.nimbusds:nimbus-jose-jwt, com.nimbusds:oauth2-oidc-sdk
  • Features: JWT signature verification, issuer/audience validation, Keycloak role claim extraction
  • Key classes: JWTValidator, OIDCConfig (tqapi)

Summary Matrix

# Integration Module Protocol Auth Category
1 Amadeus GDS tqamds REST (SDK) OAuth 2.0 B2B Supplier
2 Rayna B2B tqryb2b REST Bearer Token B2B Supplier
3 Tiqets tqtiqets REST API Key + JWT B2B Supplier
4 GoGlobal tqgglbl SOAP 1.2 Agency ID + Login B2B Supplier
5 Google Flights tqgflights REST RapidAPI Key B2B Supplier
6 Odoo ERP tqodoo XML-RPC User/Pass + Session ERP
7 Telr tqapp REST Store ID + Key Payment
8 Twilio tqcommon SDK Account SID + Token Messaging
9 Meta WhatsApp tqwhatsapp REST Bearer Token Messaging
10 Zoho SMTP tqcommon SMTP/TLS User/Pass Email
11 Anthropic Claude tqapp+tqwhatsapp REST API Key AI
12 Pexels tqapp REST API Key Media
13 open.er-api.com tqapp REST None Utility
14 TravelBuddyAI Visa tqapp REST RapidAPI Key Utility
15 AWS S3 tqapp SDK IAM/Config Cloud Storage
16 AWS CloudFront config CDN N/A Cloud CDN
17 Keycloak OIDC tqapi HTTPS/JWT JWKS Auth

Total: 17 distinct external integrations across 6 B2B suppliers, 1 ERP, 1 payment gateway, 3 messaging channels, 3 AI/media/utility APIs, 2 cloud infrastructure services, and 1 auth provider.