---
title: "[Beta] Get Submit for approval configuration"
method: GET
path: "/public/beta/templates/{template_id}/approval-workflow"
tags: ["Approval Workflows"]
---

# \[Beta\] Get Submit for approval configuration

`GET /public/beta/templates/{template_id}/approval-workflow`

## Request

- Base URL: `https://api.pandadoc.com`
- URL: `https://api.pandadoc.com/public/beta/templates/{template_id}/approval-workflow`
- Auth: one of:
  - API key in header `Authorization`
  - OAuth 2
    - Authorization code: `https://app.pandadoc.com/oauth2/authorize`
    - Token URL: `https://api.pandadoc.com/oauth2/access_token`
- TypeScript: <https://skmtc.dev/pandadoc/apis/pandadoc-public-api/docs/public/beta/templates/:template_id/approval-workflow/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieves the Submit for approval configuration on a template. Learn more
about
[approval workflows](https://support.pandadoc.com/en/?q=Approval+workflow).

## Response `200`

Successfully retrieved the Submit for approval configuration.

- ApprovalWorkflowResponse: The Submit for approval configuration stored on the template.
  - `is_enabled` boolean, required: Stored enabled flag. A configuration that is enabled but contains only groups with no approvers is still returned as enabled. An unconfigured template returns `false`.
  - `is_ordering_enabled` boolean, required: Approval order. When `true`, the document goes to one approver at a time. When `false`, every approver is requested together. On an unconfigured template this is `false` (empty state). Creating a configuration with the field omitted defaults to `true`.
  - `is_editing_allowed` boolean, required: Whether the approvers and approval groups can be edited on documents created from this template.
  - `has_conditional_approvals` boolean, required: `true` when an approver or an approval group has conditional approvals. Those conditional approvals are not included in `steps`. PUT on this path is rejected until they are removed in PandaDoc.
  - `steps` ApprovalWorkflowStepResponse[], required: Stored stages in the approval order, including groups with no approvers. `[]` means the template has no Submit for approval configuration (`is_enabled` is `false`). PUT requires at least one approver in every group, so an empty group from this response must be replaced or dropped before writing.
    - `id` string, required: Unique identifier of this stage in the approval order.
    - `assignee` ApprovalWorkflowAssigneeResponse: An approver for a stage in the approval order, or a member of an approval group. `user` is present for a workspace member and omitted when `is_document_sender` is `true`.
      - `id` string, required: Approver id within the Submit for approval configuration. Not a membership id and not a user id. Do not send this value as `membership_id` on PUT.
      - `user` ApprovalWorkflowUser: A workspace member who can act as an approver.
        - `id` string, required: User id. Not a workspace membership id. Do not send this value as `membership_id` on PUT. Use `email` to identify this user on a later PUT.
        - `email` string, email, required: User email address.
        - `first_name` string: User first name.
        - `last_name` string: User last name.
        - `avatar` string: URL of the user avatar. Omitted when the user has no avatar.
      - `is_document_sender` boolean, required: Whether this approver is the document sender.
      - `is_selected` boolean: Whether this approver is pre-selected. Present only for members of a selectable group.
    - `group` ApprovalWorkflowGroupResponse: An approval group for one stage in the approval order.
      - `id` string, required: Unique identifier of the group.
      - `name` string, required: Display name of the group.
      - `type` 'selectable': Present only for Allow user to select approver. When `type` is omitted, every approver in the group is notified and any one of them can approve. The group is still required. - `selectable` — Allow user to select approver. The sender chooses one approver from the group in Submit for approval.
      - `assignees` ApprovalWorkflowAssigneeResponse[], required: Approvers in the group. A stored group can have no approvers. PUT requires at least one approver in every group.
        - `id` string, required: Approver id within the Submit for approval configuration. Not a membership id and not a user id. Do not send this value as `membership_id` on PUT.
        - `user` ApprovalWorkflowUser: A workspace member who can act as an approver.
          - `id` string, required: User id. Not a workspace membership id. Do not send this value as `membership_id` on PUT. Use `email` to identify this user on a later PUT.
          - `email` string, email, required: User email address.
          - `first_name` string: User first name.
          - `last_name` string: User last name.
          - `avatar` string: URL of the user avatar. Omitted when the user has no avatar.
        - `is_document_sender` boolean, required: Whether this approver is the document sender.
        - `is_selected` boolean: Whether this approver is pre-selected. Present only for members of a selectable group.

## Other responses

- `401`: Authentication error
- `403`: Permission error
- `404`: Not found error
- `429`: Too many requests error

## Changes

- **2026-11-03** `b9a306b1a421`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pandadoc/apis/pandadoc-public-api/changes/public/beta/templates/:template_id/approval-workflow/get.md)

---

[API](https://skmtc.dev/pandadoc/apis/pandadoc-public-api.md) - [All operations](https://skmtc.dev/pandadoc/apis/pandadoc-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pandadoc/apis/pandadoc-public-api/revisions/b9a306b1a421?raw)
