Pricing

This capability provides additional pricing details to many basic endpoints

Add octo/pricing to your OCTO-Capabilities header

This capability will indicate pricing for the requested product dynamically returning product pricing for each day or departure time.

The following endpoints will have pricing details added to them when the octo/pricing capability is added to your requests. In general this includes:

  • Product pricing - as a list of products, or single product

  • Pricing checks - at the time of making an Availability call, we will confirm the price with you. Also handy for performing a price quote.

  • Booking - at the time of making a booking, our system will return pricing details for the booking.

NOTE: we will return pricingFrom for each unit in each available currency.

Product Pricing

GET https://api.zaui.io/octo/suppliers/:sid/products/:id

Returns the product(s) with pricing added to the units

Path Parameters

{
   //rest of the product object
   "units":[{
       //... pricing unit object
      "pricingFrom": [
       {
          "original": 4500,
          "retail": 4500,
          "net": 3500,
          "currency": "USD",
          "currencyPrecision": 2,
          "includedTaxes": [
            {
              "name": "VAT 10",
              "retail": 800,
              "net": 500
            }
          ]
        },
        {
          "original": 4000,
          "retail": 4000,
          "net": 3000,
          "currency": "GBP",
          "currencyPrecision": 2,
          "includedTaxes": [
            {
               "name": "VAT 10",
               "retail": 700,
               "net": 400
            }
          ]
        }       
      ],
    }]
}

Pricing From Field Definitions

Product Object Additions

We have added the following changes to the Product object for pricing:

{
  //rest of the Product Object
  "defaultCurrency": "CAD",
  "availableCurrencies": ["CAD", "EUR", "GBP"],
  "pricingPer": "UNIT" // "UNIT" or "BOOKING"
}

UNIT means pricing is based on each unit as defined in the Product Object. Examples: day tours, transportation, attractions, any price per unit or age band.

BOOKING means pricing is the same regardless of number of units. Examples: charter bookings, group bookings, or ad-hoc pricing where it might be a fix price for the entire product.

Availability Calendar (Price Check)

POST https://api.zaui.io/octo/suppliers/:sid/availability/calendar

Adding pricing to the availability calendar check will return a final quote before reserving the inventory for a booking.

Request Body


// If no Units are passed in

{
    // rest of the Availability response
    "unitPricingFrom": [
        {
            "unitId": "adults_0e064227-c793-426b-857c-2d1fcba62582",
            "original": 4500,
            "retail": 4500,
            "net": 3500,
            "currency": "USD",
            "currencyPrecision": 2,
            "includedTaxes": [
               {
                  "name": "VAT 10",
                  "retail": 800,
                  "net": 500
               }
            ]
        },
        {
            "unitId": "children_ea3b2ef2-a035-45d4-9a65-9f86b779f7df",
            "original": 4200,
            "retail": 4200,
            "net": 3200,
            "currency": "USD",
            "currencyPrecision": 2,
            "includedTaxes": [
                {
                   "name": "VAT 10",
                   "retail": 800,
                   "net": 500
                }
            ]
        }
    ]
}

// If Units are passed in

{
    // rest of the Availability response
    "unitPricingFrom": [
        {
            "unitId": "adults_0e064227-c793-426b-857c-2d1fcba62582",
            "original": 4500,
            "retail": 4500,
            "net": 3500,
            "currency": "USD",
            "currencyPrecision": 2,
            "includedTaxes": [
               {
                  "name": "VAT 10",
                  "retail": 800,
                  "net": 500
               }
            ]
        },
        {
            "unitId": "children_ea3b2ef2-a035-45d4-9a65-9f86b779f7df",
            "original": 4200,
            "retail": 4200,
            "net": 3200,
            "currency": "USD",
            "currencyPrecision": 2,
            "includedTaxes": [
               {
                  "name": "VAT 10",
                  "retail": 800,
                  "net": 500
               }
            ]
        }
    ],
    "pricingFrom":{ // Totals the unit price x units passed in to request
        "original": 4500,
        "retail": 4500,
        "net": 3500, 
        "currency": "USD",
        "currencyPrecision": 2,
        "includedTaxes": [
           {
              "name": "VAT 10",
              "retail": 800,
              "net": 500
           }
        ]
    }
}

Availability pricing (Price Check)

POST https://api.zaui.io/octo/suppliers/:sid/availability/

Adding pricing to the availability check will return a final quote before reserving the inventory for a booking.

Request Body


// If no Units are passed in

{
    // rest of the Availability response
    "unitPricing": [
        {
            "unitId": "adults_0e064227-c793-426b-857c-2d1fcba62582",
            "original": 4500,
            "retail": 4500,
            "net": 3500,
            "currency": "USD",
            "currencyPrecision": 2,
            "includedTaxes": [
               {
                  "name": "VAT 10",
                  "retail": 800,
                  "net": 500
               }
            ]
        },
        {
            "unitId": "children_ea3b2ef2-a035-45d4-9a65-9f86b779f7df",
            "original": 4200,
            "retail": 4200,
            "net": 3200,
            "currency": "USD",
            "currencyPrecision": 2,
            "includedTaxes": [
               {
                  "name": "VAT 10",
                  "retail": 800,
                  "net": 500
               }
            ]
        }
    ]
}

// If Units are passed in

{
    // rest of the Availability response
    "unitPricing": [
        {
            "unitId": "adults_0e064227-c793-426b-857c-2d1fcba62582",
            "original": 4500,
            "retail": 4500,
            "net": 3500,
            "currency": "USD",
            "currencyPrecision": 2,
            "includedTaxes": [
               {
                  "name": "VAT 10",
                  "retail": 800,
                  "net": 500
               }
            ]
        },
        {
            "unitId": "children_ea3b2ef2-a035-45d4-9a65-9f86b779f7df",
            "original": 4200,
            "retail": 4200,
            "net": 3200,
            "currency": "USD",
            "currencyPrecision": 2,
            "includedTaxes": [
               {
                  "name": "VAT 10",
                  "retail": 800,
                  "net": 500
               }
            ]
        }
    ],
    "pricing":{ // Totals the unit price x units passed in to request
        "original": 4500,
        "retail": 4500,
        "net": 3500, 
        "currency": "USD",
        "currencyPrecision": 2,
        "includedTaxes": [
           {
              "name": "VAT 10",
              "retail": 800,
              "net": 500
           }
        ]
    }
}

Use the /octo/suppliers/:id/availability/ call to perform simple price checks.

Booking and pricing

POST https://api.zaui.io/octo/suppliers/:sid/bookings

The booking reservation call

Request Body

{
  //..rest of booking schema
  "pricing": {
    "original": 4500,
    "retail": 4500,
    "net": 3500,
    "currency": "USD",
    "currencyPrecision": 2,
    "includedTaxes": [
       {
          "name": "VAT 10",
          "retail": 800,
          "net": 500
       }
    ]
  }
  //..rest of the booking schema
}

Last updated