Deals

This endpoint contains both budgets and deals.
When creating a new record, a budget or deal will be created based on the budget attribute in the request.
If the request does not contain the budget attribute or has budget: false the new record will be a deal.
If the request has budget: true the new record will be a budget.

For more details on how to work with custom fields please refer to Working with custom fields guide.

Attributes

accessible_by_person integer
Parameter `filter`

The person whose access permissions are used to scope the deals returned in this response.

access_to_deal object
Response

Whether the current user has permission to view this deal's financial details.

actual_rate object
Parameter `filter`

Actual average billing rate across services on this deal.

amount_credited object
Response

Total credit notes issued against this deal (budget currency).

amount_credited_default object
Response

Total credit notes issued against this deal (organization default currency).

amount_credited_normalized object
Response

Total credit notes issued against this deal (normalized currency).

approval_policy_assignment approval policy assignment
Response

The approval policy governing this deal.

approval_policy_id integer
Parameter `filter`

ID of the approval policy assigned to this deal.

automatic_invoicing_rule automatic invoicing rule
Response

The automatic invoicing rule configured for this deal, if any.

billable_time integer
Response Parameter `filter` Parameter `sort`

Total billable hours across all services on this deal.

budget boolean
Response Request

Whether this deal is a production budget (true) or a sales deal (false).

budgeted_time integer
Response Parameter `filter` Parameter `sort`

Total budgeted hours across all services.

budget_remaining object
Parameter `filter`

Remaining budget (budget total minus budget used).

budgets_first object
Parameter `sort`

Whether budgets appear first in pipeline ordering.

budget_status integer
Parameter `filter` Parameter `sort` Enum

Budget health status based on consumption vs. warning threshold.

Enum Values (2 values)

  • 1
  • 2
budget_total object
Response Parameter `filter` Parameter `sort`

Total budget amount across all services (budget currency).

budget_total_default object
Response

Total budget amount across all services (organization default currency).

budget_total_normalized object
Response

Total budget amount across all services (normalized currency).

budget_usage number
Parameter `filter`

Percentage of budget consumed so far.

budget_used object
Response Parameter `filter` Parameter `sort`

Amount of budget consumed so far (budget currency).

budget_used_default object
Response

Amount of budget consumed so far (organization default currency).

budget_used_normalized object
Response

Amount of budget consumed so far (normalized currency).

budget_warning integer
Response Request Parameter `filter` Parameter `sort`

Budget consumption percentage that triggers a warning.

client_access boolean
Response Request Parameter `sort`

Whether client contacts can view this deal's details.

closed_at string
Response Parameter `filter` Parameter `sort`

Timestamp when the deal was closed.

color_id integer
Response Request Parameter `filter`

Color used for visual identification in pipeline views.

company company
Response

The client company this deal is for.

company_id integer
Request Parameter `filter`

ID of the client company.

company_name object
Parameter `sort`

Name of the client company.

connection_status object
Response

Integration connection status (for Productive Connect).

contact person
Response

The client contact person for this deal.

contact_id integer
Request Parameter `filter`

ID of the client contact person.

contact_name object
Parameter `sort`

Name of the client contact person.

contract contract
Response

The retainer contract that generated this deal, if applicable.

contract_id integer
Parameter `filter`

ID of the retainer contract, if applicable.

cost object
Response Parameter `filter` Parameter `sort`

Total costs including labor and expenses (budget currency).

cost_default object
Response

Total costs including labor and expenses (organization default currency).

cost_normalized object
Response

Total costs including labor and expenses (normalized currency).

created_at string
Response Parameter `filter` Parameter `sort`

When the deal was created.

creator person
Response

The person who created this deal.

creator_id integer
Parameter `filter`

ID of the person who created this deal.

creator_name object
Parameter `sort`

Name of the person who created this deal.

credited object
Parameter `filter`

Total amount credited against this deal.

currency string
Response Request Parameter `filter`

Deal currency code (budget currency).

currency_default object
Response

Organization default currency code.

currency_normalized object
Response

Normalized currency code.

custom_field_attachments array of attachment
Response

Files uploaded to file-type custom fields.

custom_field_people array of person
Response

People referenced in person-type custom fields.

custom_fields object
Response Request Parameter `filter` Parameter `sort`

Custom field values set on this deal.

date string
Response Request Parameter `filter` Parameter `sort`

Start date of the deal.

days_in_current_stage integer
Response Parameter `filter`

Number of days this deal has been in its current pipeline stage.

days_since_created integer
Response Parameter `filter`

Number of days since this deal was created.

days_since_last_activity integer
Response Parameter `filter`

Number of days since the last activity was recorded on this deal.

deal_number object
Response Parameter `sort`

Unique number identifying the deal within the organization.

deals_first object
Parameter `sort`

Whether sales deals appear first in pipeline ordering.

deal_status deal status
Response Parameter `sort`

Current pipeline stage of this deal.

deal_status_id integer
Request Parameter `filter`

ID of the current pipeline stage.

deal_type_id integer
Response Request Parameter `filter` Enum

Whether this is a one-off deal or a retainer.

Enum Values (2 values)

  • 1
    Internal deal
  • 2
    Client deal
deal_value number
Response Request

The configured deal value in the deal's currency, in cents.

deal_value_per_period object
Response

The deal value per retainer period in the deal's currency.

deal_value_per_period_default object
Response

The deal value per retainer period in the organization's default currency.

deal_value_per_period_normalized object
Response

The deal value per retainer period normalized to the deal's currency.

deal_value_source string
Response Request Enum

The source used to determine the deal value (e.g., from services or manually set).

Enum Values (2 values)

  • from_services
    From services
  • manual
    Manual
deal_value_total object
Response

The total deal value across all retainer periods in the deal's currency.

deal_value_total_default object
Response

The total deal value across all retainer periods in the organization's default currency.

deal_value_total_normalized object
Response

The total deal value across all retainer periods normalized to the deal's currency.

deleted_at string
Response

Soft-deletion timestamp.

delivered_on string
Response Request Parameter `filter`

Date when the deal was marked as delivered.

Response Parameter `sort`

The person designated as the approver for this deal, as determined by the approval policy.

designated_approver_id integer
Request Parameter `filter`

ID of the person designated as the approver for this deal.

destroy_future_bookings boolean
Request

Whether to cancel future bookings when the deal is closed.

discount number
Response Parameter `filter`

Default discount percentage applied to services on this deal.

document_type document type
Response

The PDF template used for deal documents.

document_type_id integer
Request

ID of the PDF template for deal documents.

draft_invoiced object
Response Parameter `filter`

Amount on draft (unsent) invoices (budget currency).

draft_invoiced_default object
Response

Amount on draft (unsent) invoices (organization default currency).

draft_invoiced_normalized object
Response

Amount on draft (unsent) invoices (normalized currency).

editor_config object
Response Request

Rich text editor configuration for deal notes.

email_key string
Response

Unique key for creating comments on this deal via email.

end_date string
Response Request Parameter `filter` Parameter `sort`

End date of the deal.

estimated_cost object
Parameter `filter`

Estimated total cost based on planned services.

estimated_remaining_time integer
Parameter `filter`

Estimated remaining time to complete the deal.

estimated_time integer
Response Parameter `filter` Parameter `sort`

Total estimated hours across all services.

exchange_date string
Response

Date used for the exchange rate calculation.

exchange_rate number
Response

Exchange rate from deal currency to organization default currency.

expense object
Response Parameter `filter` Parameter `sort`

Total expense costs on this deal (budget currency).

expense_approval boolean
Response Request Parameter `sort`

Whether expenses on this deal require approval.

expense_approval_workflow approval workflow
Response

The approval workflow for expenses.

expense_default object
Response

Total expense costs on this deal (organization default currency).

expense_normalized object
Response

Total expense costs on this deal (normalized currency).

expenses_billable object
Parameter `filter`

Whether expenses on this deal are billable to the client.

external_id string
Response

ID in an external integrated system.

external_sync boolean
Response

Whether this deal syncs with an external system.

footer object
Response

Deal document footer text.

footer_interpolated object
Response

Deal footer with template variables resolved.

forecasted_billable_time integer
Parameter `filter`

Forecasted total billable time based on bookings.

forecasted_budget_usage number
Parameter `filter`

Forecasted budget consumption percentage.

forecasted_budget_used object
Parameter `filter`

Forecasted budget used based on current trajectory.

forecasted_cost object
Parameter `filter`

Forecasted total cost based on bookings and actuals.

forecasted_margin number
Parameter `filter`

Forecasted profit margin based on current trajectory.

forecasted_profit object
Parameter `filter`

Forecasted profit based on current trajectory.

forecasted_revenue object
Parameter `filter`

Forecasted revenue based on bookings and actuals.

forecasted_time_usage number
Parameter `filter`

Forecasted time usage as a percentage of budgeted time.

full_query string
Parameter `filter`

Full-text search query applied to this deal.

future_booked_time integer
Parameter `filter`

Total future booked time on this deal.

future_budget_used object
Parameter `filter`

Forecasted budget used including future bookings.

future_cost object
Parameter `filter`

Total future cost based on upcoming bookings.

future_revenue object
Parameter `filter`

Total future revenue from upcoming bookings.

fuzzy_dates string
Parameter `filter`

Approximate date range for the deal (fuzzy).

fuzzy_people integer
Parameter `filter`

People loosely associated with this deal.

id integer
Parameter `filter`

The unique identifier of this deal.

invoiced object
Response Parameter `filter` Parameter `sort`

Total amount already invoiced (budget currency).

invoiced_default object
Response

Total amount already invoiced (organization default currency).

invoiced_normalized object
Response

Total amount already invoiced (normalized currency).

invoiced_percentage integer
Parameter `filter`

Percentage of revenue already invoiced.

invoiced_rate object
Parameter `filter`

Average billing rate at which revenue was invoiced.

invoice_template invoice template
Response

The invoice template associated with this deal, used as the default when generating invoices.

jump_query string
Parameter `filter`

Quick search query applied to this deal.

last_activity_at string
Response Parameter `filter` Parameter `sort`

Timestamp of the most recent change on this deal.

lost_at string
Parameter `filter`

Timestamp when the deal was marked as lost.

lost_comment string
Response Request

Notes explaining why the deal was lost.

lost_date string
Parameter `filter`

Date when the deal was marked as lost.

lost_reason lost reason
Response

The reason this deal was lost, if applicable.

lost_reason_id integer
Request Parameter `filter`

ID of the lost reason.

man_day_minutes integer
Response Request

How many minutes equal one man-day for this deal (for man-day billing).

manual_invoicing_reason object
Request

Manual invoicing reason note.

manual_invoicing_status boolean
Parameter `filter`

Manual invoicing tracking status label.

manual_invoicing_status_id integer
Response Request Enum

Manual invoicing tracking status.

Enum Values (2 values)

  • 1
    Not manually invoiced
  • 2
    Manually_invoiced
manually_invoiced integer
Response Parameter `filter` Enum

Amount marked as manually invoiced outside Productive (budget currency).

Enum Values (2 values)

  • 1
  • 2
manually_invoiced_default object
Response

Amount marked as manually invoiced outside Productive (organization default currency).

manually_invoiced_normalized object
Response

Amount marked as manually invoiced outside Productive (normalized currency).

name string
Response Request Parameter `filter` Parameter `sort`

Descriptive name for the deal.

needs_closing boolean
Parameter `filter`

Whether the deal requires closing action.

needs_invoicing boolean
Parameter `filter`

Whether the deal has uninvoiced services.

next_occurrence_on string
Parameter `filter`

Date when the next retainer occurrence is generated.

next_todo todo
Response

The next upcoming to-do item on this deal.

note string
Response Request

Internal deal notes (rich text).

note_interpolated object
Response

Deal note with template variables resolved.

number string
Response Parameter `filter` Parameter `sort`

Short numeric identifier (alias for deal_number).

open_hours object
Request

Total open (untracked) hours on this deal.

organization organization
Response

The organization this deal belongs to.

Response

The original deal if this was duplicated or generated.

origin_deal_id integer
Response Request Parameter `filter`

ID of the original deal if duplicated or generated from a contract.

parent_company_id integer
Parameter `filter`

ID of the parent company of the client linked to this deal, used for hierarchical company filtering.

pending_invoicing object
Response Parameter `filter` Parameter `sort`

Amount ready to invoice but not yet invoiced (budget currency).

pending_invoicing_default object
Response

Amount ready to invoice but not yet invoiced (organization default currency).

pending_invoicing_normalized object
Response

Amount ready to invoice but not yet invoiced (normalized currency).

pipeline pipeline
Response

The sales or production pipeline this deal belongs to.

pipeline_id integer
Parameter `filter`

ID of the pipeline this deal belongs to.

position integer
Response Request

Sort position within the pipeline stage.

previous_deal_status_id integer
Parameter `filter`

ID of the previous pipeline stage before the last transition.

previous_or_current_deal_status_id integer
Parameter `filter`

ID of the previous or current pipeline stage.

previous_probability integer
Response Parameter `filter`

The probability value before the last status change.

Response

The primary contact person for the company linked to this deal.

probability number
Response Request Parameter `filter` Parameter `sort`

Likelihood of winning (0-100%). 100% for won deals, 0% for lost deals.

profit object
Response Parameter `filter` Parameter `sort`

Revenue minus costs (budget currency).

profit_default object
Response

Revenue minus costs (organization default currency).

profit_margin number
Response Parameter `filter` Parameter `sort`

Profit as a percentage of revenue, in budget currency.

profit_margin_default object
Response

Profit margin in organization default currency.

profit_margin_normalized object
Response

Profit margin in normalized currency.

profit_normalized object
Response

Revenue minus costs (normalized currency).

project project
Response

The project linked to this deal.

projected_revenue object
Response Parameter `filter` Parameter `sort`

Expected revenue = budget total * probability (budget currency).

projected_revenue_default object
Response

Expected revenue = budget total * probability (organization default currency).

projected_revenue_normalized object
Response

Expected revenue = budget total * probability (normalized currency).

project_id integer
Request Parameter `filter`

ID of the project linked to this deal.

project_name object
Parameter `sort`

Name of the project linked to this deal.

project_type integer
Parameter `filter` Enum

Type of project linked to this deal.

Enum Values (2 values)

  • 1
  • 2
proposal_document_type document type
Response

The PDF template used for proposals.

proposal_document_type_id integer
Request

ID of the PDF template used for proposals.

proposal_footer object
Response

Proposal document footer text.

proposal_footer_interpolated object
Response

Proposal footer with template variables resolved.

proposal_note string
Response Request

Notes included in proposals sent to clients.

proposal_note_interpolated object
Response

Proposal note with template variables resolved.

purchase_order_number string
Response Request Parameter `filter` Parameter `sort`

Client-provided purchase order number for invoicing reference.

query string
Parameter `filter`

Quick search query applied to this deal.

recurring boolean
Parameter `filter`

Whether this deal is a recurring retainer.

recurring_ends_on string
Parameter `filter`

Date when the retainer contract ends.

recurring_interval_id integer
Parameter `filter` Enum

ID of the recurring interval for retainer deals.

Enum Values (6 values)

  • 3
  • 2
  • 1
  • 6
  • 5
  • 4
recurring_starts_on string
Parameter `filter`

Date when the retainer contract starts.

responsible person
Response Parameter `sort`

The deal owner / project manager.

responsible_id integer
Request Parameter `filter`

ID of the deal owner / project manager.

responsible_name object
Parameter `sort`

Name of the deal owner / project manager.

retainer_deal_value_type string
Response Request Enum

Determines how the deal value is calculated for retainer deals (e.g., per period or total).

Enum Values (2 values)

  • total
    Total
  • per_interval
    Per interval
retainer_interval string
Response Request Parameter `filter` Enum

The billing interval of this retainer deal (e.g., monthly, quarterly).

Enum Values (6 values)

  • week
    Week
  • two_weeks
    Two weeks
  • month
    Month
  • quarter
    Quarter
  • half_year
    Half-year
  • year
    Year
retainer_interval_count integer
Response Request

The number of interval units per retainer period (e.g., 3 for quarterly when interval is monthly).

revenue object
Response Parameter `filter` Parameter `sort`

Total revenue from services (budget currency).

revenue_default object
Response

Total revenue from services (organization default currency).

revenue_distribution_method string
Response Request Enum

Method for distributing revenue recognition across periods.

Enum Values (2 values)

  • percentage
    Fix by percentage
  • amount
    Fix by amount
revenue_distribution_type string
Response Request Parameter `filter` Enum

How revenue is distributed across services.

Enum Values (3 values)

  • default
    Default distribution
  • even
    Even distribution
  • custom
    Custom distribution
revenue_normalized object
Response

Total revenue from services (normalized currency).

rounding_interval_id integer
Response Request Enum

Time rounding interval for billable time (e.g. 15 minutes).

Enum Values (3 values)

  • 1
    6 minutes
  • 2
    15 minutes
  • 3
    30 minutes
rounding_method_id integer
Response Request Enum

How billable time is rounded (up, down, nearest).

Enum Values (4 values)

  • 1
    No rounding
  • 2
    Round to nearest
  • 3
    Round up to
  • 4
    Round down to
sales_closed_at string
Response Parameter `filter`

Timestamp when the deal was won or lost.

sales_closed_on string
Response Request Parameter `filter`

Date when the deal was won or lost.

sales_status_id integer
Parameter `filter` Parameter `sort` Enum

ID of the sales status (open/won/lost).

Enum Values (4 values)

  • 1
  • 2
  • 3
  • 4
sales_status_updated_at string
Response

Timestamp when the deal status (open/won/lost) last changed.

sample_data boolean
Response

Whether this is sample/demo data.

services_revenue object
Response Parameter `filter` Parameter `sort`

Revenue from services only, excluding adjustments (budget currency).

services_revenue_default object
Response

Revenue from services only, excluding adjustments (organization default currency).

services_revenue_normalized object
Response

Revenue from services only, excluding adjustments (normalized currency).

service_type_restricted_tracking boolean
Response Request

Whether time tracking is restricted to specific service types.

stage_status object
Parameter `sort`

Current pipeline stage status label.

stage_status_id integer
Parameter `filter` Enum

ID of the current pipeline stage status.

Enum Values (4 values)

  • 1
  • 2
  • 3
  • 4
stage_updated_at string
Parameter `filter`

Timestamp when the deal last moved to a new pipeline stage.

status integer
Parameter `filter` Enum

Deal lifecycle status (open/won/lost/delivered).

Enum Values (2 values)

  • 1
  • 2
status_id integer
Parameter `filter`

ID of the deal lifecycle status.

subscriber_id integer
Parameter `filter`

ID of the subscriber of this deal.

subscriber_ids object
Request

IDs of people subscribed to this deal.

subsidiary subsidiary
Response

The billing subsidiary for this deal.

subsidiary_id integer
Request Parameter `filter`

ID of the billing subsidiary for this deal.

suffix string
Response Parameter `sort`

Optional suffix appended to the deal number for display.

tag_list object
Response Request

Tags applied to this deal.

tags string
Parameter `filter`

Tags applied to this deal.

tax_rate tax rate
Response

Default tax rate applied to this deal's invoices.

tax_rate_id integer
Request

ID of the default tax rate.

template template
Response Parameter `filter`

The deal template this was created from, if applicable.

time_approval boolean
Response Request Parameter `filter` Parameter `sort`

Whether time entries on this deal require approval before they count.

time_approval_workflow approval workflow
Response

The approval workflow for time entries.

time_to_close object
Response Parameter `sort`

Number of days between date opened and date closed.

todo_count integer
Response

Total number of to-do items on the deal.

todo_due_date string
Response Parameter `filter` Parameter `sort`

Due date of the next to-do item.

tracking_type_id integer
Response Request Parameter `filter` Enum

How time is tracked on this deal's services.

Enum Values (3 values)

  • 1
    On all services
  • 2
    Only assigned services
  • 3
    Only by assigned service types
type integer
Parameter `filter` Enum

The type of this resource (always deal).

Enum Values (2 values)

  • 1
  • 2
unapproved_time integer
Parameter `filter`

Total unapproved time entries on this deal.

validate_expense_when_closing boolean
Response Request

Whether all expenses must be invoiced before the deal can be closed.

won_at string
Parameter `filter`

Timestamp when the deal was won.

won_date string
Parameter `filter`

Date when the deal was won.

work_cost object
Parameter `filter`

Total labor costs on this deal.

worked_time integer
Response Parameter `filter` Parameter `sort`

Total hours tracked by team members on this deal.