createNotificationCallbackConfig mutation
Creates the callback configuration for the lodging partner account, including the following:
- Callback URL (where notification events are sent when they occur)
- API key
- Partner email address (where secret expiry warnings are sent)
- Request timeout value.
If the partner's notification profile does not exist, this mutation will create the profile, too.
Note: Immediately after registering the callback URL, we send a GET request to your endpoint, to check connectivity from the Expedia network and verify whether the URL is whitelisted. This is issued once and can be ignored.
By default, the secret is valid for one year. You can determine when it will expire using the secretExpirationDateTime
field; we recommend that you renew the secret at least 30 days before the expiry date. If the secret expires, notifications fail to be sent for active subscriptions, though we attempt to retry sending them (according to the retry policy for the event type). If the secret is refreshed during these retry attempts, notifications are sent successfully. After the secret is refreshed, you have up to three days to replace the old secret (as specified when refreshing the secret).
The following is passed in the HTTP headers of the notification:
- API key.
- Timestamp, in epoch time.
- Signature, in this format:
sha256=hash(timestamp.notification_payload)
. This is a Base64-encoded HMAC-SHA256 hash of the timestamp and notification payload using the secret as the key. If the old secret is still active, the format issha256=hash(timestamp.notification_payload) with newSecret,hash(timestamp.notification_payload) with oldSecret
. Note that you must code for comma-delimiting hashes in both cases.
Here is an example of the headers for a MessageAttributesUpdated
notification:
1"transactionId": "11111111-1111-11ec-97a3-5d06cc689918"2"api-key": "apiKey"3"x-eg-notification-timestamp": "1674149042995"4"x-eg-notification-signature-v2": "sha256=hash(1732710561482.{"event_name":"MessageAttributesUpdated","creation_time":"2024-11-28T10:27:18.212Z","notification_id":"53c7cb70-d772-4ddd-ad04-b1fcae1620c8","payload":{"property_id":"11840519","message_thread_id":"46c35257-1e78-45c0-a64d-cc5fae75d007","message_id":"20aeeade-0bf4-48f2-8c8b-9cda524551a9","from_role":"SUPPLIER","reservation_id":"368177214","message_attributes":[{"attribute":"reviewStatus","value":"ACCEPTED"}]}}, WUsM9s+yTDln9AfZVVAY+g==)"
Syntax
1mutation {2 createNotificationCallbackConfig(5}
Example
- Request
- Response
1mutation {2 createNotificationCallbackConfig (3 input: {4 callbackUrl : "https://testcallbackurl.com",5 apiKey : "newapikey",6 requestTimeoutSeconds: 10,7 contactEmail: "partner@email.com"8 }9 ) {10 callbackConfig {11 id12 callbackUrl13 secretExpirationDateTime14 requestTimeoutSeconds15 contactEmail16 }17 secret18 }19}
Arguments
Name | Description |
---|---|
| Required. Details used when creating the callback configuration. Type: CreateNotificationCallbackConfigInput |
Types
Name | Type | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CreateNotificationCallbackConfigInput | InputObject | |||||||||||||
Details about the callback configuration.
| ||||||||||||||
CreateNotificationCallbackConfigPayload | Object | |||||||||||||
Details about the callback configuration returned by the mutation.
| ||||||||||||||
EmailAddress | EmailAddress | |||||||||||||
A field whose value conforms to the standard internet email address format as specified in HTML Spec. | ||||||||||||||
ID | ID | |||||||||||||
The | ||||||||||||||
Int | Int | |||||||||||||
The | ||||||||||||||
LocalDateTime | LocalDateTime | |||||||||||||
A type representing a date and time (such as 2007-12-03T10:15:30). | ||||||||||||||
NotificationCallbackConfig | Object | |||||||||||||
Details about the callback configuration.
| ||||||||||||||
String | String | |||||||||||||
The | ||||||||||||||
Url | Url | |||||||||||||
Scalar type whose value conforms to the standard URL format as specified in RFC3986 specification. |