TMCs Corporate Codes
Modified on: 2025-07-28 16:33
As part of our design update, the screenshots are currently being revised.
TABLE OF CONTENTS
Introduction
Travel Management Companies (TMCs) work with corporate clients who have pre-negotiated rates with hotel suppliers. Each corporation has its own unique corporate code in the TMC system, while each hotel supplier maintains its own identifier for the same corporate agreement. Normally, TMCs have one Corporate Code per corporation used across different suppliers, whereas each supplier has its own Corporate Code per corporation.
In order to address corporate travel distribution with efficiency and granularity, Go has developed to support receiving Corporate Codes from the TMCs and translate those codes to the supplier Corporate Codes so as to retrieve the rates associated with that code. That is, when a TMC requests rates using their corporate client’s code, Go will accurately map it to the corresponding supplier’s corporate code. In doing so, Go will provide a seamless booking experience for TMCs without requiring them to manage multiple supplier-specific codes, as well as reducing booking errors and frustration.
Operations
The solution offered by Go focuses on the mapping between TMC clients' corporate codes and supplier-specific corporate codes, which will add value to TMCs by simplifying their integration with multiple suppliers through a single, unified mapping layer managed on Go Console.
- Make sure you are on v.4.9.8 or above. Otherwise upgrade is required.
- Make sure you have set up the mappings in advance.
- The mappings should be provided in the spreadsheet in collaboration with the supplier side. Ensure it is 1:1 mapping without duplicates or errors.
- Contact DerbySoft Support to get it imported into the system. Mapping Table Template as follows:
Distributor ID Distributor Corp Name Supplier ID Supplier Corp Name Distributor Corp Code Supplier Corp Code Supplier Rate Plan ID
- When you do a Shop ARI request with @corpCodes
- Go will verify the mapping table to find the corresponding supplier corporate code and translate Distributors' corp codes to the supplier’s corp codes, then send them to suppliers.
- Specify the value of @onlyExactMatch as true if you want only the rate plans allocated to the corpCode to be returned to you.
- @isLoyaltyEligible and @commission will be returned to you as long as Supplier returns.
- Refer to the Shop API Specification.
Request Sample snippet
{ "header": { "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "hotels": [ { "supplierId": "HILTON", "hotelId": "GATHI", "status": "Actived", "isAfterPromotion": false, "promoteCode": "string", "onlyExactMatch": false, "corpCodes": [ "CORPA", "CORPB" ] } ],
Response Sample Snippet
{ "header": { "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "stayRange": { "checkin": "2018-01-01", "checkout": "2018-01-04" }, "iata": "string", "availHotels": [ { "supplierId": "HILTON", "hotelId": "GATHI", "status": "Actived", "stayRange": { "checkin": "2018-01-01", "checkout": "2018-01-04" }, "iata": "string", "availRoomRates": [ { "roomId": "K1D", "rateId": "ODAD01", "corpCodes": [ "CORPA", "CORPB" ], "isLoyaltyEligible": true, "commission": { "value": 10, "type": "Percent" },
- When you make a Live Check request with @corpCodes,
- Regardless Distributors Live Check at the Hotel or at the Product level(identify roomId or rateId through the productCandidate node), Go will verify the mapping table to find the corresponding supplier corporate code and translate Distributors corp codes to Hotel Supplier’s corp codes, then send to the Supplier side.
- Specify the value of @onlyExactMatch as true if you want only the rate plans allocated to the corpCode to be returned to you.
- @isLoyaltyEligible and @commission will be returned to you as long as Supplier returns.
- Refer to the Live Check API Specification.
Request Sample Snippet
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "hotelId": "GATHI", "stayRange": { "checkin": "2018-01-01", "checkout": "2018-01-04" }, "roomCriteria": { "roomCount": 2, "adultCount": 1, "childCount": 2, "childAges": [ 4, 8 ] }, "productCandidate": { "roomId": "K1D", "rateId": "ODAD01" }, "onlyExactMatch": false, "corpCodes": [ "CORPA", ], "iata": "string", "loyaltyAccount": { "programCode": "BW", "accountId": "1234567890123457" }, "corpAccount": { "corpProgramCode": "CR", "corpId": "A-1232" }, "isAfterPromotion": false, "promoteCode": "string", "bookingChannel": "string", }
Response Sample Snippet
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "hotelId": "GATHI", "stayRange": { "checkin": "2018-01-01", "checkout": "2018-01-04" }, "roomCriteria": { "roomCount": 2, "adultCount": 1, "childCount": 2, "childAges": [ 4, 8 ] }, "productCandidate": { "roomId": "K1D", "rateId": "ODAD01" }, "iata": "string", "roomRates": [ { "inventory": 2, "isAfterPromotion": true, "promoteCode": "discount001", "roomId": "K1D", "roomName": "Double Room", "roomDescription": "Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.", "rateId": "ODAD01", "rateName": "Standard Rate", "rateDescription": "Standard Rate Includes Breakfast", "connectionType": "Standard", "corpCodes": [ "CORPA", ], "isLoyaltyEligible": true, "commission": { "value": 10, "type": "Percent" },
- @corpcode is supported to be passed in the request of BookingUSB PreBook request.
Request Sample snippet
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "reservationIds": { "distributorResId": "C2084DFL0" }, "iata": "string", "hotelId": "GATHI", "stayRange": { "checkin": "2018-01-01", "checkout": "2018-01-04" }, "contactPerson": { "firstName": "Thomas", "lastName": "Hintz", "email": "Thomas.Hintz@yahoo.com", "phone": "260-975-4091", "address": "3946 Freddy Locks" }, "roomCriteria": { "roomCount": 1, "adultCount": 2, "childCount": 1, "childAges": [ 5 ] }, "total": { "amountBeforeTax": 640, "amountAfterTax": 700 }, "payment": { "cardType": "CC", "cardCode": "VI", "cardNumber": "4111111111111111", "cardHolderName": "Sherlock Holmes", "expireDate": "0119", "securityCode": "123", "vccEffectiveDate": "2018-01-01", "vccInvalidDate": "2018-01-02", "vccAmountOnCard": 502.19, "vccCurrency": "USD" }, "loyaltyAccount": { "programCode": "BW", "accountId": "1234567890123457" }, "corpAccount": { "corpProgramCode": "CR", "corpId": "A-1232" }, "promoteCode": "string", "corpCode": "D_XXX", }
- @corpcode is supported to be passed in the request of BookingUSB Book request.
Request Sample snippet
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "reservationIds": { "distributorResId": "C2084DFL0" }, "iata": "string", "hotelId": "GATHI", "stayRange": { "checkin": "2018-01-01", "checkout": "2018-01-04" }, "contactPerson": { "firstName": "Thomas", "lastName": "Hintz", "email": "Thomas.Hintz@yahoo.com", "phone": "260-975-4091", "address": "3946 Freddy Locks" }, "roomCriteria": { "roomCount": 1, "adultCount": 2, "childCount": 1, "childAges": [ 5 ] }, "total": { "amountBeforeTax": 640, "amountAfterTax": 700 }, "payment": { "cardType": "CC", "cardCode": "VI", "cardNumber": "4111111111111111", "cardHolderName": "Sherlock Holmes", "expireDate": "0119", "securityCode": "123", "vccEffectiveDate": "2018-01-01", "vccInvalidDate": "2018-01-02", "vccAmountOnCard": 502.19, "vccCurrency": "USD" }, "loyaltyAccount": { "programCode": "BW", "accountId": "1234567890123457" }, "corpAccount": { "corpProgramCode": "CR", "corpId": "A-1232" }, "promoteCode": "string", "bookingChannel": "string", "corpCode": "D_XXX", "bookingToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", }
- @corpcode is supported to be passed in the request of BookingUSB Modify request.
Request Sample snippet
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "reservationIds": { "distributorResId": "C2084DFL0", "derbyResId": "D15F893D34DF", "supplierResId": "89389494" }, "iata": "string", "hotelId": "GATHI", "stayRange": { "checkin": "2018-01-01", "checkout": "2018-01-04" }, "contactPerson": { "firstName": "Thomas", "lastName": "Hintz", "email": "Thomas.Hintz@yahoo.com", "phone": "260-975-4091", "address": "3946 Freddy Locks" }, "roomCriteria": { "roomCount": 1, "adultCount": 2, "childCount": 1, "childAges": [ 5 ] }, "total": { "amountBeforeTax": 640, "amountAfterTax": 700 }, "payment": { "cardType": "CC", "cardCode": "VI", "cardNumber": "4111111111111111", "cardHolderName": "Sherlock Holmes", "expireDate": "0119", "securityCode": "123", "vccEffectiveDate": "2018-01-01", "vccInvalidDate": "2018-01-02", "vccAmountOnCard": 502.19, "vccCurrency": "USD" }, "loyaltyAccount": { "programCode": "BW", "accountId": "1234567890123457" }, "corpAccount": { "corpProgramCode": "CR", "corpId": "A-1232" }, "promoteCode": "string", "corpCode": "D_XXX", }
- When you make a query reservation detail request, @corpCode will be returned to you as the same value passed during the booking.
Notes:
- TMCs/Distributors can still utilize @corpAccount in LiveCheck, PreBook, Book, and Modify requests if they can make use of suppliers' corp code; then @corpAccount will be returned when they make a query reservation detail request.
- If both @corpCodes and @corpAccount are passed in the request, only @corpCodes will be taken, so as to return this corpCode when you query the reservation detail.
- When you make a Prebook/Book call with @corpCodes, on behalf, Go would do a Live Check to Supplier along with your corp codes converted to supplier corp codes to avoid reservation failure.
- If @onlyExactMatch parameter is sent without corpCodes, then it will be ignored.
Did you find it helpful? Yes No
Send feedback