---
schema_version: "1"
id: 6d1a6dab05bf4eda92c278825c5ffa47f20e004fe2fb1bb45ea0e30b057edfb7
title: SalesAgreement
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/mfg_api_devguide/sforce_api_objects_salesagreement.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.mfg_api_devguide.meta/mfg_api_devguide/sforce_api_objects_salesagreement.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: c45a368a7dfba46d38a689565073cf118d3a3b9a9b0b584a91b79eed6f940bcc
description: Represents a long-term agreement between a buyer and a seller to negotiate price and volume of products.This object is available in API version 47.0 and later.
---
# SalesAgreement

Represents a long-term agreement between a buyer and a seller to negotiate price and volume of products.This object is available in API version 47.0 and later.

## Supported Calls

create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), search(), undelete(), update(), upsert()

## Fields

### AccountId

- **Type**: reference
- **Properties**: Create, Filter, Group, Sort, Update
- **Description**: ID of the referenced account.
- **Relationship Name**: Account
- **Relationship Type**: Lookup
- **Refers To**: Account

### ActivatedDate

- **Type**: dateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: Date and time on which the sales agreement is activated.

### ActualMarginPercentage

- **Type**: percent
- **Properties**: Filter, Nillable, Sort
- **Description**: The total actual margin amount as a percentage of total actual amount.

### ActualsCalculationMode

- **Type**: picklist
- **Properties**: Create, Defaulted on create, Filter, Group, Nillable, Sort, Update
- **Description**: The mode used by the application to calculate actual quantities for a sales agreement.
- **Possible values**:
    - DataProcessingEngine—Using a Data Processing Engine Definition
    - Manual—Manually using API upload
    - Orders—Automatically from direct orders
    - OrdersThroughContracts—Automatically from orders through contracts

### AgreementType

- **Type**: picklist
- **Properties**: Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
- **Description**: This field is deprecated. We recommend not adding it to the page layout. Type of the sales agreement. Currently, a sales agreement is always volume-based.

### ApprovedById

- **Type**: reference
- **Properties**: Filter, Group, Nillable, Sort
- **Description**: ID of the user who approves the sales agreement.
    
    This field is a relationship field.
- **Relationship Name**: ApprovedBy
- **Relationship Type**: Lookup
- **Refers To**: User

### ApprovedDate

- **Type**: dateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: Date and time on which the sales agreement was approved.

### CancellationDate

- **Type**: dateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: Date and time on which the sales agreement was canceled.

### CancellationReason

- **Type**: picklist
- **Properties**: Filter, Group, Nillable, Sort, Update
- **Description**: Reason for canceling the sales agreement. Values can be customized. Examples include low profit, unavailability of products, and so on.

### ContactId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: ID of a contact associated with the sales agreement account.
    
    This field is a relationship field.
- **Relationship Name**: Contact
- **Relationship Type**: Lookup
- **Refers To**: Contact

### DecimalScale

- **Type**: int
- **Properties**: Create, Filter, Group, idLookup, Nillable, Sort, Update
- **Description**: The number of decimal places applied to values in a sales agreement.

### Description

- **Type**: textarea
- **Properties**: Create, Nillable, Update
- **Description**: User-defined context and information about the sales agreement.

### EndDate

- **Type**: date
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: Date and time on which the sales agreement expires.

### FutureActCalcSchedules

- **Type**: int
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The number of future schedules to include in actuals calculations in the sales agreement.

### LastActualsCalculatedDate

- **Type**: dateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: Date and time on which actuals were last calculated either by the automated daily job or by the ad-hoc action performed by an individual user.

### LastReferencedDate

- **Type**: dateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: The most recent date on which this record was referenced.

### LastViewedDate

- **Type**: dateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: The most recent date on which this record was viewed.

### Name

- **Type**: string
- **Properties**: Create, Filter, Group, idLookup, Sort, Update
- **Description**: User-defined name of the sales agreement.

### OwnerId

- **Type**: reference
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: ID of the user who owns this record.
- **Relationship Name**: Owner
- **Relationship Type**: Lookup
- **Refers To**: Group, User

### PlannedMarginPercentage

- **Type**: percent
- **Properties**: Filter, Nillable, Sort
- **Description**: The total planned margin amount as a percentage of total planned amount.

### PriceAdjustmentScheduleId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The price adjustment schedule that's associated with the sales agreement. Available in API version 59.0 and later.
    
    This field is a relationship field.
- **Relationship Name**: PriceAdjustmentSchedule
- **Refers To**: PriceAdjustmentSchedule

### PricebookId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: ID of the associated price book.
- **Relationship Name**: Pricebook
- **Relationship Type**: Lookup
- **Refers To**: Pricebook2

### ProductLevel

- **Type**: picklist
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: Level of the products associated with the sales agreement.
- **Default value**: Product
- **Possible values**:
    - Product
    - ProductCategory—Category

### ReferenceFieldId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The manufacturing program associated with the sales agreement. Available in API version 57.0 and later.
    
    This field is a relationship field.
- **Relationship Name**: ReferenceField
- **Refers To**: ManufacturingProgram

### RenewedFromAgreementId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: ID of the immediate parent from which the sales agreement is renewed.
    
    This field is a relationship field.
- **Relationship Name**: RenewedFromAgreement
- **Relationship Type**: Lookup
- **Refers To**: SalesAgreement

### RenewedToAgreementId

- **Type**: reference
- **Properties**: Filter, Group, Nillable, Sort
- **Description**: ID of the renewed sales agreement.
    
    This field is a relationship field.
- **Relationship Name**: RenewedToAgreement
- **Relationship Type**: Lookup
- **Refers To**: SalesAgreement

### ScheduleCount

- **Type**: int
- **Properties**: Create, Filter, Group, Sort, Update
- **Description**: Number of schedules in the sales agreement.

### ScheduleFrequency

- **Type**: picklist
- **Properties**: Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
- **Description**: Frequency at which schedules occur in the sales agreement.
- **Default value**: Weekly
- **Possible values**:
    - Monthly
    - Onetime—One-Time
    - Quarterly
    - Weekly
    - Yearly

### ShouldUserSpecPlnQuantity

- **Type**: boolean
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: Indicates whether the user specifies the planned quantity of products in a sales agreement (true) or the initial planned quantity of each product is automatically distributed across all schedules (false).
- **Default value**: false

### StartDate

- **Type**: date
- **Properties**: Create, Filter, Group, Sort, Update
- **Description**: Date on which the sales agreement must get activated.

### Status

- **Type**: picklist
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: Status of the sales agreement. The values can be customized but must map to at least one of the predefined status codes.
- **Default value**: Draft
- **Possible values**:
    - Activated
    - Approved
    - Cancelled
    - Draft
    - Expired
    - Rejected
    - UnderRevision

### StatusCode

- **Type**: picklist
- **Properties**: Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
- **Description**: Set of five predefined status codes that determine at which stage is the sales agreement in.
- **Default value**: Draft
- **Possible values**:
    - Activated
    - Approved
    - Cancelled
    - Draft
    - Expired
    - Rejected
    - UnderRevision

### TotalActualAgreementAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the total actual amounts across all products in a sales agreement.
    
    This field is a calculated field.

### TotalActualCostAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the total actual cost amounts across all products in a sales agreement.
    
    This field is a calculated field.

### TotalActualMarginAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the total actual margin amounts across all products in a sales agreement.
    
    This field is a calculated field.

### TotalAgreementAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: Total value of the sales agreement.
    
    This field is a calculated field.

### TotalPlannedCostAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the total planned cost amounts across all products in a sales agreement.
    
    This field is a calculated field.

### TotalPlannedMarginAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the total planned margin amounts across all products in a sales agreement.
    
    This field is a calculated field.

### TotalProposedAgreementAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: Total value of the sales agreement when the sales agreement is under revision.
    
    This field is a calculated field.

### ArePredfndStatusValOveride

- **Type**: boolean
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: Specifies whether the predefined status code validations apply to the sales agreement (true) or not (false). If customers use their custom statuses and validations, internally the agreement is set to the Draft status code to allow the custom validations.

### ClonedFromAgreement

- **Type**: reference
- **Properties**: Filter, Group, Nillable, Sort
- **Description**: The sales agreement from which the current record was deep cloned.
    
    This field is a relationship field.
- **Refers To**: SalesAgreement

## Associated Object

This object has the following associated object. Unless noted, it is available in the same API version as this object.

**[SalesAgreementChangeEvent](https://developer.salesforce.com/docs/atlas.en-us.mfg_api_devguide.meta/mfg_api_devguide/sforce_api_associated_objects_change_event.htm "A ChangeEvent object is available for each object that supports Change Data Capture. You can subscribe to a stream of change events using Change Data Capture to receive data tied to record changes in Salesforce. Changes include record creation, updates to an existing record, deletion of a record, and undeletion of a record. A change event isn’t a Salesforce object—it doesn’t support CRUD operations or queries. It’s included in the object reference so you can discover which Salesforce objects support change events.") (API Version 62.0):** Change events are available for the object.