Negotiated Rates

Negotiated rates enable you to pass rate access codes for certain stays accommodation to our sources

accommodation_ids
string[]

The accommodation ids this negotiated rate is valid for use with

Example: ["acc_0000AWr2VsUNIF1Vl91xg0"]
display_name
string

The display name of the negotiated rate

Example: "2025 Negotiated Rate"
id
string

The ID of the Negotiated Rate

Example: "nre_0000AvtkNoC81yBytDM9PE"
live_mode
boolean

Whether this negotiated is for live mode. When false, it is for test mode

Example: false
rate_access_code
string

The rate access code to be utilised when using this negotiated rate

Example: "DUFFEL"

Deletes a negotiated rate by its ID.

URL parameters

id
stringrequired

The ID of the Negotiated Rate

Example: "nre_0000AvtkNoC81yBytDM9PE"

Endpoint

DELETE https://api.duffel.com/stays/negotiated_rates/{id}

Request

curl -X DELETE --compressed "https://api.duffel.com/stays/negotiated_rates/{id}" \
-H "Accept-Encoding: gzip" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Duffel-Version: v2" \
-H "Authorization: Bearer <YOUR_ACCESS_TOKEN>"

Response

{
"data": {
"rate_access_code": "DUFFEL",
"live_mode": false,
"id": "nre_0000AvtkNoC81yBytDM9PE",
"display_name": "2025 Negotiated Rate",
"accommodation_ids": [
"acc_0000AWr2VsUNIF1Vl91xg0"
]
}
}

Retrieves a negotiated rate by its ID.

URL parameters

id
stringrequired

The ID of the Negotiated Rate

Example: "nre_0000AvtkNoC81yBytDM9PE"

Endpoint

GET https://api.duffel.com/stays/negotiated_rates/{id}

Request

curl -X GET --compressed "https://api.duffel.com/stays/negotiated_rates/{id}" \
-H "Accept-Encoding: gzip" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Duffel-Version: v2" \
-H "Authorization: Bearer <YOUR_ACCESS_TOKEN>"

Response

{
"data": {
"rate_access_code": "DUFFEL",
"live_mode": false,
"id": "nre_0000AvtkNoC81yBytDM9PE",
"display_name": "2025 Negotiated Rate",
"accommodation_ids": [
"acc_0000AWr2VsUNIF1Vl91xg0"
]
}
}

Update a negotiated rate with the given parameters. Only the display name and the list of accommodation_ids can be modified.

URL parameters

id
stringrequired

The ID of the Negotiated Rate

Example: "nre_0000AvtkNoC81yBytDM9PE"

Body parameters

accommodation_ids
string[]required

The accommodation ids this negotiated rate is valid for use with

Example: ["acc_0000AWr2VsUNIF1Vl91xg0"]
display_name
stringrequired

The display name of the negotiated rate

Example: "2025 Negotiated Rate"

Endpoint

PATCH https://api.duffel.com/stays/negotiated_rates/{id}

Request

curl -X PATCH --compressed "https://api.duffel.com/stays/negotiated_rates/{id}" \
-H "Accept-Encoding: gzip" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Duffel-Version: v2" \
-H "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
-d '{
"data": {
"display_name": "2025 Negotiated Rate",
"accommodation_ids": [
"acc_0000AWr2VsUNIF1Vl91xg0"
]
}
}'

Response

{
"data": {
"rate_access_code": "DUFFEL",
"live_mode": false,
"id": "nre_0000AvtkNoC81yBytDM9PE",
"display_name": "2025 Negotiated Rate",
"accommodation_ids": [
"acc_0000AWr2VsUNIF1Vl91xg0"
]
}
}

Lists negotiated rates made for your organisation. Returns a list of Negotiated Rates.

Query parameters

after
string

A cursor pointing to the previous page of records. For more information on how to paginate through records, see the Pagination section.

Example: "g2wAAAACbQAAABBBZXJvbWlzdC1LaGFya2l2bQAAAB="
before
string

A cursor pointing to the next page of records. For more information on how to paginate through records, see the Pagination section.

Example: "g2wAAAACbQAAABBBZXJvbWlzdC1LaGFya2l2bQAAAB="
limit
integer

The maximum number of records to return per page. Defaults to 50. May be set to any integer between 1 and 200. For more information on how to paginate through records, see the Pagination section.

Example: 1
Default value: 50

Endpoint

GET https://api.duffel.com/stays/negotiated_rates

Request

curl -X GET --compressed "https://api.duffel.com/stays/negotiated_rates?after=g2wAAAACbQAAABBBZXJvbWlzdC1LaGFya2l2bQAAAB=&before=g2wAAAACbQAAABBBZXJvbWlzdC1LaGFya2l2bQAAAB=&limit=1" \
-H "Accept-Encoding: gzip" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Duffel-Version: v2" \
-H "Authorization: Bearer <YOUR_ACCESS_TOKEN>"

Response

{
"meta": {
"limit": 50,
"after": "g2wAAAACbQAAABBBZXJvbWlzdC1LaGFya2l2bQAAAB="
},
"data": [
{
"rate_access_code": "DUFFEL",
"live_mode": false,
"id": "nre_0000AvtkNoC81yBytDM9PE",
"display_name": "2025 Negotiated Rate",
"accommodation_ids": [
"acc_0000AWr2VsUNIF1Vl91xg0"
]
}
]
}

To create a negotiated rate you need to provide the rate access code(RAC), the display name, and list of accommodation IDs the RAC has been loaded for.

Body parameters

accommodation_ids
string[]required

The accommodation ids this negotiated rate is valid for use with

Example: ["acc_0000AWr2VsUNIF1Vl91xg0"]
display_name
stringrequired

The display name of the negotiated rate

Example: "2025 Negotiated Rate"
rate_access_code
stringrequired

The rate access code to be utilised when using this negotiated rate

Example: "DUFFEL"

Endpoint

POST https://api.duffel.com/stays/negotiated_rates

Request

curl -X POST --compressed "https://api.duffel.com/stays/negotiated_rates" \
-H "Accept-Encoding: gzip" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Duffel-Version: v2" \
-H "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
-d '{
"data": {
"rate_access_code": "DUFFEL",
"display_name": "2025 Negotiated Rate",
"accommodation_ids": [
"acc_0000AWr2VsUNIF1Vl91xg0"
]
}
}'

Response

{
"data": {
"rate_access_code": "DUFFEL",
"live_mode": false,
"id": "nre_0000AvtkNoC81yBytDM9PE",
"display_name": "2025 Negotiated Rate",
"accommodation_ids": [
"acc_0000AWr2VsUNIF1Vl91xg0"
]
}
}