Annual Plan Quote to Purchase Integration Guide
Public partner guide for Travel Insured's annual-plan quote and purchase GraphQL flow.
📥 Downloads
Annual Plan Quote to Purchase Integration Guide
Intended Audience: Partner development teams and technology executives
Last Updated: May 12, 2026
Version: 1.0
This guide covers the published annual-plan purchase flow. Annual-plan purchase uses annual-specific quote and staging mutations, then reuses the same deferred payment and binding pattern as single-trip staged purchase.
Overview
The published annual-plan flow consists of four operations:
- Annual Plan Quote using
annualPlanQuote - Stage Annual Policy Purchase using
stageAnnualPolicyPurchase - Process Payment using
processPayment - Policy Bind Request using
policyBindRequest
Use this flow when you are selling annual products rather than a single-trip policy.
1. Authentication and Setup
Send both headers on every request:
Authorization: ApiKey {{apiToken}}x-api-key: {{accessKey}}Content-Type: application/json
Send the API token with the ApiKey prefix exactly as shown above.
Separate Annual Setup
Before testing the annual flow:
- Import the annual-plan Postman collection linked at the top of this guide.
- Configure
graphqlBaseUrl,apiToken,accessKey,agencyNumber, and optionalagentIdin your Postman environment. - Confirm your partner access includes annual-plan products before attempting
annualPlanQuote. - Use a product code returned by
annualPlanQuoterather than reusing a single-trip product code.
2. Annual-Specific Data Shapes
Annual-plan purchase uses these annual-specific input types:
AnnualPlanQuoteRequestInput
Required fields:
agencyNumbereffectiveDateresidencyCountryIsoCoderesidencyStateIsoCodetravelers[]
Optional fields:
agentIdapplicationDateownerIdquoteNumbertripSegment
AnnualPolicyPurchaseStageInput
Required fields:
agencyNumberdeliveryTypes[]planTravelers[]productquoteNumber
Optional fields:
agentIdapplicationDatemarketingChannelIdownerIdtripSegment
PlanTravelerInput
Key distinctions from the single-trip flow:
- annual staging uses
planTravelers[]instead oftrip.primaryTravelerplustrip.additionalTravelers - each traveler includes
id,primaryTraveler,dateOfBirth,firstName, andlastName contactInfois optional in schema and recommended for the primary travelerbeneficiaries,middleName, andtripCostare optional in schema
TripSegmentInput
The annual flow can optionally include a trip segment with:
departureDatereturnDatedestinations[]travelers[]
Use tripSegment when you want the annual quote or staged policy tied to a known planned trip segment during purchase.
3. Step 1: Annual Plan Quote
Use the annualPlanQuote mutation with an AnnualPlanQuoteRequestInput payload and retain the returned products, pricing, and coverage details for customer selection.
Retain:
quoteNumber- selected
productCode - optional coverage IDs
4. Step 2: Stage Annual Policy Purchase
Use the stageAnnualPolicyPurchase mutation with an AnnualPolicyPurchaseStageInput payload to validate the quote and create the staged annual plan.
Retain:
planGuid
Recommended implementation guidance:
- Keep traveler IDs stable between quote and staging.
- Use
contactInfofor the primary traveler even though it is nullable in schema. - Treat
planGuidas session-based checkout state.
5. Step 3: Process Payment
Annual staged purchase uses the same deferred payment mutation as the single-trip flow. Use the processPayment mutation with a PaymentProcessingRequestInput payload and retain the returned paymentRequestId and planGuid.
Schema-required fields:
planGuidpaymentMethod
Schema-optional fields:
billingPartyInformationhostedPaymentUrliFrameCommunicatorUrl
6. Step 4: Bind the Annual Policy
Annual staged purchase also uses the same bind mutation. Use the policyBindRequest mutation with the staged planGuid and confirmed payment transactionId, then retain the returned planNumber and document links.
After a successful bind:
planNumberbecomes the final issued policy identifier- the returned document links provide the current policy documents
7. Choosing the Annual Flow
Choose the annual flow when:
- the selected product is an annual plan product returned by
annualPlanQuote - your partner experience sells recurring or multi-trip annual travel coverage
- you need the annual traveler model rather than the single-trip
TripInputmodel
Use the single-trip v2 guide when you are selling one-trip policies or when you want to use the new streamlined purchasePolicy mutation.