Get Approval Policy

GET /base/approval-policies/{id}

Group: Base › Approval Policies · Operation ID: getApprovalPolicy

Returns the approval policy with the given identifier, with its rule lines, approvers, exclusion lines and notification settings.

Returns the policy in full: the header, every rule line with its criteria and approvers, the exclusion lines and the notification settings. The output mirrors what create and update take, so you can read a policy, change one line and send it back. A document picks up the approvers of every rule line it matches. Approver names are resolved for readability and are absent when the referenced employee or manager no longer exists. approverId stays authoritative.

Open in the interactive reference

Parameters

Name In Type Required Description
Api-Version header "v1" yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.
id path string yes The unique identifier for the approval policy to return.

Response

200 Success

Under data (getApprovalPolicyOutput):

Field Type Required Description
id string yes The unique identifier for the approval policy.
policyHeaderNumber string no The policy number, assigned when the policy is created and stable across edits.
entityId string no The legal entity the policy applies to. Absent when isAllEntities is true. See id on GET base/entities.
entityName string no The name of the legal entity the policy applies to. Absent when isAllEntities is true.
isAllEntities boolean no Whether the policy applies to every legal entity rather than the one named by entityId.
businessObject string yes The code of the business object the policy governs, for example 'VendorBill', 'ExpenseReport' or 'PurchaseOrder'.
status string yes The lifecycle status of the policy. Possible values: 'active', 'inActive'. Only active policies are matched against new documents.
startDate string no The first date the policy is eligible for matching. Format YYYY-MM-DD. Absent when there is no lower bound.
endDate string no The last date the policy is eligible for matching. Format YYYY-MM-DD. Absent when there is no upper bound.
submitterCannotApprove boolean no Whether the document submitter is stopped from approving their own document.
approverCommentEnabled boolean no Whether approvers are prompted for an optional comment at approve time.
lastModifiedDate string (date-time) yes The date and time the approval policy last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
notification object no The notification channels used when approvers and submitters are told about this policy's documents. Absent when they have never been configured for this policy.
notification.emailNotification boolean no Whether approvers are emailed.
notification.nativeNotification boolean no Whether approvers get an in-product notification.
notification.slackNotification boolean no Whether approvers are notified on Slack.
lines array of object yes The policy's rule lines, ordered by step. A document picks up the approvers of every line it matches.
lines[].id string yes The unique identifier for the rule line. Pass it in updateLines or deleteLines on PATCH base/approval-policies/:id.
lines[].policyLineNumber string no The rule line number, assigned when the line is created.
lines[].criteria string yes The document field the rule tests, for example 'Vendor' or 'Total Amount'. The literal COMPOSITE marks a line whose value is a JSON AND or OR expression over several criteria.
lines[].operator string yes The comparison applied to the criteria, for example 'Equal' or 'Less Than'.
lines[].value array of string yes The values the criteria is compared against, each as a string. For a COMPOSITE line this is a single-element array holding the JSON expression.
lines[].valueType string no How the value is interpreted. Possible values: 'number', 'multivalue', 'value', 'noValue', 'arrayField', 'composite'.
lines[].step number yes The approval order, starting at 1. Lines that share a step are evaluated and approved together.
lines[].requireAction string no Whether all of the line's approvers must approve, or any one of them is enough. Possible values: 'All', 'Any'.
lines[].approvers array of object yes The approvers assigned to this line. A line always has at least one.
lines[].approvers[].id string yes The unique identifier for the approver assignment. Pass it in updateApprovers or deleteApprovers on PATCH base/approval-policies/:id.
lines[].approvers[].approverId number yes The approver. For approverType 'employee' or 'supremeApprover' it is the employee, and for 'manager' it is the manager-hierarchy record. It is an integer, not a UUID. There is no endpoint for it.
lines[].approvers[].approverType string yes The kind of approver. Possible values: 'employee', 'manager', 'supremeApprover', 'position'. 'employee' names a specific person, 'manager' resolves the submitter's manager through a hierarchy at approval time, and 'supremeApprover' is a person who may approve at any step.
lines[].approvers[].approverName string no The resolved display name of the approver. Absent when the referenced employee or manager no longer exists.
exclusionLines array of object yes The exclusion lines. A document matching any of them is exempted from the policy entirely.
exclusionLines[].id string yes The unique identifier for the exclusion line. Pass it in updateExclusionLines or deleteExclusionLines on PATCH base/approval-policies/:id.
exclusionLines[].criteria string yes The document field the exclusion tests.
exclusionLines[].operator string yes The comparison applied to the criteria.
exclusionLines[].value array of string yes The values the criteria is compared against, each as a string.
exclusionLines[].valueType string no How the value is interpreted. Possible values: 'number', 'multivalue', 'value', 'noValue', 'arrayField', 'composite'.

Errors

Code Status
NOT_FOUND 400

Statuses