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.xml—idfileproperty points to CSV withclientKey,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/cancelreferenceData.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
RestClientwrapper - 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-Signatureheader) - Config:
config/tiqets-client.xml—tiqets.api.key,tiqets.jwt.privateKeyFile,tiqets.jwt.keyId - Endpoints:
/experiences,/orders,/products,/tags - Entities:
TiqetsExperience, orders, products, tags - Sync:
config/scripts/tiqets_full_sync.pyfor 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.xml—goglobal.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.xml—rapidapi.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(defaulthttp://localhost:8001),whatsapp.python.service.api-key - Config (Python side):
.envwithMETA_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.properties—mail.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-keyheader), version header (anthropic-version: 2023-06-01) - Model:
claude-sonnet-4-5-20250929(configurable viaai.model) - Config:
config/tourlinq.properties—ai.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
Authorizationheader - Endpoint:
https://api.pexels.com/v1/search - Config:
config/tourlinq.properties—pexels.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.properties—rapidapi.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, orHYBRID - 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 | |
| 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.