Meeting and Event Supply Distribution
What is it?
The MeetingBroker Integration suite of APIs enables partners to build web applications that allow properties to manage RFP receipt and response. This includes initial RFP receipt, submission of a proposal response, communication of booking updates to the planner who sent the RFP, and submission of business summary updates. RFP data provided by this suite of APIs includes basic information about the RFP (Meeting Name, Start Date, Status, etc.); detailed guestroom and event pattern data; and any supporting attachments provided by the meeting planner. Once an RFP is awarded by the planner, the RFP information can be used as a foundation for a booking record.
How do I get it?
Minimum Requirements
- The caller must have active integration with Amadeus Group & Event Distribution (MeetingBroker).
- The caller must have locations that are enabled for S&C integration in MeetingBroker.
How do I use it?
The rest of this documentation gives an overview of the suggested best practice to build a powerful and effective integration with the Meeting and Event Supply Distribution
Included APIs
What's Included?
Note: You must be logged in with an active subscription to view these APIs. If you attempt to open the link and get a "Sorry, we can't find the page you are looking for" it is probably because you aren't logged in.
What about Security?
All MeetingBroker Integration APIs require AHWS authentication. See the authentication guide for details.
MeetingBroker AHENS Integration
S&C systems integrate with MeetingBroker (MB) through AHENS. Please refer to AHENS Guide for more information about the notification processing service. A publisher subscriber map is required for flow of events/notifications between MB and S&C Systems. MB publishes events to AHENS and S&C systems subscribe to notifications for those events from AHENS.

MB publishes two types of event to AHENS
- RFP event - Pushed to AHENS when a new RFP arrives in MB or when an update to an existing RFP arrives in MB.
- TextMessage event - Pushed to AHENS when a Message arrives for an RFP either as part of Post RFP request or just as a TextMessage request.
Notifications
Summary
This notification is generated via Event Post request. It allows subscriber to retrieve RFP, Message in callback url of the response. You can poll for this notification through Amadeus Hospitality Event Notification Services (AHENS) Notification Receive
API.
High Level Work Flow
A typical workflow for retrieve notifications from AHENS is given below:
- Call
Notification Receive
API to retrieve notifications. - Once you have successfully retrieved notification, make a call to
Notification Commit
API to inform AHENS that the retrieved Notifications have been processed.
EntityType |
Endpoint |
Summary |
---|---|---|
Notification | ahens/notification/receive |
A call to the Notification Receive API returns a list of notifications to the caller. The result will return empty if there are no notifications available. |
Notification | ahens/notification/commit |
The Commit method is called with a collection of NotificationIds. These are Notification identifiers present in Notifications received by the subscriber system. |
Retrieve Notifications
To retrieve notifications, call Notification Receive API and you will be given a list of Notifications available for you.
Here are the details on this API:
API: Notification Receive
Type: POST
Request URL
https://api.newmarketinc.com/api/ahens/notification/receive
Request Body
The body of the request must be in a valid format acceptable by AHENS.
tenancyId | String | Notification subscriber may optionally specify the Tenancy Id to receive notifications that are specific to a given tenancy. If not specified, this will be retrieved from the caller's context. |
channelId | String | Notification subscriber may optionally specify the Channel Id to receive notifications that are specific to a given channel. If not specified, this will be retrieved from the caller's context, which will be defaulted to 0. |
locationId | String | Notification subscriber may optionally specify a location to receive notifications that are specific to a given location. |
resourceType | String |
Notification subscriber may optionally specify a resourceType i.e. BUSINESSDATA, RFP, Message to receive notifications that are specific to a given type of resource. Example:
|
limit | Integer | BatchSize representing the maximum number of notifications that may be returned. Default = 5000. |
correlationId | String | A CorrelationId, is a unique identifier that is attached to a Notification receive request. This can be used to reference the request made by the Subscriber. If CorrelationId is not provided by the Subscriber, AHENS will assign a unique identifier for the Receive request. AHENS will return the correlation identifier in the HTTP response header. NOTE: This correlationId is different from the Notification's correlationId. |
In case there are more than 5000 notifications available to the caller, a maximum of 5000 Notifications will be returned at each call. A continuation token will be made available in the response header for retrieval of the remaining Notification batches. The mentioned token can be provided in the request body as a field.
{ "tenancyId": "1100043", "channelId": "367867", "locationId": "50042328 ", "resourceType": "RFP/MESSAGE/BUSINESSDATA", "limit": 0, "correlationId": "6f508869-5d35-4f45-b735-b73e1cb50c39" }
Successful notification response
A call to the Notification Receive API returns a list of available Notifications to the caller. The result will return empty if there are no updates available. Below you may find a sample response to the mentioned API.
[ { "id":"5cee283ba3710e02c4dd1249", "eventId":"5cee283ba3710e02c4dd1248", "pubSubMapId":"100001_15842_MESSAGE_50067008_220029_62317_MESSAGE_GET_O50067008", "eventDetail":{ "resourceId":"4F83B36D-666A-E911-80DE-005056A15482", "resourceType":"MESSAGE", "locationId":"50067008", "subject":"", "eventDataLink":"https://api-qa.newmarketinc.com/api/dev/mb/rfp/861B92FB-5DC7-497B-AEB5-3867A6708CF0/message?4F83B36D-666A-E911-80DE-005056A15482", "publishedOn":"2019-05-29T10:10:59.393Z" }, "correlationId":"481C8D8F-5096-4515-A7C6-74B3D82B8E61", "status":"Received", "lastStatusChangeOn":"2019-05-29T06:42:13.852Z", "lastSubscribedOn":"2019-05-29T06:42:13.852Z", "receivedCount":1, "trackingId":"91ea05ac-3eee-4ff6-97cc-c5a47f258a13", "createdOn":"2019-05-29T06:35:39.68Z", "modifiedOn":"2019-05-29T06:42:13.852Z", "recordStatus":"Active" } ]
Unsuccessful notification response
Unsuccessful notification response payload holds an additional attribute 'eventData' with other attributes defined in successful payload. It shows unsuccessful message posted to AHENS.
"eventData":[ { "Status":400, "Title":"Error Occurred. Please contact your system administrator", "Detail":"Error Occurred. Please contact your system administrator" } ]

Confirm that notifications have been received and processed
When you have finished processing the notifications, you'll need to confirm this with AHENS, so that those notifications won't be delivered to you second time. To do this you will need to commit the Notifications you received earlier. Simply post the Notifications you received back to the Notification Commit
API to commit them, indicating that all processing is complete.
The commit request is treated as an explicit acknowledgment by the subscriber system that Notifications has been received successfully.
Commit Notification
API: Notification Commit
TYPE: HTTP POST
Request URL
https://api.newmarketinc.com/api/ahens/notification/commit
Request Body
Notification commit request contains identifiers of notifications that are to be committed. These identifiers can be found in the notifications received by the subscriber.
{ "notificationIds": [ "string" ], "correlationId": "string" }
The Commit method is called with a collection of NotificationIds. These are Notification identifiers present in Notifications received by the subscriber system. Collection of Notification identifiers (List required): Notification subscriber must supply a collection of Notifications identifiers.
Restage Notification
When the Recieve API method is called, the Notifications are put in the Received state. If after a period of time (configured during initial setup) these Notifications have not been Commited, these Notifications will be restaged to the New state, allowing them to be Received again. Only Notifications in the New state can be Received via Notification Receive
API.
Each time a Notification is Received, the Notification ReceivedCount is incremented. If you Receive a Notification with a ReceivedCount greater than one, that Notification has gone through the restage workflow due to not being Committed before the Restage Check timer has expired.
If the ReceivedCount is incremented more than the maximum allowed (defaults to five), the Notification will be put in a Failed state. These Notifications can no longer be Received, and will no longer be processed in the Notification workflow. If you would like Receive your Failed Notifications, contact your Amadeus Partner Success representative and they will restage them for you.
Once you retrieve a notification, you must commit it if you have successfully processed it. If you do not commit the notification after an hour, that same notification will be returned to you on your next polling cycle.
Overview of Business Data Update
This Business Data Update endpoint is a Public REST API to support updating of the business data included in the RFP by any authorized S&E system. The purpose is to allow S&E systems to provide planners with near real-time booking updates on business associated with MeetingBroker RFPs.
API Workflow
The following diagram illustrates the process for update business data.
- Using a previously obtained authentication token, the caller submits a request to the Business Data Update endpoint to update the business data in a previously submitted RFP.
- Amadeus' MeetingBroker returns a response indicating if the payload was accepted for processing or not.
- MeetingBroker validates and processes the data included in the requests.
- The user can poll for result notifications by using the Notification API.
- Once the notifications have been processed and persisted on sending channel, the caller commits the result using the Commit method.
- The Business Data is updated, and the company or third-party agency associated with the booking can poll/get update notifications.
Note: All the RFP APIs require AHWS authentication. See the authentication guide for details.
Business Data Update Endpoint
You can update the Business Data of a RFP by using the Business Data Update endpoint. You will need to pass an Id: RfpGuid
and perform the PUT with the UpdateBusinessDataRQ.
Request URL
https://api.newmarketinc.com/api/mb/booking/rfp/{rfpid}/businessdata
Request Headers
Content-Type | String | Media type of the body sent to the API. It should be "application/json" for this PUT request. |
Ocp-Apim-Subscription-Key | String | Subscription key which provides access to this API. |
Authorization | String | >Valid access token obtained from Authentication API. |
Request Body
The Request body will contain UpdateBusinessDataRQ fields to be updated. This PUT endpoint requires a full overlay of the payload.
Required FieldsThe following fields are required when submitting a request to the endpoint.
Field | Type | Notes |
---|---|---|
ExternalBookingId | string | This is the booking ID provided by the integrated system it will need to be a number and not alphanumeric. The format is integer.integer example: 202.303. |
BusinessStatus | string | Current status of business reflected in the integrated system. |
UpdateBusinessRQ
The API includes the business data fields which you can update with the BDU API. These are included in the UpdateBusinessRQ section of the JSON. When you look at the JSON, notice that there are the following blocks of fields for which values can be updated:
- BusinessDataInfo - Information about the booking business services provided by the integrated system.
- MeetingInfo - Information about any included meetings, from the number of attendees to the number of events and nights.
- EventBlock - Details about any included events.
- RoomBlock - Information about the included guest rooms.
- Profile - Information about the booking company or associated travel agency, for example address, DUNS number, phone, and commission to be paid to the company or third-party agency associated with the booking.
- EventRequirementBusinessData - Detailed information about each event included in the event block.
- RoomAvailability - Details about booked guest room information contained in the room block.
- Contact - Information for contacting the company or third-party agency associated with the booking, such as name, address, phone, sales and catering ID.
- OtherIncomeItem - Details about a BusinessData other income item.
The following sections include further details about each block.
BusinessData
Field | Description | Example |
---|---|---|
businessCreationDate | Date the business record was created in the integrated system. | 2019-03-27 |
businessDataInfo | Indicates stage of business lifecycle. | Blocked |
businessOwnerEMail | Email of the individual assigned the business opportunity. | ghind@globetravel.com |
businessStatus |
Current status of business reflected in the integrated system. |
Cancelled |
comments |
Business-related comments provided by RFP receiver. |
Please notify us about day 1 prep requirements. |
externalBookingId |
Booking ID provided by the integrated system. | 123.456 |
externalLostBusinessReason |
Business was turned down or cancelled by the property. |
Proximity to airport |
isPickupComplete | Completed by integrated system. | False |
lostToCity | City to which the business was lost. | Portsmouth |
lostToHotel |
Hotel to which the business was lost. | Portsmouth Inn & Hotel |
meetingInfo | Contains information about the meeting. | MeetingInfo |
otherIncomeItems | Contains information about other income items for the business. | OtherIncomeItem |
BusinessDataInfo
This block adds the details for BusinessDataInfo.
Field | Description | Example |
---|---|---|
businessDataType | Provides snapshot of guestroom and event data during each stage of the booking lifecycle. Options: Agreed, PickedUp, Actual, Blocked. | Actual |
eventBlock | Refers to the event details in the Event Block. | |
roomBlock | Refers to guest room details in the Room Block. |
MeetingInfo
This block adds the details about the meeting.
Field | Description | Example |
---|---|---|
agencyProfile | Name, address, and contact for RFP travel agency. | Madge Bell at The Martindale Agency, 1500 Westgate St., Los Angeles, CA |
attendeeQuantity | Number of attendees associated with the business opportunity. | 15 |
commission | Percentage commission to be paid to the company or third-party agency associated with the booking. | 2.2 |
companyProfile | Name, address,contact for company associated with the business opportunity. | Dick York at The Martindale Agency, 1500 Westgate St., Los Angeles, CA |
externalCurrency | External currency of the RFP as specified by the company or third-party agency associated with the booking. | USD |
externalLeadSource |
Source of RFP (e.g., channel, phone, email, etc.) |
Phone |
externalMarketSegment |
Market segment associated with RFP (e.g., Corporate, Government, SMERF.) | Corporate |
externalMeetingType | Type of meeting associated with RFP (i.e., conference, wedding, meeting). | conference |
generalComments | Comments provided by RFP recipient regarding group history or up-coming stay. | Annual event for group. |
destinationComments: | Comments from/for the hotel. | The destination was requested by the CEO. |
isAgencyPrimaryContact | Is the company or third-party agency associated with the RFP to be contacted? | True |
isCommissionable | Will commission be paid to company or third-party agency associated with the booking? | True |
meetingName | Meeting associated with the RFP | Acme Sales Quarterly Planning |
meetingHistoryComments | Historical information on the company that may assist the property recipient. | Has provided these searches to other companies in this industry. |
numberOfAttendeesAtLargestEvent | Number of attendees at the largest event. | 240 |
numberOfEvents | Total number of events for the business data. | 5 |
numberOfNights | Total number of nights for the business data. | 3 |
peakRooms | Number of peak rooms for the business data as specified by the company or third-party agency associated with the booking. | 7 |
referenceNumber | User-specified reference number provided by the company or third-party agency associated with the booking. | 5748291 |
startDate | Start date of the booking. | 2019-03-27 |
Event Block
The Event Block is a list of of events associated with the booking.
Field | Description | Example |
---|---|---|
eventRequirementBusinessDataList | Refers to the EventRequirementBusinessData block. | |
startDate | Date of the first booking event. | 2019-03-20 |
RoomBlock
This includes any details specific to the room block.
Field | Description | Example |
---|---|---|
startDate | Start date of the first room night associated with the booking. | 2019-03-27 |
roomAvailabilities | Refers to block of guest rooms associated with the booking. |
Profile
Address information of the agency or company associated with the booking.
Field | Description | Example |
---|---|---|
addressLine1 | Line 1 of the address of the company or third-party agency associated with the booking. | 77 New Hampshire Ave |
addressLine2 | Line 2 of the address of the company or third-party agency associated with the booking. | Apartment 1 |
addressLine3 | Line 3 of the address of the company or third-party agency associated with the booking. | Building A |
cityRegion | City/region of the address of the company or third-party agency associated with the booking. | Portsmouth |
companyName | The name of the company or third-party agency associated with the booking. | Galaxy Planning Inc. |
contact | Refers to Contact node. | |
dunsNumber | DUNS number for the company or third-party agency associated with the booking. | 123456789 |
The email address of the company or third-party agency associated with the booking. | agency-director@Amadeus.com | |
externalCountry | The country of the company or third-party agency associated with the booking. | USA |
faxNumber | The fax number of the company or third-party agency associated with the booking. | 123-123-1234 |
phoneNumber | The phone number of the company or third-party agency associated with the booking. | 123-123-1234 |
postalCode | The postal code of the company or third-party agency associated with the booking. | 01324 |
stateProvince | The state/province of the company or third-party agency associated with the booking. | NH |
url | The website URL of the company or third-party agency associated with the booking. | www.examplesite.com |
EventRequirementBusinessData
This is a detailed listing of events associated with the business data type (e.g., agreed, blocked, picked up, and actual)
Field | Description | Example |
---|---|---|
attendeeQuantity | Number of Attendees associated with a given event that will be at a given event. | 125 |
beverageCosts | This is the beverage cost associated with a given event as specified by the company or third-party agency associated with the booking. | 75.00 |
dayNumber | Within the event block this is the sequential number for any given event. | 1 |
endTime | End time associated with any given event. | 11:00 AM |
externalEventType | Event type associated with any given event (i.e., General Session, Breakout, Breakfast, Dinner). | Breakout |
externalEventSetupType | Table and chair configuration associated with any given event (i.e., Theater, Conference, Classroom, Rounds of Ten). | Theater |
foodCosts | Food cost associated with a given event. | 500.00 |
otherCosts | Other costs associated with a given event. | 300.00 |
rentalCosts | Rental cost associated with a given event. | 850.00 |
resourceCosts | Resource cost associated with a given event. | 100.00 |
startTime | Start time associated with any given event. | 9:00 AM |
RoomAvailablity
This section details the rooms booked.Field | Description | Example |
---|---|---|
dayNumber | Within the event block this is the sequential day number for any given event with booked rooms. | 1 |
doublesAvailable | Quantity of booked double-occupancy rooms. | 10 |
doublesRate | Rate with booked double-occupancy rooms. | 130.00 |
quadsAvailable | Quantity of booked quad-occupancy rooms available. | 5 |
quadsRate | Rate with booked quad-occupancy rooms. | 210.00 |
roomType | Run_Of_House, Standard Double_Double, Suite | Run_Of_House |
singlesAvailable | Quanity of single occupancy rooms booked. | 15 |
singlesRate | Rate with booked single-occupancy rooms. | 159.00 |
triplesAvailable | Quantity of triple occupancy rooms booked. | 4 |
triplesRate | Rate with booked triple-occupancy rooms. | 150.00 |
Contact
Details about the contact at the the company or third-party agency associated with the booking are listed in this section.
Field | Description | Example |
---|---|---|
addressLine1 | Line 1 of the address for contact at the the company or third-party agency associated with the booking. | 75 New Hampshire Ave |
addressLine2 | Line 2 of the address for contact at the the company or third-party agency associated with the booking. | Bulding A |
addressLine3 | Line 3 of the address for contact at the the company or third-party agency associated with the booking. | Suite 2 |
cityRegion | City/region of the address for contact at the the company or third-party agency associated with the booking. | Boston |
Email address of the contact at the the company or third-party agency associated with the booking. | jank@galaxy.com | |
faxNumber | Fax number of the contact at the the company or third-party agency associated with the booking. | 978-555-5555 |
firstName | First name of the contact at the the company or third-party agency associated with the booking. | Jane |
externalContactId | External ID of the contact at the the company or third-party agency associated with the booking. | 51235 |
externalCountry | External country of the address for the contact at the the company or third-party agency associated with the booking. | USA |
jobTitle | External job title of the contact at the the company or third-party agency associated with the booking. | Planner |
lastName | Last name of the contact at the the company or third-party agency associated with the booking. | Kendall |
phoneExtension | Phone extension of the contact at the the company or third-party agency associated with the booking. | 501 |
phoneNumber | Phone number of the contact at the the company or third-party agency associated with the booking. | 888-555-5555 |
postalCode | Postal code of the address for the contact at the the company or third-party agency associated with the booking. | 03801 |
stateProvince | State/province of the address for the contact at the the company or third-party agency associated with the booking. | MA |
title | Title of the contact at the the company or third-party agency associated with the booking. | Director of Marketing |
OtherIncomeItem
This block contains Other Income information.
Field | Description | Example |
---|---|---|
description | A brief summarization of the Other Income Item. | BCP Food Service Charge |
quantity | The number of Other Income Items required. | 280.00 |
price | The cost of the Other Income item. | 14.8000 |
externalPricingPer | Describes the pricing unit. For example, per event, per meal, or per day. | Person |
revenue | The Quantity multiplied by the Price. | 750.0000 |
externalRevenueType | The revenue category associated with the Other Income Item. | Guestroom |
Retrieve RFP from MeetingBroker
Note: All the RFP APIs require AHWS authentication. See the authentication guide for details.
Retreive an RFP using the RFP endpoint and pass in a Rfpid
Request URL
https://api.newmarketinc.com/api/mb/rfp/{rfpid}
Here is an example of what the JSON payload returned will look like. There are 3 high level nodes in the reponse:
- Data: Contains the RFP information
- Dictionaries: Is not used at this time by this API
- CorrelationId: Is the sessionid for the call
Get RFP response example
{ "data": { "rfpId": "a73de041-dc68-4dac-8957-4baf53440271", "mbRfpId": 123456789, "externalRfpId": "da-getrfpv3-afterfdcfix", "channel": "Newmarket QA Prod Sandbox GSE Channel", "additionalInformation": [ { "type": "Text", "name": "AdditionalInfoName1", "value": "MeetingBroker" }, { "type": "Text", "name": "AdditionalInfoName2", "value": "Additional Text 2" } ], "auditInformation": { "createByUser": "Newmarket QA Prod Sandbox GSE Channel", "createDate": "2019-03-27T14:15:16.75Z", "lastModifiedDate": "2019-03-27T14:15:16.797Z" }, "attachmentUrl": "https://my-qa.meetingbroker.com/MeetingBroker/Message/RfpAttachments.aspx?guid=11745D1A-EE8E-4EA6-B55C-E97AEDB07AD0", "eventBlock": { "alternateStartDates": [ { "date": "2019-04-15T19:06:27.46Z", "rank": 1 } ], "beverageBudget": 0, "comments": "For: New RFP ID", "eventRequirements": [ { "dayNumber": 1, "startTime": "10:00", "endTime": "11:00", "externalEventType": "Unknown:EventTypeC", "externalEventSetupType": "Unknown:ExternalEventSetupTypeC", "roomSize": 501, "attendeeQuantity": 11, "isTwentyFourHourHold": true, "comments": "This event is specific to Day 1" } ], "sizeUnitOfMeasure": "Feet", "startDate": "2019-04-13T19:06:27.46Z" }, "meetingInfo": { "agencyProfile": { "companyName": "TestAgency", "addressLine1": "#A Line1", "addressLine2": "#B Road1", "addressLine3": "Barely1", "url": "http://StarSite1.com", "phoneNumber": "555-123-4541", "phoneExtension": "12", "faxNumber": "555-123-5551", "email": "abc@star1.com", "cityRegion": "Bostons1", "stateProvince": "New Jersey", "postalCode": "634761", "externalCountry": "US", "dunsNumber": "Auto56789", "contact": { "lastName": "QA", "firstName": "Newmarket", "externalContactId": "0035000000PyQulAAF", "addressLine1": "Irish Village", "addressLine2": "Glasgow", "addressLine3": "Test", "city": "Portsmouth", "countryCode": AA, "country": AU, "email": "mbtestuser@newmarket.com", "stateProvince": "AA", "postalCode": "03801", "phoneNumber": "123-123-1234", "phoneExtension": "12", "faxNumber": "123-456-1234", "jobTitle": "VP, Facilities", "title": "PP", "suffix": "PP" } }, "currencyId": 1, "attendeeQuantity": 14, "companyProfile": { "companyName": "TestCompany", "addressLine1": "#B Line1", "addressLine2": "# C Road1", "addressLine3": "White1", "url": "http://World1.com", "phoneNumber": "785-343-7531", "faxNumber": "785-343-7581", "email": "abc@world1.com", "cityRegion": "Bostons1", "stateProvince": "New York", "postalCode": "44341", "externalCountry": "US", "externalSicCode": "Unknown:3746P", "dunsNumber": "Auto56789", "contact": { "lastName": "QA", "firstName": "Newmarket", "externalContactId": "0035000000PyQulAAF", "addressLine1": "Irish Village", "addressLine2": "Glasgow", "addressLine3": "Test", "city": "Portsmouth", "countryCode": AA, "country": AU, "email": "mbtestuser@newmarket.com", "stateProvince": "AA", "postalCode": "03801", "phoneNumber": "123-123-1234", "phoneExtension": "12", "faxNumber": "123-456-1234", "jobTitle": "VP, Facilities", "title": "PP", "suffix": "PP" } }, "externalCurrency": "USD", "externalMeetingType": "Unknown:Unknown:MeetingTypeC", "isAgencyPrimaryContact": true, "meetingName": "da-getrfpv3-afterfdcfix", "numberOfAtendeesAtLargestEvent": 10, "numberOfEvents": 3, "numberOfNights": 1, "peakRooms": 1, "referenceNumber": "111111", "respondByDate": "2019-04-08T19:06:27.46Z", "startDate": "2019-04-13T19:06:27.46Z", "totalBudget": 1001 }, "messageUrls": [ "/rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message?ids=aaef41ac-6067-e911-80de-005056a15482", "/rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message?ids=abef41ac-6067-e911-80de-005056a15482", "/rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message?ids=02906b29-6267-e911-80de-005056a15482" ], "proposalUrl": "https://my-qa.meetingbroker.com/MeetingBroker/RFP/RFPProposalChoice.aspx?enc=dnmQzjTgUF2uFTeyWoq72t9dJm1W2TXoEGYO8Za4sxGDtvX%2feaINAMS0BTzRA90q", "questions": [ { "questionText": "How Many Cuisines are available?", "isQuestionAnswered": false, "category": "Food Choices", "questionType": "string" }, { "questionText": "How Many Types of Soft Drinks are available?", "isQuestionAnswered": false, "category": "Beverage Choices", "questionType": "string" } ], "releaseDate": "2019-04-03T19:07:31.403Z" "rfpTeamDetail": [ { "assignmentMethod": "SubscriptionAssignment", "businessOwnerRoleType": "Other", "phone": "555-914-8095", "email": "kaarabia@newmarketinc.com", "name": "Aarabia, Karen" }, { "assignmentMethod": "Default", "businessOwnerRoleType": "RfpOwner", "phone": "603-436-7500", "email": "alicia.smith@newmarketinc.com", "name": "Smith, Alicia" }, { "assignmentMethod": "BusinessData", "businessOwnerRoleType": "BusinessOwner", "phone": "603-436-7500", "email": "alicia.smith@newmarketinc.com", "name": "Smith, Alicia" } ], "roomBlock": { "startDate": "2019-04-13T19:06:27.46Z", "alternateStartDates": [ { "date": "2019-04-15T19:06:27.46Z", "rank": 1 } ], "budgetedRoomRate": 501, "comments": "For: New RFP", "roomRequirements": [ { "roomDesignation": "RunOfHouse", "dayNumber": 1, "singleQuantity": 3, "doubleQuantity": 5, "tripleQuantity": 1, "quadQuantity": 1, "comments": "Four rooms of Run of House Room Type are booked for Day 1" }, { "roomDesignation": "RunOfHouse", "dayNumber": 2, "singleQuantity": 2, "doubleQuantity": 2, "tripleQuantity": 2, "quadQuantity": 2, "comments": "Four rooms of Standard Room Type are booked for Day 2" }, { "roomDesignation": "RunOfHouse", "dayNumber": 3, "singleQuantity": 3, "doubleQuantity": 1, "tripleQuantity": 1, "quadQuantity": 1, "comments": "Four rooms of Double_Double Room Type are booked for Day 3" }, { "roomDesignation": "RunOfHouse", "dayNumber": 4, "singleQuantity": 4, "doubleQuantity": 3, "tripleQuantity": 3, "quadQuantity": 3, "comments": "Four rooms of Suite Room Type are booked for Day 4" } ] }, "competingLocations": [ { "name": "QA The Newmarket Plymouth Hotel", "city": "Plymouth", "stateProvince": null, "country": "UNITED STATES" } ], "sender": { "siteId": -1 }, "sites": [], "status": "New" }, "dictionaries": {}, "correlationId": "3c34fb5c-a312-4fd8-8e72-4d80aac3f1a9" }
RFP contract for the top level
The fields and their data type within the RFP response object
RFP
Data Type | Field Name |
Guid | RfpId |
String | ExternalRfpId |
String | Channel |
List<AdditionalInformation> | AdditionalInformation |
String | AttachmentUrl |
EventBlock | EventBlock |
MeetingInfo | MeetingInfo |
List<String> | MessageUrls |
List<Question> | Questions |
DateTime? | ReleaseDate |
RoomBlock | RoomBlock |
Sender | Sender |
List<Site> | Sites |
String | Status |
RFP contracts second level
These are the contracts used within the top level RFP response objectAdditionalInformation
Data Type | Field Name |
AdditionalInfoValueType | Type |
String | Name |
String | Category |
String | Value |
Data Type | Field Name |
List<AlternateStartDate> | AlternateStartDates |
Decimal? | BeverageBudget |
String | Comments |
List<EventRequirement> | EventRequirements |
Decimal? | FoodBudget |
Decimal? | OtherBudget |
Decimal? | RentalBudget |
Decimal? | ResourceBudget |
String | SizeUnitOfMeasure |
DateTime | StartDate |
Decimal? | TotalEventBudget |
Data Type | Field Name |
Profile | AgencyProfile |
List<AlternateStartDate> | AlternateStartDates |
Int32? | CurrencyId |
Int32? | AttendeeQuantity |
List<Commission> | Commissions |
Profile | CompanyProfile |
List<Comment> | MeetingComments |
String | ExternalCurrency |
String | ExternalLeadSource |
String | ExternalMarketSegment |
String | ExternalMeetingType |
bool | IsAgencyPrimaryContact |
String | MeetingName |
String | MeetingSeriesName |
Int32? | NumberOfAtendeesAtLargestEvent |
Int32? | NumberOfEvents |
Int32? | NumberOfNights |
Int32? | PeakRooms |
String | PromotionalCode |
String | ReferenceNumber |
DateTime | RespondByDate |
DateTime | StartDate |
Decimal? | TotalBudget |
Data Type | Field Name |
String | QuestionText |
bool | IsQuestionAnswered |
String | Answer |
Int32? | QuestionId |
String | Category |
String | Section |
Int32? | QuestionType |
List<ResponseChoice> | ResponseChoices |
List<ResponseUnit> | ResponseUnits |
Data Type | Field Name |
DateTime | StartDate |
List<AlternateStartDate> | AlternateStartDates |
Decimal? | BudgetedRoomRate |
String | Comments |
List<RoomRequirement> | RoomRequirements |
Data Type | Field Name |
int? | SiteId |
LocationIdentifier | LocationIdentifier |
String | UserFirstName |
String | UserLastName |
String | UserEmailAddress |
String | ExternalUserName |
Data Type | Field Name |
int? | Siteid |
LocationIdentifier | LocationIdentifier |
bool | AllowsRedirect |
String | ParentType |
bool | SendToParent |
String | SalesUserEmail |
String | SalesUserFirstName |
String | SalesUserLastName |
List<Answer> | Answers |
DateTime | StartDate |
String | Comments |
String | SecondaryExternalRfpId |
ResponseInstructionType | ResponseInstructionType |
bool | AllowResponseInstructionOverride |
RFP contracts third level
These contracts are used within the second level RFP response objectsAlternateStartDate
Data Type | Field Name |
DateTime | Date |
int | Rank |
Data Type | Field Name |
String | AnswerText |
String | QuestionId |
String | SelectedResponseChoices |
String | SelectedResponseUnits |
Data Type | Field Name |
Guid | AttachmentId |
String | FileName |
Guid | MessageId |
String | ContentType |
byte[] | FileData |
Data Type | Field Name |
String | CommentType |
String | Text |
Data Type | Field Name |
Double? | Amount |
DateTime | CommissionedOn |
String | PayableTo |
Data Type | Field Name |
Int32? | DayNumber |
String | StartTime |
String | EndTime |
String | ExternalEventType |
String | ExternalEventSetupType |
String | ExternalEventSetupTypeId |
Int32? | RoomSize |
Int32? | AttendeeQuantity |
Boolean | IsTwentyFourHourHold |
String | Comments |
Data Type | Field Name |
String | LocationId |
LocationIdentifierTypes | LocationIdentifierType |
Data Type | Field Name |
String | CompanyName |
String | AddressLine1 |
String | AddressLine2 |
String | AddressLine3 |
String | Url |
String | PhoneNumber |
String | PhoneExtension |
String | FaxNumber |
String | |
String | CityRegion |
String | StateProvince |
String | PostalCode |
String | ExternalCountry |
String | ExternalSicCode |
List<Commission> | Commissions |
Contact | Contact |
String | ExternalProfileId |
String | IATANumber |
String | DUNSNumber |
Data Type | Field Name |
String | Response |
Boolean | IsSelected |
String | ExternalResponseChoiceId |
Data Type | Field Name |
String | Unit |
Boolean | IsSelected |
String | ExternalResponseUnitId |
Data Type | Field Name |
String | RoomDesignation = "RunOfHouse" |
Int32? | DayNumber |
Int32? | SingleQuantity |
Int32? | DoubleQuantity |
Int32? | TripleQuantity |
Int32? | QuadQuantity |
String | Comments |
Get Messages from MeetingBroker
Note: All the RFP APIs require AHWS authentication. See the authentication guide for details.
To retreive one or more RFP Messages for a specific RFP you use the Message endpoint and pass in the RfpId and one or more messageids on the query string, separated by a comma.
Request URL
https://api.newmarketinc.com/api/mb/rfp/{rfpid}/message?ids={messageId},{messageid}
Here is an example of what the JSON payload returned will look like. There are 3 high level nodes in the reponse:
- Data: Contains Messages which is a list of messages
- Dictionaries: Is not used at this time by this API
- CorrelationId: Is the sessionid for the call
Message response example
The response example contains the collection of messages corresponding to the requested Ids and includes an example of a 404 error where the API could not find one of the sent in messageids.
{ "data": { "messages": [ { "status": 200, "attachmentUrls": [ "rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message/aaef41ac-6067-e911-80de-005056a15482/attachment/5ac301e2-8983-41fc-a1cf-05a1a3331e84", "rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message/aaef41ac-6067-e911-80de-005056a15482/attachment/8ea3fccd-cf6c-40fb-b78e-e41af8b4c4fc" ], "to": "Smith, Alicia", "from": "Chandler, LeeAnn", "subject": "New RFP", "meetingName": "FDC MICE 1", "contactName": "Buffet, Jimmy", "contactCompany": "Buffet", "rfpId": "221d5a57-ca0e-46c1-bf4d-0f8be9569edd", "rfpMessageId": "aaef41ac-6067-e911-80de-005056a15482", "messsageType": "NewRFP" }, { "status": 200, "attachmentUrls": [ "rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message/02906b29-6267-e911-80de-005056a15482/attachment/f29d3537-6e2a-4e9d-97b3-c88c42fbe9b3", "rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message/02906b29-6267-e911-80de-005056a15482/attachment/72708065-cd2f-4d67-8a8a-ce602e741786", "rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message/02906b29-6267-e911-80de-005056a15482/attachment/fe6fef41-839b-4586-851b-2805f885802b" ], "to": "Smith, Alicia", "from": "Chandler, LeeAnn", "subject": "Updated RFP", "meetingName": "FDC MICE 2", "contactName": "Buffet, Jimmy", "contactCompany": "Buffet", "rfpId": "221d5a57-ca0e-46c1-bf4d-0f8be9569edd", "rfpMessageId": "02906b29-6267-e911-80de-005056a15482", "messsageType": "UpdatedRFP" } ], "errors": [ { "status": 404, "code": 6003, "title": "Item/data not found or data does not exist", "detail": "Item/data cannot be found for the item presented in the request.", "source": { "parameter": "rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message/aaef41ac-6067-e911-80de-005056a15484" } } ] } , "dictionaries": {}, "correlationId": "3c34fb5c-a312-4fd8-8e72-4d80aac3f1a9" }
Message response contract
The contract below contains the fields and the data types within the Message
RfpMessage
Data Type | Field Name |
HttpStatusCode | Status |
List<String> | AttachmentUrls |
String | To |
String | From |
String | Subject |
String | MeetingName |
String | ContactName |
String | ContactCompany |
String | Body |
String | FromEmail |
Guid | RfpId |
Guid | RfpMessageId |
String | MesssageType |
Get Attachment from MeetingBroker
Note: All the RFP APIs require AHWS authentication. See the authentication guide for details.
You can retreive a RFP Message Attachment by using the Attachment endpoint. You will need to pass in three ids: the Rfpid and the Messageid the Attachment belongs to along with the Sttachnmentid.
Request URL
https://api.newmarketinc.com/api/mb/rfp/{rfpid}/message/{messageid}/attachment/{attachmentid}
Here is an example of what the JSON payload returned will look like. There are 3 high level nodes in the reponse:
- Data: Contains the Attachment information
- Dictionaries: Is not used at this time by this API
- CorrelationId: Is the sessionid for the call
The response body will contain specific attachment data.
Attachment response example
{ "data": { "attachmentId": "f29d3537-6e2a-4e9d-97b3-c88c42fbe9b3", "fileName": "testfile.txt", "messageId": "02906b29-6267-e911-80de-005056a15482", "contentType": "text/plain", "fileData": "dGVzdCBmaWxl" }, "dictionaries": {}, "correlationId": "3c34fb5c-a312-4fd8-8e72-4d80aac3f1a9" }
Attachment response contract
The contract below contains the fields and the data types within the Attachment
Attachment
Data Type | Field Name |
Guid | AttachmentId |
String | FileName |
Guid | MessageId |
String | ContentType |
byte[] | FileData |
Search for RFPs in MeetingBroker
API: RFP
Type: HTTP GET
To retrieve a list of one or more RFPs from MeetingBroker use this endpoint and pass in search criteria parameters on the query string.
Note: All the RFP APIs require AHWS authentication. See the authentication guide for details.
Request URL
https://api.newmarketinc.com/api/mb/rfp
Request Examples
https://api.newmarketinc.com/api/mb/rfp?mbRfpId=99999 https://api.newmarketinc.com/api/mb/rfp?rfpId=00000000-0000-0000-0000-000000000000 https://api.newmarketinc.com/api/mb/rfp?meetingName=Meeting1 https://api.newmarketinc.com/api/mb/rfp?startDateStartRange=01-01-2019&startDateEndRange=12-01-2019 https://api.newmarketinc.com/api/mb/rfp?createDateStartRange=01-01-2019&createDateEndRange=12-01-2019 https://api.newmarketinc.com/api/mb/rfp?lastModifiedDateStartRange=01-01-2019&lastModifiedDateEndRange=12-01-2019 https://api.newmarketinc.com/api/mb/rfp?locationIdentifierType=LocationCode&locationIds=L1212,L1213 https://api.newmarketinc.com/api/mb/rfp?currentRfpStatus=Proposed,Awarded https://api.newmarketinc.com/api/mb/rfp?rfpHistoricalStatusStartDateRange=01-01-2019&rfpHistoricalStatusEndDateRange=12-01-2019&rfpHistoricalStatusIds=Proposed,Awarded https://api.newmarketinc.com/api/mb/rfp?businessOwners[0].name=John&businessOwners[0].emailAddress=jdow@amadeus.com&businessOwners[0].businessOwnerRoleTypes=BusinessOwner,GlobalAccountOwner https://api.newmarketinc.com/api/mb/rfp?stakeholders[0].contactFirstName=john&stakeholders[0].contactLastName=dow&stakeholders[0].organizationName=TestCompany&stakeholders[0].stakeholderTypes=Company https://api.newmarketinc.com/api/mb/rfp?createDateStartRange=01-01-2019&createDateEndRange=12-01-2019&pageLimit=10&pageOffset=5&countRecords=true https://api.newmarketinc.com/api/mb/rfp?mbRfpId=99999&fields=rfpId
Request Headers
Ocp-Apim-Subscription-Key | String | Subscription key which provides access to this API. |
Authorization | String | OAuth 2.0 access token obtained from Authentication API. |
Request Parameters
A request must include at least one of the query string parameters listed below. In order for an RFP to be returned in the response it needs to meet all of the criteria specified in the request.
mbRfpId | Integer | The MeetingBroker system primary key for an RFP, a max of 1 RFP will be returned when this parameter is specified in the request. |
rfpId | String(Guid) | The MeetingBroker system unique identifier for an RFP, a max of 1 RFP will be returned when this parameter is specified in the request. |
meetingName | String | Returns RFPs where meeting name contains the input string, length must be greater than or equal to 6 characters. |
startDateStartRange | String(DateTime) | Returns RFPs where the start date is greater than or equal to the input date. |
startDateEndRange | String(DateTime) | Returns RFPs where the start date is less than or equal to the input date. |
createdDateStartRange | String(DateTime) | Returns RFPs where the create date is greater than or equal to the input date. |
createdDateEndRange | String(DateTime) | Returns RFPs where the create date is less than or equal to the input date. |
lastModifiedDateStartRange | String(DateTime) | Returns RFPs where the last modified date is greater than or equal to the input date. |
lastModifiedDateEndRange | String(DateTime) | Returns RFPs where the last modified date is less than or equal to the input date. |
locationIdentifierType | String | Used to specify the type of identifiers passed in the locationIds parameter, valid values: 'MeetingBroker', 'External', 'LocationCode', and 'HotelUGI' |
locationIds | String | Used in combination with locationIdentifierType, returns RFPs that have been sent to the locations specified. Specify one value or multiple values in a comma-separated list. |
currentRfpStatus | String | Returns RFPs that have a current status matching any of the values specified. Specify one or more values in a comma-separated list, valid values include: 'Draft', 'Published', 'Viewed', 'TurnedDown', 'Redirected', 'Proposed', 'Awarded', 'SelfAwarded', 'Withdrawn', 'Duplicate', 'Cancelled', 'Definite', 'Complete', 'BusinessLost'. |
rfpHistoricalStatusIds | String | Used in combination with rfpHistoricalStatusStartDateRange and rfpHistoricalStatusEndDateRange. Returns RFPs that have matched any of the status values within the date range specified. Specify one more values in a comma-separated list, valid values include: 'None', 'Draft', 'Published', 'Viewed', 'TurnedDown', 'Redirected', 'Proposed', 'Awarded', 'SelfAwarded', 'Withdrawn', 'Duplicate', 'Cancelled', 'Deleted', 'New', 'Updated'. |
rfpHistoricalStatusStartDateRange | String | Used in combination with rfpHistoricalStatusIds, returns RFPs where the status change date is greater than or equal to the input date. |
rfpHistoricalStatusEndDateRange | String | Used in combination with rfpHistoricalStatusIds, returns RFPs where the status change date is less than or equal to the input date. |
businessOwners[0..n].name | String | Used in combination with emailAddress and businessOwnerRoleTypes, returns RFPs which have assigned business owners matching the specified criteria. |
businessOwners[0..n].emailAddress | String | Used in combination with name and businessOwnerRoleTypes, returns RFPs which have assigned business owners matching the specified criteria. |
businessOwners[0..n].businessOwnerRoleTypes | String | Used in combination with name and emailAddress, returns RFPs which have assigned business owners matching the specified comma-separated list of businessOwnerRoleTypes, valid values include: 'RfpOwner', 'BusinessOwner', 'GlobalAccountOwner', 'GeneralManager', 'DirectorOfSales', 'NationalSalesAdministrator', 'ManagementCompanyAdministrator', 'BrandManager', 'LocalAccountOwner', 'RegionalOwner', 'Other' |
stakeholders[0..n].contactFirstName | String | Used in combination with contactLastName, organizationName, and stakeholderTypes, returns RFPs which have stakeholders matching the specified criteria. |
stakeholders[0..n].contactLastName | String | Used in combination with contactFirstName, organizationName, and stakeholderTypes, returns RFPs which have stakeholders matching the specified criteria. |
stakeholders[0..n].organizationName | String | Used in combination with contactFirstName, contactLastName, and stakeholderTypes, returns RFPs which have stakeholders matching the specified criteria. |
stakeholders[0..n].stakeholderTypes | String | Used in combination with contactFirstName, contactLastName, and organizationName, returns RFPs which have stakeholders matching the specified comma-separated list of stakeholderTypes, valid values include: 'Sender', 'Company', 'Agency' |
countRecords | Boolean | Set this value to "true" to include the total item count in the search results, default is "false". |
pageLimit | Integer | Number of items per page to return in the search results, valid values: 1 - 30, default is 25. |
pageOffset | Integer | Set the page number to include in the search results, value must be greater then zero, default is 1. |
fields | String | A comma-separated list of field names to include in the response, default is all fields defined by the response model. |
Response
The JSON payload returned in the response will contain these high level nodes:
- data: Contains array of RFPs that match the specified search criteria
- dictionaries: Is not used at this time by this API
- correlationId: The session identifier for the call
- meta: Additional data about paging details, ie. current page, page count, total pages, and links to next and/or previous page
Response Example
A call to the API will return a list of one or more RFPs that match each of the requested search criteria parameters. The data returned for each RFP is a summarized view of the RFP, not a complete view.
{ "data": [ { "rfpId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "mbRfpId": 8344143, "externalRfpId": "a0wd00000019nDBAAY", "channel": "StarCite Marketplace", "hasAttachments": true, "locationName": "Denver location", "agencyName": "Agency example", "agencyContactLastName": "Doe", "agencyContactFirstName": "John", "companyName": "Company example", "companyContactLastName": "Doe", "companyContactFirstName": "Paul", "meetingName": "Amadeus meeting", "totalGuestrooms": 102, "totalRevenue": 248064, "averageRate": 2432, "peakRooms": 102, "referenceNumber": 323, "currencyCode": "USD", "releaseDate": "2019-11-14T21:19:17.537Z", "startDate": "2019-11-14T21:19:17.537Z", "primaryRfpOwnerName": "John Doe", "primaryStakeholderContactName": "John Doe", "primaryStakeholderOrganizationName": "Organization example", "publishDate": "2019-11-14T21:19:17.537Z", "publishedBy": "Location example", "milestoneActual": "Awarded", "status": "Awarded", "businessDataStatusType": "Prospect", "self": "/api/mb/rfp/3fa85f64-5717-4562-b3fc-2c963f66afa6" } ], "dictionaries": {}, "correlationId": "3c34fb5c-a312-4fd8-8e72-4d80aac3f1a9", "meta": { "totalCount": 1, "pageSize": 25, "currentPage": 1, "totalPages": 1 } }
Turndown RFP from MeetingBroker
Note: All the RFP APIs require AHWS authentication. See the authentication guide for details.
You can turndown a RFP by using the Turndown endpoint. You will need to pass an Id: RfpGuid
and POST the additional payload data fields as:
- LostBusinessReason: Indicates the reason for turning down the RFP by property.
- Comment: Additional comments presented by the user when turning down the RFP.
API Workflow
The following diagram illustrates the process for the turn down.
- The caller requests the access token.
- The system response contains the token.
- The caller submits a turndown POST request with the access token.
- The system response indicate success or failure.
Request URL
https://api.newmarketinc.com/api/mb/rfp/{rfpid}/turndown
The returned JSON payload contains these high level nodes:
- Data: Contains the turndown information
- Dictionaries: Is not used at this time by this API
- CorrelationId: Is the sessionid for the call
The request and response body contain specific turndown RFP data.
Turndown RFP Request Example
{ "lostBusinessReason": "reason for turning down the RFP by property", "comment": "Additional comments by user while turning down the RFP" }
Turndown Response contract
The contract below contains the fields and the data types within the Turndown
{ "statusCode": 200, "message": "OK" }
Turndown
Data Type | Field Name |
---|---|
guid | rfpId |
int | statusCode |
string | lostBusinessReason |
string | comment |
Overview of Get Proposal
This Proposal endpoint (GET) is a Public REST API that can be utilized to Get Proposals from MeetingBroker. The purpose is to provide channels partners/planners with near real-time proposal data associated with MeetingBroker RFP.
API Workflow
The following diagram illustrates the process for Get Proposal.

- The caller requests the access token.
- The system response contains the token.
- The caller sends a GET request using a valid OAuth2 token and Proposal Guid.
- Amadeus System synchronously replies with Proposal information with 200 ok response.
Note: All the GetProposal API require AHWS authentication. See the authentication guide for details.
Get Proposal Endpoint
You can get Proposals by using this endpoint. You will need to pass a Proposal GUID using a GET operation.
Request URL
https://api.newmarketinc.com/proposal/v1/proposal/{id}
Request Headers
Ocp-Apim-Subscription-Key | String | Subscription key which provides access to this API. |
Authorization | String | Valid access token obtained from Authentication API. |
Request
https://api.newmarketinc.com/proposal/v1/proposal/{id}
Proposals can be accessed by specifying Proposal GUID.
Required Fields
The following fields are required when submitting a request to the endpoint.
Field | Type | Notes |
---|---|---|
ProposalGuid | GUID | This is the Proposal GUID provided by the integrated system and must be a GUID. |
Requirements & Configuration
Models
Below is a guide to the various attributes required to build the data contract for getting a Proposal.
The GetProposal endpoint allows the user to get proposal information from MeetingBroker. The following sections describe the Proposal response returned by the GetProposal endpoint:
- GetProposalResponse - The returned proposal.
- Proposal - Contains all the information about the proposal.
- locationIdentifier - Contains location type information about a location in the proposal.
- GuestRoomBlock - Contains information about guest rooms for the proposal.
- GuestRoomAvailablity - Contains information about the availabilty of guest room.
- GuestRoomOccupancy - Contains information about the occupancy of guest romm block.
- EventBlock - The event block is a list of events and requirements associated with a proposal.
- EventAvailablity - Contains information about the event for proposal.
- Prices - Specific information about a price.
- MeetingInfo - Information about any included meetings,from the number of attendees to the number of events and nights.
- AnnotatedDate - Specific information about a date.
- Comment - Contains name and comment text.
- Message - Contains messages about proposal.
- Attachment - Contains file and information about file.
- Questions - Contains information about any questions in the RFP.
- Answer - Specific information about an answer.
- ResponseChoices - Contains information about ResponseChoice for Question.
- ResponseUnits - Contains information about ResponseUnits for Question
The following sections include further details about each block.
getProposalResponse
Details about the getProposalResponse are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
proposal | Details of the proposal that is sent by the receiver in response to a RFP. | |
messages | List of messages with respect to RFP and proposal. | |
questions | List of Questions with respect to RFP and proposal. |
proposal
Details about the proposal are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
meetingId | External Rfp Id is provided by the RFP creator. It corresponds to the meeting name given by the creator. | ExternalRfpGetProposal |
locationIdentifier | Identifier of the Location for the RFP. Refer locationIdentifier object. | |
rfpStatus | Current status of the RFP(i.e., Drafted, Deleted, New, Updated, Awarded, SelfAwarded, Withdrawn, Cancelled, TurnedDown, Redirected). | New |
guestRoomBlock | Describes all the details of the rooms requested. Refer GuestRoomBlock object. | |
eventBlock | Describes all the details of the events requested. Refer eventBlock object. | |
meetingInfo | This object represnets all the info related to the meeting i.e. being scheduled. | |
rfpId | Identifier of the RFP. | 11111111 |
proposalId | Unique Identifier of the proposal that is related to the RFP. | 22222222 |
sendingUser | Email of the sending user. | john@xyz.com |
sendingLocation | Identifer of the location that redirected the RFP. | 10000003 |
redirectedLocationName | Name of the Location for which the RFP is routed to. | Amadeus-BLR |
redirectedLocationId | Identifier of the Location for which the RFP is routed to. | 10000002 |
assignedUser | Email address to whom the RFP is assigned. | abc@gmail.com |
locationIdentifier
Details about the locationIdentifier are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
locationId | Identifier of the location for the RFP | 50042508 |
locationIdentifierType | Type of LocationId. Limited to External and MeetingBroker. For GetProposal, It is limited to MeetingBroker. | MeetingBroker |
guestRoomBlock
Details about the guestRoomBlock are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
startDate | AlternateStartDate of the meeting specified by the external user. | 2020-06-09T01:58:41.28 |
budgetedRoomRate | The rate that has been proposed for rooms. | 2000 |
commentsText | Comments about GuestRoom. | Not Avaliable |
guestRoomAvailabilities | List all the details related to availablity of guest room Refer GuestRoomAvailabltiy block. |
guestRoomAvailablity
Details about the guestRoomAvailablity are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
dayNumber | Sequential number of the day within the booking. | 1 |
roomTypeName | Name of the Room Type. Limited to : Run_Of_House, Standard, Double_Double, Suite, Complimentary_Run_Of_House, Complimentary_Standard, Complimentary_Double_Double, Complimentary_Suite, External. | Run_Of_House |
guestRoomOccupancies | List details of the GuestRoomOccupancy. Refer GuestRoomOccupancy object. | |
commentsText | Comments about the room availablity. | Rooms are available as requested. |
guestRoomOccupancy
Details about the guestRoomOccupancy are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
name | Name of the GuestRoom. | SinglesAvailable |
roomQuantity | Room Quantity that is available. | 3 |
rate | Rate of the room i.e. is available. | 2500 |
bedQuantity | Quantity of beds needed of each type. | 4 |
occupancy | Occupancy for each room | 3 |
eventBlock
Details about the eventBlock are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
startDate | StartDate of the Event as mentioned by the user. | 2020-06-09T01:58:41.28 |
commentText | Comments about events. | Three events are to be conducted. |
eventAvailabilities | Details regarding the Availablities for the event. Refer EventAvailablity object. | |
prices | Prices for foood, beverage etc requested for event. Refer Prices object. |
eventAvailablity
Details about the eventAvailablity are listed in this section.
Field
|
Description
|
Example of Fieal Description
|
---|---|---|
dayNumber | Within the event block this is the sequential number for any given event. | 2 |
startTime | Start time associated for the event. | 10:00 |
endTime | End time associated with any given event. | 17:30 |
eventTypeName | Event type is a string field and associated with any given event (i.e., General Session, Breakout, Breakfast, Dinner). | General Session |
eventSetupTypeName | It is a string field which indicates the table and chair configuration associated with any given event (i.e., Theater, Conference, Classroom, Rounds of Ten). | Classroom |
roomSize | Size of Room Space needed for your event. | 2500 |
attendeeQuantity | Number of Attendees associated with a given event that will be at a given event. | 125 |
commentsText | Comments about the Event | The event will take place in phases. |
isPrivateRoom | Specifies whether a room is private or not. | TRUE |
isTwentyFourHourHold | Room is on 24 hour hold so that it is not used for any other event before or after the start/end times. | TRUE |
prices
Details about the prices are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
name | Name for Costs quoted for various entities. | Food Cost |
value | Costs quoted for various entities. | 2100 |
meetingInfo
Details about the meetingInfo are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
meetingName | Meeting name given by the external user. | BrightMinds AGM Meet -2020 |
referenceNumber | User-specified reference number provided by the account or third-party agency associated with the booking. | 5748291 |
startDates | List of Start Dates for the booking. Limited to up to 3, Start Date, Alternate Start Date 1, Alternate Start Date 2, ordered by sequence number. See AnnotatedDate object for more information. | |
attendeeQuantity | Number of attendees associated with the business opportunity. | 15 |
respondByDate | Date that customer needs a Response by. | 2020-06-09T01:58:41.28 |
comments | List of Comments for the Meeting. These could be ResponseInstructions or MeetingHistory comments. See Comment Object for more information. | An alternate date within a week is acceptable. |
meetingSeriesName | Name to be used for the RFP series of events. | BrightMinds AGM Meet -2020 |
numberOfEvents | Total number of events for the business data. | 10 |
numberOfNights | Total number of nights for the business data. | 7 |
meetingType | Type of meeting associated with RFP (i.e., conference, wedding, meeting). | Conference |
currency | Currency of the RFP as specified by the account or third-party agency sending the RFP. | INR |
leadSource | Source of RFP (e.g., channel, phone, email, etc.) | |
marketSegment | Market segment associated with RFP (e.g., Corporate, Government, SMERF.) | Corporate |
peakRooms | Number of peak rooms for the business data as specified by the account or third-party agency associated with the booking. | 3 |
numberOfAttendeesAtLargestEvent | Number of attendees at the largest event. | 500 |
promotionalCode | The code associated with a discounted program or event associated with an RFP's target location. | 1 |
annotatedDate
Details about the annotatedDate are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
name | Descriptive name associated with the date specified. | StartDate |
value | Sequence order of the date in a date list. | 2020-06-09T01:58:41.28 |
sequence | Sequence order of the date in a date list. | 1 |
comment
Details about the comment are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
name | Type or Name of the comment. | MeetingHistoryComments |
text | Value for the comment. | Please notify us about Day 1 Meeting Info Prep. |
messages
Details about the messages are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
from | Name of the sender sending the proposal. | Newmarket QA Prod Sandbox GSE Channel |
to | User to whom the proposal is sent. | hanna@gmail.com |
subject | Subject of the message. | BrightMinds AGM Meet -2020 |
meetingName | Name of the meeting for which proposal is sent. | BrightMinds AGM |
contactName | Name of the contact person. | John Peter |
contactCompany | Name of the contact company. | BrightMinds |
body | Content of the message that is sent. | This is the Automation Test text message body for Meeting : TestRfooo Sent using Newmarket.MBTestCenter. |
fromEmail | Email of the user sending the message. | john@gmail.com |
date | Date on which the message is sent. | 2020-06-09T01:58:41.28 |
marketingText | Text used for marketing purpose | |
marketingHtml | HTML for marketing. | |
attachments | Attachments that are attached with the messsage. |
attachment
Details about the attachment are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
fileName | Name of the file that is attached with the attachment. | BrightMindsAGM2020 |
contentType | Type of the content that is being attached. | docx |
fileContent | Content of the file that is being attached. | |
fileData | Data that is being attached. |
questions
Details about the questions are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
questionText | Text for the Question. | How Many Cuisines are available? |
isAnswerRequired | Is an answer required for the Question. | FALSE |
answer | ||
questionId | Unique identifier of the question that was posted. | 1 |
category | Category for the Question. | Food Chocies |
section | Section name for the Question. | Section One |
questionType | Type of Question. Limited to Date, MultiSelect, Numeric, SingleSelect and Text. |
answer
Details about the answer are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
answerText | Contains the answers given for a question. | Cuisine Available :Italian , Indian,Continental. |
selectedResponseChoices | List of ResponseChoices for the Question. Refer ResponseChoice object. | |
selectedResponseUnits | List of ResponseUnits for the Question. Refer ResposneUnit object. |
responseChoice
Details about the responseChoice are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
response | String containing response content. | Mocktail |
externalResponseChoiceId | ID associated with pre-determined answer choices for inbound RFP questions. |
responseUnit
Details about the responseUnit are listed in this section.
Field
|
Description
|
Example
|
---|---|---|
unit | Unit of measurement of response | Litre |
externalResponseUnitId | ID associated with answers for inbound RFP questions. |
Heartbeat for Supply Distribution APIs
Note: All the SupplyMICE APIs require AHWS authentication. See the authentication guide for details. The AHWS authentication user is required to have a Heartbeat Monitoring role in order to access this endpoint.
You can check the availibility of the MICE Api services using the Heartbeat endpoint associated with the microservice.
Request URL
For the Rfp service which includes: Get Rfp, Get Messages, Get Attachment, Search Rfps, Turndown Rfps endpointshttps://api.newmarketinc.com/api/mb/rfp/rfpheartbeatservice/heartbeatFor the Business Data service which includes: Business Data Update
https://api.newmarketinc.com/api/mb/booking/businessdataheartbeatservice/heartbeatFor the Get Proposal service which includes: Get Proposal endpoint
https://api.newmarketinc.com//proposal/proposalheartbeatservice/Health/Heartbeat
Here is an example of what the JSON payload returned will look like
- Data: Contains the Heartbeat information
- CorrelationId: Is the sessionid for the call
The response body will contain basic Heatbeat "Thump. Thump."
Heartbeat response example
{ "data": "Thump. Thump.", "correlationId": "a01b4847-5408-4bd7-8385-27af6e048a1e" }
Errors and Troubleshooting
When you submit a request to the Business Data Update API endpoint with the correct credentials and it passes the required schema validations, an HTTP 200 - OK / 202 success response is returned. Otherwise, there is an error. Inspect the Http Status Code and the request body to determine what failed and how to correct your API call.
Error Response Example
{ "errors": [ { "status": 404, Httpstatus corresponding to this error. "code": 6003, The Amadeus Hospitality error code corresponding to this error. "title": "Item/data not found or data not existing, " "detail": "Item/data cannot be found for the item presented in the request.", "source": { "parameter": "rfp/221d5a57-ca0e-46c1-bf4d-0f8be9569edd/message/aaef41ac-6067-e911-80de-005056a15484" } } ] }
HTTP Status Codes
The following table lists the response codes you may encounter and how to troubleshoot problems.
Code |
|
Troubleshooting |
---|---|---|
200 | Success | The server has successfully processed the request. |
202 | Success | Your request has been successfully processed. |
207 | Success | The server successfully processed the request. The recipient needs to consult the contents of the multi-status response body for further information about the success or failure of the individual resource operations. |
400 | The message body is either missing or could not be understood. | Check to make sure the payload contains the correct datatypes and any required fields are present |
401 | The request did not include the correct authentication. | Token could have timed out. |
403 | The server understood the request but is not able to fulfill because of insufficient permission. |
If your call to the authentication API returns a 403 - Forbidden code, check the error property in the response body to see identify what was not accepted:
|
404 | The requested resource was not found. | |
405 | The requested method is not allowed. | You may have called the endpoint with the incorrect HTTP method such as GET instead of POST or POST instead of PUT. |
409 | The request could not be completed due to a conflict with the current state of the target resource. | |
413 | The requested payload sent is too large (i.e., too many bytes). | |
422 | There are validation failures with the payload. (e.g., status must not be empty). Please check response status for information identifying the field that caused the validation failure. | |
429 | Rate limit is exceeded. | Try again in 60 seconds. |
500 | Internal server error. | Try submitting your request again. |
503 | The service is temporarily unavailable. If the length of the delay is known, a Retry-After header is given. It is recommended that you delay for this interval before sending another request to the service. If no Retry-After is provided, you should handle as a 500 error. | Try submitting your request again. |
Calling OAuth
These calls all use an OAuth token, not a Bearer token.
The most common error status code you will get from the OAuth service is a 403 - Forbidden
.
The error
property in the
response body will tell you what was not accepted.
-
access_denied
means you have an incorrect Username and Password pair. The user might not exist or the password provided was wrong. -
unauthorized_client
means there is incorrect information in theclient_id
andclient_secret
fields. Ensure you are using the correct values that you received from Amadeus Hospitality when you acquired your credentials.
You may also get a 405 - Method Not Allowed
if you called an endpoint with an incorrect HTTP method such as a GET
instead of POST
.
Troubleshooting
Most 500
status codes are temporary, and normal service should return after a few seconds
or minutes. You
should retry a call in these instances.
If you are consistently receiving 500
status codes, you can use information in the
response to help our
Support team track down the error faster. The
response Header will contain the following keys:
- Ni-TrackingId
- Ni-CorrelationId
Rate Limits
What to expect?
There is a Rate Limit across the product as a whole, for any single subscription key being used of
500 calls in 60 seconds. Heartbeat has a limit of 4 calls in 60 seconds.
Once this limit is reached any subsequent calls will be rejected with a status of 429
with the below response body:
{ "statusCode": 429, "message": "Rate limit is exceeded. Try again in 60 seconds." }
Once the provided wait time has been reached, calls will be processed again as normal.