---
schema_version: "1"
id: 756e3d228419c581f0da7078c2d4bf1209096a87fb18fa2050ab9cece7ccfe91
title: Approval
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_approval.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_approval.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 0bcbcba0f04ab21761d198fa90aaa99bfad33ae100cdcfaeab09213bda116ab6
description: Represents an approval request for a Contract.
---
# Approval

Represents an approval request for a Contract.

![Note](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/images/icon_note.png)

#### Note

This object is read-only and is specific to approvals on the Contract object. It isn't equal to or involved in the approval processes represented by the ProcessInstance, which is more powerful.

## Supported Calls

describeSObjects(), query(), retrieve()

## Special Access Rules

Customer Portal users can't access this object.

## Fields

| Field | Details |
| --- | --- |
| ApproveComment | 
Type

string

Properties

Filter, Nillable, Sort

Description

Text entered by the user when they approved or rejected this approval request. Required. Limit: 4,000 characters.



 |
| IsDeleted | 

Type

boolean

Properties

Defaulted on create, Filter

Description

Indicates whether the object has been moved to the Recycle Bin (true) or not (false). Label is **Deleted**.



 |
| OwnerId | 

Type

reference

Properties

Filter, Group, Sort

Description

Required. ID of the User being asked to approve or reject the approval request. Must be a valid User ID. Required.



 |
| ParentId | 

Type

reference

Properties

Filter, Group, Sort

Description

Required. ID of the Contract associated with this approval request. Must be a valid contract ID.



 |
| RequestComment | 

Type

string

Properties

Filter, Nillable, Sort

Description

Text entered by the User who created the approval request. Optional. This field can't be updated after the Approval has been created. Limit: 4,000 characters.



 |
| Status | 

Type

picklist

Properties

Filter, Group, Restricted picklist, Sort

Description

Required. Status of this approval request. One of the following picklist values:

- Pending—Specified only when the Approval request is created (create() call)
- Approved—Specified only when the Approval request is approved (update() call)
- Rejected—Specified when the Approval request is rejected (update() call) or when it is created (create() call) and immediately rejected for archival/historical purposes.





 |

## Usage

This object allows client applications to programmatically handle approval requests for a Contract. Initially, to request a Contract approval, a client application might create a new Approval request record, specifying the ParentId, OwnerId (user approving or rejecting the request), Status (Pending), and (optionally) RequestComment fields. Note that when a client application creates the first approval request, if the value of the Contract Status field is Draft, then the Approval Status for this record is automatically changed to In Approval Process (see ContractStatus for more information).

A client application might subsequently update an existing Approval request, specifying the Status (Approved or Rejected) and an ApproveComment (required); the RequestComment field can't be updated. Updating an Approval record (either to approve or reject) requires the client application to be logged in with “Approve Contract” permission. To update an Approval request, its Status must be Pending—a client application can't update an Approval that has already been Approved or Rejected. To re-submit an approval request for a given Contract, a client application must create a new, separate Approval record and repeat the approval process.

Once a Contract has been approved (not rejected), the Contract LastApprovedDate field is automatically updated, however the Contract Status field isn't updated, it keeps the value InApproval.

An approved Contract must be activated explicitly. Client applications can activate a Contract by setting the value in its Status field to Activated, or a User can activate a Contract via the Salesforce user interface.

A Contract can have multiple approval requests in various states (Pending, Approved, and Rejected). In addition, one User can have multiple approval requests associated with the same Contract.

Client applications can't explicitly deleteApproval records. Approval records are deleted automatically if the parent Contract is deleted.

#### See Also

- [Overview of Salesforce Objects and Fields](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_concepts.htm "Salesforce objects and fields are analogous to database tables and the table columns. Objects and fields structure data. For example, the central object in the Salesforce data model represents accounts—companies and organizations involved with your business, such as customers, partners, and competitors.")