Supergood | Egencia API
Programmatically access Egencia corporate travel data—traveler profiles, trips and itineraries, approvals, and invoices—with a stable REST API. Supergood builds and operates production-grade, unofficial Egencia integrations so your team can automate travel workflows and reporting without heavy custom engineering.
Plain English: Egencia is a corporate travel management platform used by businesses to book flights, hotels, cars, and rail while enforcing travel policy, approvals, and negotiated rates. An unofficial API lets you pull traveler profiles, trips and PNRs, segment-level itinerary details, policy/approval states, and invoices/receipts—and push updates like traveler provisioning, approval decisions, or cancellations back into Egencia.
For a tech company integrating with Egencia, this means you can ingest real-time travel and spend data to power dashboards, sync invoices and trip costs to your ERP/expense system (e.g., SAP Concur, Expensify), automate approvals and policy checks from your product, or enrich your platform with itineraries, supplier references, and traveler risk signals. You can also trigger traveler notifications, drive refund/cancellation flows, attach documents, and keep stakeholder systems (HRIS, accounting, analytics) in lockstep.
What is Egencia?
Egencia (https://www.egencia.com/) is a cloud-based corporate travel management solution—part of American Express Global Business Travel—that centralizes booking, policy enforcement, approvals, traveler profiles, supplier content, and analytics for enterprises. Travel managers use Egencia to define policies, negotiate rates, and monitor compliance; employees and arrangers book trips across air, hotel, car, and rail; finance teams reconcile invoices and receipts; and risk teams manage duty-of-care.
Core product areas include:
- Booking & Inventory Access (Air, Hotel, Car, Rail; negotiated rates; corporate cards)
- Traveler Management (Profiles, Roles, Cost Centers, Status, Preferences)
- Policy & Approvals (Policy tiers, pre-trip approvals, exceptions, budget controls)
- Trips & Itineraries (PNR record locators, segment details, confirmations, changes)
- Financials & Reporting (Invoices, Receipts, Taxes, Currencies, Allocation/GL, Analytics)
- Risk & Duty of Care (Traveler tracking, alerts, compliance flags)
Common data entities:
- Companies, Users/Travelers, Arrangers, Approvers, Roles/Permissions
- Travel Policies and Approval Workflows
- Trips (metadata, status, PNR, record locator, dates)
- Segments (Air, Hotel, Car, Rail: supplier, times, locations, ticket/confirmation numbers)
- Bookings (references, status, fare/rate details, change/cancel eligibility)
- Invoices & Receipts (line items, taxes, totals, currency, PDF artifacts)
- Cost Centers, Departments, GL/Allocation Codes
The Egencia Integration Challenge
Teams rely on Egencia daily, but turning portal-based travel workflows into API-driven automation is non-trivial:
- Limited data exports: Many customers report reliance on scheduled CSV reports and manual downloads; real-time access often requires custom feeds or add-on costs
- Role-aware portals: Travelers, arrangers, approvers, and travel managers each see different views and permissions
- Policy/approval constraints: Pre-trip approvals, exceptions, and budget thresholds add workflow complexity
- Authentication layers: SSO/MFA and session lifecycles complicate unattended automation
- Data fragmentation: Key context spans trips, segments, invoices, and policies with details spread across multiple pages
- Change/cancel nuances: Fare rules, cancellation windows, vouchers/refunds, and supplier-specific behaviors must be handled carefully
How Supergood Creates Egencia APIs
Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your Egencia tenant.
- Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh and change detection
- Normalizes responses so you can integrate once and rely on consistent objects across modules
- Aligns with customer entitlements and role-based permissions to ensure compliant access
Use Cases
Traveler Provisioning & Profile Sync
- Mirror travelers, arrangers, and approvers into your HRIS/IDP
- Keep roles, cost centers, departments, and policy tiers current
- Normalize identifiers (employee ID, SSO ID, record locator references) for downstream systems
Trip & Itinerary Data
- Ingest trips and segment details (air, hotel, car, rail) into your data warehouse
- Track policy compliance and approvals alongside itinerary changes
- Power real-time traveler dashboards and notifications in your product
Approvals & Policy Automation
- Trigger pre-trip approvals based on budget, route, or policy tier
- Update approval decisions programmatically and notify stakeholders
- Flag exceptions and route to approvers with clear audit metadata
Financials: Invoices, Receipts, and Expense Sync
- Pull invoices and receipts to reconcile with ERP/expense systems (e.g., SAP Concur, Expensify)
- Normalize taxes, currencies, and allocations (GL/cost center) across trips
- Create webhooks to push invoice updates or cancellations to accounting
Duty of Care & Traveler Tracking
- Identify travelers in-destination and upcoming trips by region
- Aggregate risk signals to inform alerts and incident response
- Export contact and itinerary data to your crisis management tooling
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_egn_2f90bd",
"name": "Travel Manager",
"entitlements": ["travelers", "trips", "approvals", "invoices"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Travelers
GET /travelers: List traveler profiles with policy, cost center, and role details.
Query parameters
- companyId: string
- status: active | inactive | invited
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"travelerId": "tv_9c12f1",
"name": "Alex Rivera",
"email": "[email protected]",
"status": "active",
"employeeId": "E-10492",
"department": "Engineering",
"costCenterCode": "ENG-NA-1001",
"roles": ["traveler"],
"policyTier": "standard",
"ssoId": "00u2y1abcXYZ",
"preferences": {
"air": {"seat": "aisle", "loyalty": [{"program": "DL", "number": "123456789"}]},
"hotel": {"bed": "king"}
},
"assignedApproverId": "appr_40c9e2",
"updatedAt": "2026-01-20T13:45:00Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Trips
GET /trips: List trips with segment-level itinerary details and policy compliance.
Query parameters
- travelerId: string
- status: upcoming | past | cancelled
- startDateFrom, startDateTo: ISO 8601 dates
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"tripId": "trp_ba91e0",
"travelerId": "tv_9c12f1",
"pnr": {"recordLocator": "Z3K9PQ", "agencyRef": "EG-874129"},
"status": "upcoming",
"startDate": "2026-02-05",
"endDate": "2026-02-10",
"currency": "USD",
"totalEstimatedCost": 1450.00,
"policyCompliance": {"requiresApproval": true, "approved": false, "exceptions": ["hotel_rate_above_policy"]},
"segments": [
{
"segmentType": "air",
"airline": "Delta",
"flightNumber": "DL1234",
"departureAirport": "SEA",
"arrivalAirport": "JFK",
"departureDateTime": "2026-02-05T09:15:00-08:00",
"arrivalDateTime": "2026-02-05T17:30:00-05:00",
"ticketNumber": null,
"bookingStatus": "reserved"
},
{
"segmentType": "hotel",
"propertyName": "Egencia Preferred Midtown",
"address": {
"line1": "123 Madison Ave",
"city": "New York",
"region": "NY",
"postalCode": "10016",
"country": "US"
},
"checkIn": "2026-02-05",
"checkOut": "2026-02-10",
"roomType": "King",
"confirmationNumber": "H-7845129",
"bookingStatus": "confirmed"
},
{
"segmentType": "car",
"vendor": "Avis",
"pickupLocation": "JFK T4",
"pickupDateTime": "2026-02-05T18:15:00-05:00",
"dropoffLocation": "JFK T4",
"dropoffDateTime": "2026-02-10T14:00:00-05:00",
"confirmationNumber": "C-91245",
"bookingStatus": "confirmed"
}
],
"updatedAt": "2026-01-21T10:03:11Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Invoices
GET /invoices: Retrieve posted invoices and receipt artifacts for reconciliation.
Query parameters
- travelerId: string
- invoiceStatus: posted | pending | cancelled
- issueDateFrom, issueDateTo: ISO 8601 dates
- currency: ISO 4217 code
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"invoiceId": "inv_51af80",
"invoiceNumber": "EG-2026-001245",
"issueDate": "2026-02-11",
"currency": "USD",
"total": 1450.00,
"taxTotal": 87.00,
"status": "posted",
"travelerId": "tv_9c12f1",
"travelerName": "Alex Rivera",
"tripId": "trp_ba91e0",
"allocations": [{"costCenterCode": "ENG-NA-1001", "glCode": "7450", "amount": 1450.00}],
"items": [
{"type": "air", "supplier": "Delta", "fareClass": "Main", "ticketNumber": "0061234567890", "amount": 620.00},
{"type": "hotel", "supplier": "Egencia Preferred Midtown", "nights": 5, "amount": 700.00},
{"type": "car", "supplier": "Avis", "days": 5, "amount": 130.00}
],
"pdfUrl": "https://api.supergood.ai/integrations/<integration_id>/invoices/inv_51af80/artifacts/pdf",
"updatedAt": "2026-02-11T15:20:44Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Bookings
PATCH /bookings/{bookingId}/cancel: Cancel a booking segment (air, hotel, car) within a trip, capturing refund/voucher details.
curl --request PATCH \
--url https://api.supergood.ai/integrations/<integration_id>/bookings/bkg_7c3d21/cancel \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"reason": "client_request",
"waiveFees": false,
"referenceId": "ops-23410"
}'
Example response
{
"bookingId": "bkg_7c3d21",
"segmentType": "hotel",
"status": "cancelled",
"cancelledAt": "2026-01-22T08:15:12Z",
"refundAmount": 700.00,
"currency": "USD",
"voucher": null,
"policyExceptionLogged": true
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
- Response format: JSON with consistent resource schemas and pagination across modules
- Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of travelers, trips, approvals, bookings, and invoices
- Security: Encrypted transport, scoped tokens, and audit logging; respects Egencia role-based permissions
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., approvals, itinerary changes, invoice posting)
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load
- Throughput: Designed for high-volume traveler sync, trip ingestion, and invoice reconciliation
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened Egencia adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as Egencia evolves.
Frequently Asked Questions
Q: Which Egencia modules can this integration cover?
Supergood supports workflows across commonly used modules such as Traveler Management (Profiles, Roles), Trips & Itineraries (Air, Hotel, Car, Rail), Policy & Approvals (Pre-trip approvals, Exceptions), and Financials (Invoices, Receipts), subject to your licensing and entitlements. We scope coverage during integration assessment.
Q: How are MFA and SSO handled for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling.
Q: Can you sync invoices and trip costs to our accounting or expense system?
Yes. We can normalize invoices, receipts, and allocation data to match your ERP/expense schema (e.g., SAP Concur, Expensify) and deliver updates via webhooks or polling while complying with rate and permission constraints.
Q: Do you support approvals and cancellation flows?
Yes. We can read and update approval states (with audit metadata) and perform cancellations where enabled, modeling refund/voucher outcomes and policy exceptions.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your Egencia workflows?
Supergood can have your Egencia integration live in days with no ongoing engineering maintenance.