TENANT API · V1
Create a quote Customer, traveler/product/service items, determination references returns frozen pricing snapshot.
POST /api/v1/tenant/quotes
Authorization Use a server-side API key with the listed grants and permitted resource access.
Request body
customerIdstring · required Opaque resource identifier. Treat this value as a string. itemsarray · required The items values for this request.Show item fields travelerIdstring · required Opaque resource identifier. Treat this value as a string.
determinationIdstring · required Opaque resource identifier. Treat this value as a string.
productIdstring · required Opaque resource identifier. Treat this value as a string.
serviceLevelstring · required An available service level for the selected product.
travelStartDatestring · required Calendar date in YYYY-MM-DD format.
travelEndDatestring · required Calendar date in YYYY-MM-DD format. Response 201 Created
Returns the authorized resource or result for this operation. List results use items, nextCursor, and hasMore.
Errors Authentication failures return 401 or 403. Inaccessible resources return 404. Business and idempotency conflicts return 409. Rate limits return 429 with retry guidance.
Error handling guide REQUEST API key
curl --request POST 'https://api.wincora.com/api/v1/tenant/quotes' \
--header 'X-Api-Key: YOUR_API_KEY' \
--header 'Idempotency-Key: request-example-001' \
--header 'Content-Type: application/json' \
--data '{
"customerId": "cus_example",
"items": [
{
"travelerId": "trav_example",
"determinationId": "det_example",
"productId": "prod_example",
"serviceLevel": "standard"
}
],
"travelStartDate": "2026-11-10",
"travelEndDate": "2026-11-20"
}' const response = await fetch ( 'https://api.wincora.com/api/v1/tenant/quotes' , {
method: 'POST' ,
headers: {
"X-Api-Key" : process.env. WINCORA_API_KEY ,
"Idempotency-Key" : "request-example-001" ,
"Content-Type" : "application/json"
},
body: JSON . stringify ({
"customerId" : "cus_example" ,
"items" : [
{
"travelerId" : "trav_example" ,
"determinationId" : "det_example" ,
"productId" : "prod_example" ,
"serviceLevel" : "standard"
}
],
"travelStartDate" : "2026-11-10" ,
"travelEndDate" : "2026-11-20"
})
});
if ( ! response.ok) throw new Error ( await response. text ());
const result = await response. json (); import os
import requests
response = requests.request(
'POST' ,
'https://api.wincora.com/api/v1/tenant/quotes' ,
headers = {
"X-Api-Key" : os.environ[ "WINCORA_API_KEY" ],
"Idempotency-Key" : "request-example-001" ,
"Content-Type" : "application/json"
},
json = {
"customerId" : "cus_example" ,
"items" : [
{
"travelerId" : "trav_example" ,
"determinationId" : "det_example" ,
"productId" : "prod_example" ,
"serviceLevel" : "standard"
}
],
"travelStartDate" : "2026-11-10" ,
"travelEndDate" : "2026-11-20"
},
timeout = 30 ,
)
response.raise_for_status()
result = response.json() Keep this API key on your server. Never embed it in browser or mobile code.