Vervotech
  1. Hotel Mapping
Vervotech
  • Hotel Mapping
    • Getting Started
    • Access & Onboarding with Vervotech
    • Explore your providers
    • Integration and Go Live
    • Map Providers Content
    • Webhook
    • References
    • FAQ
    • Metadata Content
      • Get Master Hotel Facilities
      • Get Master Hotel Chains
      • Get Master Hotel Brands
      • Get Master Property Types
      • Get All Master Countries
      • Get All Vervotech Ids
    • Mappings
      • Get Mappings
      • Get New Mappings
      • Get Updated Mappings
      • Get Deleted Mappings
      • Get Mapping Statistics
      • Export Mappings File
      • Get Hotel count for new, updated and deleted.
      • Get Provider Hotel Mappings by ProviderId
      • Get Provider Hotel Mappings By VervotechId
    • Curated Content
      • Get Curated Content By Provider Hotel Ids
      • Get Curated Content By Vervotech Ids
    • Provider Content
      • Get Unmapped Provider Hotels
      • Get Unmapped Provider Hotels V2
      • Create Unmapped Provider Hotels File
      • Get All Provider names
      • Get Provider Content By Provider Hotel Ids
      • Get Provider Content By Vervotech Ids
    • Location Content
      • Get Location By ID
      • Get All Locations
    • Operational APIs
      • Review Mappings of Booked Hotels By File
      • Review Mappings of Booked Hotels
      • Start Mapping By Ftp Folder
      • Get Mappings History By RunId
    • Dynamic Mapping APIs
      • Find Match
    • Dual Mapping APIs
      • Overview
      • Get Mappings by Provider Hotel Id.
      • Get Mappings with content by Provider Hotel Id.
      • Get summary for your dual mapping APIs
  • Room Mapping
    • Getting Started
    • File Based Room Mapping (Offline)
    • References
    • FAQ
    • Mapping API
      • Map Rooms
      • Get Master Room Amenities
      • Get Master Room Attributes
      • Get Provider Names
      • Get All Provider Names
    • Async Room Mapping API
      • Get Async Room Mapping API Response
      • Map Large Rooms Async
    • Board Basis Mappings
      • Get All Master Board Basis
      • Map Board Basis API
  • Schemas
    • Schemas
    • Response
      • GetMasterHotelBrandsResponse
      • GetMasterPropertyTypesResponse
      • GetMasterCountriesResponse
      • FacilityGroupFixtures
      • GetMasterHotelChainsResponse
    • HotelContent
    • GetHotelsByLocationIdRes
    • RoomMappingBody
    • Unica.Core.Contracts.Location.MasterLocationListRes
    • GetMasterHotelBrandsResponse1
    • CuratedHotels
    • GetHotelsByPolygonRes
    • RoomMappingBody2
    • Unica.Core.Contracts.Location.MasterLocationRes
    • GetMasterPropertyTypesResponse2
    • CuratedHotelsWithLocationContent
    • GetMappingsCountRes
    • KeyValue
    • Unica.Core.Contracts.Models.Airport
    • GetMasterCountriesResponse3
    • ReviewHotels
    • Unica.Core.Contracts.Models.ApiResponse
    • FacilityGroupFixtures4
    • ProviderMappingsStats
    • ProviderFacility
    • Unica.Core.Contracts.Models.Bed
    • GetMasterHotelChainsResponse5
    • MappingsStats
    • Unica.Core.Contracts.Models.Billing.AccountUsageBalance
    • ReviewMappingsofBookedHotelsRequest
    • ProviderRoomContent
    • Unica.Core.Contracts.Models.Billing.BillingEntry
    • LocationByPolygonRequest
    • RoomMappingRequest
    • Unica.Core.Contracts.Models.Billing.BilllingHistory
    • ProviderHotelIdentifiers
    • GenericResponse
    • Unica.Core.Contracts.Models.Billing.UsageBalanceDetails
    • ProviderHotelIdentifier
    • GetUnmappedHotelsResponse
    • GetMasterRoomAmenitiesResponse
    • Unica.Core.Contracts.Models.ConnectedLocation
    • GetMasterHotelChainsResponse
    • GetUnmappedHotelsV2Response
    • GetMasterRoomAttributesResponse
    • Unica.Core.Contracts.Models.DownloadStats
    • HotelChains
    • GetProviderContentResponse
    • MappedRoomRate
    • Unica.Core.Contracts.Models.DownloadStatsStatus
    • HotelMapping
    • GetProviderContentByHotelIdsResponse
    • RoomMappingResponse2
    • Unica.Core.Contracts.Models.Facility
    • HotelProviderIdentifier
    • GetCuratedContentResponse
    • ErrorResponse
    • Unica.Core.Contracts.Models.GetAllCountriesResV3
    • AsyncRoomMappingResponse
    • Bed
    • GetUpdatedCuratedContentResponse
    • Unica.Core.Contracts.Models.GetAllHotelBrandsRes
    • Status
    • GetMappingStatisticsResponse
    • Unica.Core.Contracts.Models.GetAllHotelChainsRes
    • Message
    • ReviewMappingsofBookedHotelsResponse
    • Unica.Core.Contracts.Models.GetAllMasterTagsResV3
    • StatusCode
    • GetProviderMappingResponse
    • Unica.Core.Contracts.Models.GetAllPropertyTypesRes
    • FacilityGroupFixtures
    • GetProviderMappingByProviderResponse
    • Unica.Core.Contracts.Models.GetMappingHistoryReq
    • GuestReview
    • GetMappingHistoryByRunIdResponse
    • Unica.Core.Contracts.Models.GetMappingsCountRes
    • CategoryRating
    • GetProviderNamesResponse
    • Unica.Core.Contracts.Models.GetProviderMappingStatsRS
    • Facility
    • GetProviderHotelIdsByVervotechIdResponse
    • Unica.Core.Contracts.Models.HotelsAPI.HotelContentField
    • GetMasterHotelBrandsResponse2
    • NearByLocation
    • GetAllVervotechIdsResponse
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.CreateUnmappedProviderHotelsFileReq
    • GetMasterPropertyTypesResponse3
    • TrainStations
    • StartMappingByFtpFolderResponse
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.CuratedHotelWithLocationMapping
    • GetMasterCountriesResponse4
    • PointOfInterests
    • PropertyContent400Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetCuratedContentByVervotechIdsReq
    • FacilityGroupFixtures5
    • ConnectedLocations
    • PropertyContent404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetCuratedContentWithLocationRes
    • GetMasterHotelChainsResponse6
    • Neighbourhoods
    • HotelChain404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMappingByProviderRes
    • Stadiums
    • MasterCountry404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMappingsRes
    • LocationMapping
    • BucketFolderNotFound
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetMasterFacilityGroups
    • GetMasterHotelBrandsResponse
    • ProviderNames404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetOSMLocationsRQ
    • HotelBrands
    • PropertyType404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentByProviderIdsReq
    • GetMasterPropertyTypesResponse
    • Error401
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentByVervotechIdsReq
    • PropertyTypes
    • Error403
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetProviderContentRes
    • GetMasterCountriesResponse
    • Error426
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsReq
    • Countries
    • Error500
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsRes
    • Room
    • Error503
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsV2Req
    • Locations
    • Facility404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUnmappedProviderHotelsV2Res
    • ResumeKey
    • TotalHotelsCount404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetUpdatedCuratedContentRes
    • Error
    • LocationsRS
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.GetVervotechIdsRes
    • UnmappedHotelContent
    • Location404Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.HotelProviderIdentifierV3
    • HotelsByLocationIdRes
    • Location400Error
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.MasterFacilityGroups
    • Tag
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderHotelIdsRes
    • schema1
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderHotelMappings
    • schema2
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMapping
    • schema3
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMappingRes
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ProviderMappingType
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.ReviewBookedHotelsReq
    • Unica.Core.Contracts.Models.HotelsAPI.HotelMappingV3.StartMappingByFtpFolderRes
    • Unica.Core.Contracts.Models.Image
    • Unica.Core.Contracts.Models.ImageSize
    • Unica.Core.Contracts.Models.KeyValue
    • Unica.Core.Contracts.Models.Link
    • Unica.Core.Contracts.Models.MappingStats
    • Unica.Core.Contracts.Models.MappingStatsRes
    • Unica.Core.Contracts.Models.MasterChain.HotelBrand
    • Unica.Core.Contracts.Models.MasterChain.HotelChain
    • Unica.Core.Contracts.Models.MasterLocation.LocationMappingRes
    • Unica.Core.Contracts.Models.MasterTags.Tags
    • Unica.Core.Contracts.Models.Neighbourhood
    • Unica.Core.Contracts.Models.PoI
    • Unica.Core.Contracts.Models.ProviderHotelHistory
    • Unica.Core.Contracts.Models.ProviderHotelHistoryRes
    • Unica.Core.Contracts.Models.ProviderHotelIdentifier
    • Unica.Core.Contracts.Models.ProviderMappingStats
    • Unica.Core.Contracts.Models.RawMapHotel
    • Unica.Core.Contracts.Models.Room
    • Unica.Core.Contracts.Models.RoomArea
    • Unica.Core.Contracts.Models.Stadium
    • Unica.Core.Contracts.Models.TrainStation
    • Unica.Core.Contracts.Models.VerifyMapping
    • Unica.DataContracts.Common.Address
    • Unica.DataContracts.Common.Bed
    • Unica.DataContracts.Common.CategoryRating
    • Unica.DataContracts.Common.CheckinInfo
    • Unica.DataContracts.Common.CheckoutInfo
    • Unica.DataContracts.Common.Contact
    • Unica.DataContracts.Common.Description
    • Unica.DataContracts.Common.DistanceUnit
    • Unica.DataContracts.Common.Facility
    • Unica.DataContracts.Common.Fee
    • Unica.DataContracts.Common.FeeType
    • Unica.DataContracts.Common.GeoCode
    • Unica.DataContracts.Common.GuestReview
    • Unica.DataContracts.Common.Image
    • Unica.DataContracts.Common.ImageSize
    • Unica.DataContracts.Common.KeyValue
    • Unica.DataContracts.Common.Link
    • Unica.DataContracts.Common.PointOfInterest
    • Unica.DataContracts.Common.Policy
    • Unica.DataContracts.Common.ReviewDistribution
    • Unica.DataContracts.Common.Room
    • Unica.DataContracts.Common.RoomArea
    • Unica.DataContracts.Common.Statistics
    • Unica.DataContracts.Common.UserReview
    • Unica.DataContracts.HotelMappingV3.DTORawMapHotel
    • Unica.DataContracts.HotelMappingV3.ProviderHotel
    • Unica.DataContracts.MasterLocation.MasterLocation
    • Unica.Host.Web.Controllers.GetProviderNamesRes
    • Unica.Services.CoreService.Models.GetProviderMappingMappingRq
    • Unica.Services.CoreService.Models.HotelMappingReq
  1. Hotel Mapping

Webhook

Webhook Integration Guide#

Webhooks are HTTP callbacks triggered by specific events in our system. They provide real-time updates for mappings, enabling seamless communication and data sharing between systems.

Key Features:#

Real-Time Notifications: Immediate data transfer upon event occurrence.
Secure Delivery: Includes authentication for added security.
Retry Mechanism: Ensures reliable delivery with retries for failed attempts.

Webhook Lifecycle:#

Event Trigger: An action occurs in the system (e.g., hotel mapping creation, update, or deletion).
Payload Generation: A JSON payload containing relevant details is created.
Delivery: The payload is sent to the registered endpoint configured for webhook clients.
Acknowledgment: The endpoint responds with a 200 OK status to confirm receipt.

Configuration Steps:#

Step 1: Create an API to receive updates triggered by mapping updates.
Step 2: To enable a webhook in your account, contact support@vervotech.com and share your API details as mentioned in Step 3.
Step 3: Configure a Webhook:
Fields:
Target URL: The URL to which payloads will be sent.
Authentication Headers: Required headers in key-value pair format.

Payload Details:#

Example Payload:#

Sample Request Headers: It could be any authentication headers.
ApiKey: "Your-ApiKey"
AccountId: "Your-AccountId"
Request:
JSON Payload
     "ProviderMapping": {
       "VervotechId": 12345,
       "ProviderHotelId": "PROV123",
       "ProviderName": "Provider A",
       "ChannelIds": ["CH1", "CH2"],
       "ModifiedOn": "2024-06-18T10:30:00Z",
       "ProviderLocationCode": "LOC123",
       "Type": "New"
      }
    }

Retry Policy:#

Max Retries: 3
Condition: Retry on failed API calls.
Sample API Code Snippet:
Method: POST
URL: /PushMapping
Code Snippet (C#):
        [HttpPost("PushMapping")]
        public async Task<IActionResult> PushMapping([FromBody] ProviderMapping pushMappingRequest)
        {
            string accountId = (RequestContext.OnGoing as UnicaApiCallContext).AccountId;
            try
            {
                var mapping = ParseProviderMapping(accountId, pushMappingRequest);
                bool status = await _hotelMappingProvider.SavePushMappingsAsync(accountId, mapping);

                if (status)
                {
                    _logger.Information($"[PushMapping] Mapping saved for {pushMappingRequest.VervotechId}-{pushMappingRequest.ProviderHotelId}{pushMappingRequest.ProviderName}");
                }
            }
            catch (System.Exception ex)
            {
                _logger.Fatal(ex, ex.Message + " - " + JsonConvert.SerializeObject(pushMappingRequest));
            }

            return Ok(new ApiResponse()
            {
                Status = true,
                Message = $"Mapping is saved successfully in {accountId}",
                StatusCode = 200
            });
        }
ClassDefinitions:
ProviderMapping:
VervotechId: int
ProviderHotelId: string
ProviderName: string
ChannelIds: List
ModifiedOn: DateTime
ProviderLocationCode: string
Type: string
Type:
New
Update
Delete
ApiResponse:
Status: boolean
Message: string
StatusCode: int
Previous
Map Providers Content
Next
References
Built with