TABLE OF CONTENTS



Flight GDN Seller API v2.0 introduces real-time Webhook Notifications to push critical post-booking flight and order event updates directly to downstream buyer endpoints. This event-driven architecture eliminates the need for frequent orderRetrieve polling, optimizing network overhead and processing latency.

When order servicing events occur, GDN automatically pushes real-time event notification payloads to the callbackUrl configured by the Buyer.



Integration Scope & Prerequisites


Active Buyer Endpoints

Buyers only need to invoke two management APIs to control subscriptions:

  • POST /api/webhook/createWebhook: Creates a new Webhook subscription configuration.
  • POST /api/webhook/updateWebhook: Updates an existing Webhook subscription configuration.


Integration Prerequisites

Downstream Buyers must prepare the following before setup:

  1. Public HTTPS Callback URL: Provide an accessible HTTPS endpoint (callbackUrl).
  2. Request Handler: Endpoint must accept HTTP POST application/json requests.
  3. Idempotency Logic: Endpoint must implement duplicate check logic based on the eventId in the push payload.
  4. Secret Key Storage: Securely store the webhookId and secret returned during initial creation.
Important Operational Notes:
• One-Time Secret Exposure: The secret is returned in plain text ONLY ONCEupon successful invocation of createWebhook. It will NOT be returned in plain text in subsequent query or update requests.
• Environment Handling: The environment is automatically detected by the GDN server context and should NOT be passed in requests.
• Single Subscription Policy: Only ONE active Webhook configuration is allowed per Buyer account per environment.


Supported Event Types


The event array defines the subscription targets. The allowed event enumeration includes:

Event TypeDescription
ticketing.resultTicket freshbooking processing result
refund.resultTicket refund processing result
updatePassengerName.resultPassenger name modification result
flightTimeChange.resultFlight time change result
addPostAncillary.resultPost-booking ancillary purchase result



Webhook Management APIs


Create Webhook Configuration (createWebhook)

Creates a new webhook endpoint configuration for the current Seller in the current environment.

VersionDateDescription of Edit
V1.02026/08/15Initial Commit


Request Details
Pathv1.0/api/webhook/createWebhook


Request Body


KeyParentTypeMandatory/OptionalDescription
callbackUrlrootStringMThe webhook callback URL that will receive asynchronous event notifications from GDN via HTTP POST. Must be a valid HTTPS URL
apiVersionrootStringOAPI version identifier (e.g., "v1.0")
timeStamprootStringMThe Unix timestamp in milliseconds when the webhook request was generated.
eventsrootArrayMThe list of webhook event types to subscribe to. Must contain at least one valid event, with no duplicates.


Request Payload Example

{
   "callbackUrl": "https://procurement.example.com/gdn/webhook",
   "apiVersion": "1.0",
   "timeStamp": "1713607500123",
   "events": [
       "ticketing.result",
       "refund.result"
   ]
}


Response


KeyParentTypeDescription
webhookIdrootStringThe unique identifier of the webhook configuration used in subsequent operations (update, delete, ping, query).
callbackUrlrootStringThe callback URL configured for this webhook endpoint.
eventsrootArrayThe list of event types currently subscribed to by this webhook configuration
environmentrootStringThe environment to which the webhook belongs ("test" or "production").
activerootBooleanIndicates whether the webhook is currently active (true/false). Active immediately after creation.
secretrootStringThe webhook signing secret generated by GDN. Returned ONLY ONCE at creation time.
createdAtrootStringThe UTC ISO 8601 timestamp when the webhook was created.
updatedAtrootStringThe UTC ISO 8601 timestamp when the webhook was last updated.
timeStamprootStringThe Unix timestamp in milliseconds when the response was generated.


Response Payload Example

{


       "webhookId": "whk_202604200001",
       "callbackUrl": "https://procurement.example.com/gdn/webhook",
       "events": [
           "ticketing.result",
           "refund.result"
       ],
       "environment": "test",
       "active": true,
       "secret": "generated-secret-value",
       "createdAt": "2026-04-20T10:00:00Z",
       "updatedAt": "2026-04-20T10:00:00Z",
       "timeStamp": "1713607500123"
}


Update Webhook Configuration (updateWebhook)

Updates the subscribed event list for an existing webhook configuration without re-creating the webhook or changing the secret.


VersionDateDescription of Edit
V1.02026/08/15Initial Commit


Request Details
Pathv1.0/api/webhook/updateWebhook


Request Body


KeyParentTypeMandatory/OptionalDescription
webhookIdrootStringMThe webhook callback URL that will receive asynchronous event notifications from GDN via HTTP POST. Must be a valid HTTPS URL
apiVersionrootStringOAPI version identifier (e.g., "v1.0")
timeStamprootStringMThe Unix timestamp in milliseconds when the webhook request was generated.
eventsrootArrayMThe list of webhook event types to subscribe to. Must contain at least one valid event, with no duplicates.
callbackUrlrootStringOTo update callbackUrl
activerootBooleanO


Request Payload Example

{
   "webhookId": "whk_202604200001",
   "apiVersion": "1.0",
   "timeStamp": "1713607800123",
   "events": [
       "ticketing.result",
       "refund.result",
       "flightTimeChange.result"
   ]
}


Response


KeyParentTypeDescription
webhookIdrootStringThe unique identifier of the webhook configuration used in subsequent operations (update, delete, ping, query).
callbackUrlrootStringThe callback URL configured for this webhook endpoint.
eventsrootArrayThe list of event types currently subscribed to by this webhook configuration
environmentrootStringThe environment to which the webhook belongs ("test" or "production").
activerootBooleanIndicates whether the webhook is currently active (true/false). Active immediately after creation.
secretrootStringThe webhook signing secret generated by GDN. Returned ONLY ONCE at creation time.
createdAtrootStringThe UTC ISO 8601 timestamp when the webhook was created.
updatedAtrootStringThe UTC ISO 8601 timestamp when the webhook was last updated.
timeStamprootStringThe Unix timestamp in milliseconds when the response was generated.


Response Payload Example

{
       "webhookId": "whk_202604200001",
       "callbackUrl": "https://procurement.example.com/gdn/webhook",
       "events": [
           "ticketing.result",
           "refund.result",
           "flightTimeChange.result"
       ],
       "environment": "test",
       "active": true,
       "secret": null,
       "createdAt": "2026-04-20T10:00:00Z",
       "updatedAt": "2026-04-20T10:05:00Z",
       "timeStamp": "1713607800123"
}


Error Codes


Error CodeMessageDescription
90001callbackUrl is invalidReturned when the callbackUrl field is not a valid URL format, for example when it is malformed, incomplete, or cannot be parsed as a valid URL.
90002events cannot be emptyReturned when the events field is missing, null, or contains an empty array. At least one subscribed event must be provided when creating a webhook.
90003unsupported event typeReturned when one or more values in the events array are not part of the GDN-supported webhook event catalog.
90004duplicate event type is not allowedReturned when the events array contains duplicated values. Each subscribed event type must appear only once.
90005active webhook already exists for current seller and environmentReturned when the current Seller already has an active webhook configuration in the current environment, and the platform does not allow creating another active webhook under the same Seller and environment.
90006request timestamp is invalidReturned when the request timestamp is missing, malformed, or fails timestamp validation according to platform rules, such as being outside the accepted time window.
90007webhookId is requiredReturned when the update request does not provide the webhookId field, and the system cannot identify which webhook configuration should be updated.
90008webhook does not existReturned when the provided webhookId cannot be found in the system.
90009webhook is inactive and cannot be updatedReturned when the target webhook is in a status that is not allowed for this update operation according to platform rules.
90010callbackUrl cannot be emptyReturned when the callbackUrl field is missing, null, or empty.