# Retrieve an offer Required scopes: offer:read Endpoint: GET /offers/{id} Version: v1 Security: http, oauth2 ## Path parameters: - `id` (string, required) ## Query parameters: - `find_by` (string) The field to search by Enum: "id", "external_id" - `origin` (string) Used if find_by=external_id by default it will use the integration slug ## Response 200 fields (application/json): - `id` (string, required) - `offer_number` (string,null, required) - `title` (string, required) - `status` (string, required) | | |---| | open Offer in draft | | approval_pending Offer was submitted for internal approval | | approval_approved Offer was internally approved | | transformed Customer approved offer | | cancelled Customer declined offer | Enum: "open", "approval_pending", "approval_approved", "transformed", "cancelled" - `approvals_needed` (integer,null, required) - `is_direct_approved` (boolean,null, required) Offer skipped internal approval process - can also be true if offer is still open, due to reopening - `date_of_offer` (string, required) - `date_of_expiry` (string, required) - `performance_range_start` (string, required) - `performance_range_end` (string, required) - `locale` (string, required) - `currency` (string, required) - `address` (string, required) - `address_changed` (boolean, required) If true the user manually overwrote the companies address - `company` (any, required) - `editor` (any, required) - `client` (object, required) - `client.external_id` (string,null, required) Can be used to add an identifier to the client from an external system, must be unique - `client.external_origin` (string,null, required) If originated from external system origin is added - `client.name` (string, required) - `client.shortcode` (string,null, required) - `client.primary_contact` (any, required) - `client.origin_space` (any, required) - `project` (any, required) - `taxation_enabled` (boolean, required) Can be used to indicate reverse charge ie - `sum_net` (number, required) - `sum_tax` (number, required) - `sum_gross` (number, required) - `sum_external_costs` (number, required) - `line_items` (array, required) - `line_items.type` (string, required) Enum: "unit", "category", "page_break" - `line_items.indent` (integer, required) - `line_items.order` (integer, required) - `line_items.is_optional` (boolean, required) - `line_items.price` (number, required) - `line_items.amount` (number, required) - `line_items.total_net_base` (number, required) Excluding all discounts Does not reflect total value over performance range - `line_items.total_net` (number, required) Including unit discount (not offer discounts) Does not reflect total value over performance range - `line_items.total_gross_base` (number, required) Excluding all discounts Does not reflect total value over performance range - `line_items.tax_factor` (number, required) - `line_items.total_gross` (number, required) Including unit discount (not offer discounts) Does not reflect total value over performance range - `line_items.metric` (object, required) - `line_items.metric.title_plural` (string, required) - `line_items.exclude_from_discount` (boolean, required) If true, the unit will be excluded from offer-wide discounts - `line_items.discount_factor` (number,null, required) - `line_items.discount_absolute` (number,null, required) - `line_items.discount_bound` (boolean, required) If true, the amount will multiply discount absolute - `line_items.purchase_price` (number, required) - `line_items.purchase_amount` (number, required) - `line_items.purchase_total` (number, required) - `line_items.purchase_price_bound` (boolean, required) If true, purchase_amount will be in sync with amount - `line_items.description` (string, required) - `line_items.payment_partial_type` (string, required) Enum: "once", "monthly", "yearly" - `line_items.payment_partial_interval` (integer,null, required) Interval if payment partial type is monthly or yearly | Type | Interval | Description | | ---- | -------- | ----------- | | once | any | Once per offer | | monthly | 1 | Every month in performance range | | monthly | 3 | Every 3 months in performance range | | monthly | 6 | Every 6 monthsin performance range | | yearly | 1 | Every year in performance range | | yearly | 3 | Every 3 years in performance range | | yearly | 6` | Every 6 years in performance range | - `external_costs` (array, required) - `external_costs.is_credit` (boolean, required) if true this cost is a credit - `external_costs.total` (number, required) - `external_costs.supplier` (any, required) - `external_costs.status` (string,null, required) - `external_costs.created_at` (string, required) - `external_costs.updated_at` (string,null, required) - `deleted_at` (string,null, required) - `computed_fields` (object) ## Response 401 fields (application/json): - `message` (string, required) Error overview. ## Response 422 fields (application/json): - `message` (string, required) Errors overview. - `errors` (object, required) A detailed description of each field that failed validation.