Download End Client Leads
Streamline your workflow by downloading end client leads from Avinode into your system.
Overview
Avinode processes two main types of inquiries: end client leads and RFQs.
RFQs (Request for Quotes): Inquiries from professional buyers sourcing charter options through the Avinode Marketplace. RFQs are most commonly sent by Brokers to Charter Operators, but can also be sent by Operators sub-chartering.
End Client Leads: Inquiries submitted directly by an end client. These typically contain contact details and trip information such as itinerary, travel dates, passenger count, requested aircraft options, and messages.
Implementing this use case allows you to download End Client Leads from Avinode into an external system such as a CRM or quoting tool.
This use case can be combined with:
Pre-requisites
Before implementing this use case, you must have a supported solution that creates End Client Leads in Avinode.
This is typically:
- an Avinode Web App
- the End Client Trip Search use case
- the End Client Empty Leg Search use case
- another approved lead-generation workflow
You will also need:
- an approved Avinode API connection
- a backend service capable of receiving HTTPS webhook requests
- secure storage for API credentials
- access to the external system where the lead will be sent
We recommend reviewing:
Implementation
Workflow
The ClientLeads webhook notifies your application that a new End Client Lead has been created.
The webhook does not contain the complete lead. Your backend must acknowledge the webhook and then retrieve the lead through the Avinode API.
flowchart LR
A["End Client"] --> B["Web App or approved<br/>API solution"]
B --> C["Client Lead<br/>created in Avinode"]
C --> D["ClientLeads<br/>webhook"]
D --> E["Integration<br/>backend"]
E -. "HTTP 200" .-> D
E -->|"GET webhook href"| F["Client Lead API"]
F -->|"Lead data"| E
E --> G["CRM / external<br/>system"]
Step 1: Set up Webhooks
Configure the ClientLeads event using POST /webhooks/settings.
Example webhook payload:
{
"id": "ecl-1138035",
"href": "https://sandbox.avinode.com/api/leads/ecl-1138035",
"type": "leads"
}The webhook contains a reference to the Client Lead:
| Property | Description |
|---|---|
id | Client Lead identifier |
href | URI used to retrieve the Client Lead |
type | Resource type |
Your webhook receiver should:
- Accept the HTTPS POST.
- Store or queue the event.
- Respond with HTTP
200as quickly as possible. - Retrieve and process the Client Lead separately.
Use the suppliedhrefUse the URI provided in the webhook payload when retrieving the Client Lead.
Do not construct resource URLs by parsing Avinode-generated IDs.
Your integration should also be able to handle duplicate and parallel webhook notifications.
Step 2: Retrieve Lead Data
After accepting the webhook, retrieve the Client Lead using: GET /leads/{leadId}
For example: GET https://sandbox.avinode.com/api/leads/ecl-1138035
The response can include:
- end client contact details
- itinerary
- departure and arrival airports
- dates and times
- passenger count
- requested aircraft options
- pricing information, where applicable
- messages
- Avinode actions such as
searchInAvinodeandviewInAvinode
Example response:
{
"meta": {
"errors": [],
"warnings": [],
"infos": []
},
"data": {
"id": "ecl-1138035",
"href": "https://sandbox.avinode.com/api/leads/ecl-1138035",
"type": "leads",
"actions": {
"searchInAvinode": {
"type": "searchInAvinode",
"description": "Start a search in Avinode",
"httpMethod": "GET",
"href": "https://sandbox.avinode.com/marketplace/mvc/search/load/ecl-1138035?source=api&origin=api_action"
},
"viewInAvinode": {
"type": "viewInAvinode",
"description": "View in Avinode",
"httpMethod": "GET",
"href": "https://sandbox.avinode.com/marketplace/mvc/trips/clientlead/ecl-1138035?source=api&origin=api_action"
}
},
"leadContactInfo": {
"name": "Example Client",
"emails": [
"[email protected]"
],
"phone": "+1 555 0100"
},
"segments": [
{
"startAirport": {
"name": "LANDVETTER",
"city": "GOTEBORG",
"icao": "ESGG",
"iata": "GOT"
},
"endAirport": {
"name": "SCHIPHOL",
"city": "AMSTERDAM",
"icao": "EHAM",
"iata": "AMS"
},
"departureDateTime": {
"dateTimeUTC": "2026-09-10T07:00:00Z",
"dateTimeLocal": "2026-09-10T09:00:00+02:00"
},
"paxCount": 2
}
],
"message": "Please contact me with available options."
}
}See GET /leads/{leadId} for the full response model.
Step 3: Send the Lead to Your External System
Once retrieved, the Client Lead can be mapped into your CRM, quoting tool, or other external system.
For example:
| Avinode data | Example external use |
|---|---|
leadContactInfo | Lead/contact |
segments | Itinerary |
departureDateTime | Travel date/time |
paxCount | Passenger count |
sellerLift | Requested aircraft options |
message | Inquiry notes |
Client Lead id | Integration reference |
Avinode does not push the full lead directly into third-party systems. Your integration is responsible for retrieving and mapping the data.
Authentication and Security
Webhook delivery and API retrieval are separate connections.
Webhook authentication
Avinode sends the webhook to your configured endpoint.
See Webhooks for supported authentication options.
API authentication
Your backend must use the approved Avinode API connection when calling GET /leads/{leadId}.
See API Basics for required authentication and request headers.
Protect API credentialsDo not expose Avinode API credentials in browser-side JavaScript, public website source code, screenshots, or logs.
Calls to retrieve Client Leads should be made from a secure backend.
Error Handling
Webhook delivery and lead retrieval should be handled separately.
If the webhook is successfully accepted but GET /leads/{leadId} fails:
- retain the event or supplied
href - retry according to the returned HTTP status
- log the timestamp, resource URI, response status, and error response
- do not log authentication credentials
See Error Handling.
Go Live!
Implementation checklistAll items on this checklist must be true before the application can call the live Avinode Marketplace environment.
- The application complies with the Basic Go Live requirements.
- A supported solution creates End Client Leads in Avinode.
- The application has an approved API connection with the required permissions.
- The
ClientLeadswebhook event is configured.- The receiving webhook endpoint responds with HTTP
200.- The application uses the
hrefsupplied in the webhook notification.- The backend successfully retrieves Client Lead data using GET /leads/{leadId}.
- The integration can handle duplicate and parallel webhook notifications.
- The application can handle additional JSON properties without breaking.
- API credentials are stored securely.
- Data stored or shared with external systems complies with the applicable API agreement.
- The complete workflow has been verified in Sandbox.
Updated 18 days ago