Skip to content

Get quote

GET/quotes/{proposalNumber}

Business Automation API · Quotes

Get quote details by proposal number.

Required permissionsfdc-quotes:read

Parameters

Name In Type Required Description
proposalNumber path string Yes Quote proposal number.
X-Distributor-ID header string Yes Distributor ID.

Request samples

curl -X GET "https://api.central.sophos.com/business-automation/v1/quotes/<proposalNumber>" -H "Authorization: Bearer <access-token>" -H "X-Distributor-ID: <X-Distributor-ID>"

import requests

response = requests.get(
    "https://api.central.sophos.com/business-automation/v1/quotes/<proposalNumber>",
    headers={
        "Authorization": "Bearer <access-token>",
        "X-Distributor-ID": "<X-Distributor-ID>",
    },
)
print(response.json())

$headers = @{
    "Authorization" = "Bearer <access-token>"
    "X-Distributor-ID" = "<X-Distributor-ID>"
}
Invoke-RestMethod -Method GET -Uri "https://api.central.sophos.com/business-automation/v1/quotes/<proposalNumber>" -Headers $headers

package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, err := http.NewRequest("GET", "https://api.central.sophos.com/business-automation/v1/quotes/<proposalNumber>", nil)
    if err != nil {
        panic(err)
    }
    req.Header.Set("Authorization", "Bearer <access-token>")
    req.Header.Set("X-Distributor-ID", "<X-Distributor-ID>")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

const response = await fetch("https://api.central.sophos.com/business-automation/v1/quotes/<proposalNumber>", {
  method: "GET",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Distributor-ID": "<X-Distributor-ID>",
  },
});
const data = await response.json();
console.log(data);

Responses

200 — Details of the requested quote.

Response fields

proposalNumberstring
Proposal number.
opportunityIdstring
Opportunity ID.
typestring
Quote type.
Must be one of: new, amendment, renewal.
dealregNumberstring
Deal registration number.
teamingRegNumberstring
Teaming registration number.
validUntilstring (date)
Date when quote expires in yyyy-mm-dd format.
paymentTermsstring
Payment terms.
autogeneratedboolean
Indicates whether the quote was autogenerated or manually created.
createdByPartnerboolean
Indicates whether the quote was created by a partner.
amendAndExtendboolean
Indicates whether the quote was for Amend and Extend.
promotionalCodesarray of string
Promotion codes.
contactobject
Contact information for distributor, partner, or end-user.
Show child attributesHide child attributes
firstNamestring
First name.
lastNamestring
Last name.
emailstring (email)
Email address.
phonestring
Phone number.
mobilestring
Mobile number.
distributorobject
Distributor account company details.
Show child attributesHide child attributes
namestring
Company name.
addressobject
Address of the distributor, partner, or end-user.
Show child attributesHide child attributes
address1string
Line 1 of the address.
address2string
Line 2 of the address.
citystring
City.
statestring
State.
countryCodestring
Two-letter ISO country code.
postalCodestring
Postal code.
accountNumberstring
Account number.
Must match the pattern ^[0-9]+$. Must be 1–8 characters long.
partnerobject
Partner account company details.
Show child attributesHide child attributes
namestring
Company name.
levelstring
Partner level.
Must be one of: select, authorized, silver, gold, platinum.
accountNumberstring
Account number.
Must match the pattern ^[0-9]+$. Must be 1–8 characters long.
addressobject
Address of the distributor, partner, or end-user.
Show child attributesHide child attributes
address1string
Line 1 of the address.
address2string
Line 2 of the address.
citystring
City.
statestring
State.
countryCodestring
Two-letter ISO country code.
postalCodestring
Postal code.
contactobject
Contact information for distributor, partner, or end-user.
Show child attributesHide child attributes
firstNamestring
First name.
lastNamestring
Last name.
emailstring (email)
Email address.
phonestring
Phone number.
mobilestring
Mobile number.
endUserCustomerobject
End-user account company details.
Show child attributesHide child attributes
namestring
Company name.
accountNumberstring
End-user account number.
addressobject
Address of the distributor, partner, or end-user.
Show child attributesHide child attributes
address1string
Line 1 of the address.
address2string
Line 2 of the address.
citystring
City.
statestring
State.
countryCodestring
Two-letter ISO country code.
postalCodestring
Postal code.
contactobject
Contact information for distributor, partner, or end-user.
Show child attributesHide child attributes
firstNamestring
First name.
lastNamestring
Last name.
emailstring (email)
Email address.
phonestring
Phone number.
mobilestring
Mobile number.
quoteLineItemsarray of object
Quote line item.
Show child attributesHide child attributes
productNamestring
Product name.
productDescriptionstring
Product description.
startDatestring (date)
Quote line item start date in ISO format.
endDatestring (date)
Quote line item end date in ISO format.
existingLicensesarray of string
List of existing license IDs or serial numbers.
billingCategorystring
Quote line billing category.
skustring
Sophos Stock Keeping Unit.
utmLicenseIdstring
UTM license ID.
terminteger
Subscription term in months.
quantityinteger
Product quantity.
currencyCodestring
Currency code.
unitMsrpnumber
Manufacturer's suggested retail price per unit.
msrpnumber
Manufacturer's suggested retail price multiplied by the quantity.
additionalDiscountPercentagenumber
Additional discount percentage.
allowancenumber
Allowance.
specialTotalnumber
Special total.
intermediateTierMarginnumber
Intermediate tier margin.
intermediateTierUnitnumber
Intermediate tier unit.
intermediateTierTotalnumber
Intermediate tier total.
marginPercentagenumber
Distributor discount margin percentage.
unitnumber
Unit net price.
totalnumber
Line item total.
totalsobject
Quote line item totals.
Show child attributesHide child attributes
currencyCodestring
Currency code.
msrpTotalnumber
Sum of manufacturer's suggested total retail price for all quote lines.
specialTotalnumber
Sum of special total for all quote lines.
intermediateTierTotalnumber
Sum of intermediate tier total for all quote lines.
totalnumber
Sum of line item total for all quote lines.

Errors

Status Meaning
404 Can't find quote.
500 Unexpected error.

All error responses share the same shape — see the error response object.

Response examples

200

{
  "proposalNumber": "Q-000009",
  "opportunityId": "a10Va000006uPrVIAU",
  "type": "new",
  "dealregNumber": "DR20240106-000001",
  "teamingRegNumber": "TP-987651",
  "validUntil": "2024-02-13",
  "paymentTerms": "Net 30",
  "autogenerated": false,
  "createdByPartner": false,
  "amendAndExtend": false,
  "promotionalCodes": [
    "GLOBAL_APX"
  ],
  "contact": {
    "firstName": "John",
    "lastName": "Smith",
    "email": "john.smith@example.com",
    "phone": "9111678231",
    "mobile": "6311628237"
  },
  "distributor": {
    "name": "Example Disti, Inc.",
    "address": {
      "address1": "1134 Lane, Eastwood",
      "address2": "New York 10001",
      "city": "New York",
      "state": "NY",
      "countryCode": "US",
      "postalCode": "10001"
    },
    "accountNumber": "12345678"
  },
  "partner": {
    "name": "Acme Corp",
    "level": "gold",
    "accountNumber": "12345678",
    "address": {
      "address1": "1134 Lane, Eastwood",
      "address2": "New York 10001",
      "city": "New York",
      "state": "NY",
      "countryCode": "US",
      "postalCode": "10001"
    },
    "contact": {
      "firstName": "John",
      "lastName": "Smith",
      "email": "john.smith@example.com",
      "phone": "9111678231",
      "mobile": "6311628237"
    }
  },
  "endUserCustomer": {
    "name": "Acme Corp",
    "accountNumber": "42839221",
    "address": {
      "address1": "1134 Lane, Eastwood",
      "address2": "New York 10001",
      "city": "New York",
      "state": "NY",
      "countryCode": "US",
      "postalCode": "10001"
    },
    "contact": {
      "firstName": "John",
      "lastName": "Smith",
      "email": "john.smith@example.com",
      "phone": "9111678231",
      "mobile": "6311628237"
    }
  },
  "quoteLineItems": [
    {
      "productName": "XGS136",
      "productDescription": "XGS 136 Email Protection",
      "startDate": "2024-02-03",
      "endDate": "2024-02-03",
      "existingLicenses": [
        "C023716784"
      ],
      "billingCategory": "Upfront",
      "sku": "CEAZ1CSMG",
      "utmLicenseId": "D12345678",
      "term": 36,
      "quantity": 10,
      "currencyCode": "USD",
      "unitMsrp": 180.24,
      "msrp": 1802.4,
      "additionalDiscountPercentage": 0,
      "allowance": 0,
      "specialTotal": 1802.4,
      "intermediateTierMargin": 0,
      "intermediateTierUnit": 0,
      "intermediateTierTotal": 1802.4,
      "marginPercentage": 0,
      "unit": 180.24,
      "total": 1802.4
    }
  ],
  "totals": {
    "currencyCode": "USD",
    "msrpTotal": 1802.4,
    "specialTotal": 1802.4,
    "intermediateTierTotal": 1802.4,
    "total": 1802.4
  }
}

See the guide for a narrative walkthrough of this API.