---
title: "Create a bill approval policy"
method: POST
path: "/v3/bill-approvals/policies"
tags: ["bill-approvals"]
---

# Create a bill approval policy

`POST /v3/bill-approvals/policies`

## Request

- Base URL: `https://gateway.stage.bill.com/connect`
- URL: `https://gateway.stage.bill.com/connect/v3/bill-approvals/policies`
- Auth: none declared

Create a new bill approval policy.

In your request, set `rules` and `approvers` in the specified format. For example, to create a bill approval policy for all bills greater than or equal to `$1000`, set `rules` for `BILL_AMOUNT`.
```
{
  "policyName": "Approval policy for bills >= $1000",
  "rules": [
    {
      "key": "BILL_AMOUNT",
      "op": "gte",
      "values": [
        "1000"
      ]
    }
  ],
  "approvers": [
    "{approver_user_id}"
  ]
}
```

## Headers

- `sessionId` string, nullable: API session ID generated with `/v3/login`
- `devKey` string, nullable: Developer key generated with your BILL developer account

## Request body

- BillApprovalPolicyRequestDto: Create a bill approval policy
  - `policyName` string, required: Bill approval policy name
  - `rules` BillApprovalPolicyCreateRuleDto[], required: Bill approval policy rules. You can set multiple rules for a policy. **Note**: Policy rules are applied in the specified order.
    - `key` 'BILL_AMOUNT' | 'BILL_LINE_ITEM_AMOUNT' | 'CHART_OF_ACCOUNT_ID' | 'VENDOR_ID': Rule key. **Note**: Currently, only `BILL_AMOUNT` is supported with the API.
    - `op` 'lt' | 'gte' | 'in': Rule operator. * `lt`: Less than * `gte`: Greater than or equal to * `in`: Any value in a list
    - `values` string[]: Rule values
  - `approvers` string[], required: List of approvers. For each approver, set the BILL-generated ID of the user. The value begins with `006`. **Note**: BILL requests approvals in the specified order.

## Response `201`

Create a bill approval policy response

- BillApprovalPolicyResponseDto: Response DTO for bill approval policy.
  - `id` string: BILL-generated ID of the approval policy. The value is in the `{organization_id}-{unique_id}` format.
  - `policyName` string: Bill approval policy name
  - `status` string: Bill approval policy status
  - `rules` BillApprovalPolicyRuleResponseDto[]: Bill approval policy rules
    - `key` 'BILL_AMOUNT' | 'BILL_LINE_ITEM_AMOUNT' | 'ACCOUNTING_CLASS_ID' | 'CHART_OF_ACCOUNT_ID' | 'CUSTOMER_ID' | 'DEPARTMENT_ID' | 'EMPLOYEE_ID' | 'JOB_ID' | 'LOCATION_ID' | 'VENDOR_ID' | 'UNDEFINED': Rule key
    - `op` 'lt' | 'gte' | 'in' | 'nin' | 'UNDEFINED': Rule operator
    - `values` RuleValueDto[]: Rule values
      - `value` string: Value
      - `displayName` string: Display name
  - `approvers` object: List of approvers
    - `users` ApproverUserDto[]: List of approver users
      - `userId` string: BILL-generated ID of the user. The value begins with `006`.
      - `fullName` string: User full name
    - `groups` ApproverGroupDto[]: List of approval groups
      - `groupName` string: Approval group name
      - `groupId` string: BILL-generated ID of the approval group. The value begins with `agp`.
      - `users` GroupUsers[]: Approval group user information
        - `id` string: BILL-generated ID of the user. The value begins with `006`.
        - `fullName` string: User full name

## Other responses

- `4XX`: List of errors.
- `5XX`: List of errors.

## Changes

- **2026-11-03** `54edddceb0a5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bill/apis/bill-v3-api/changes/v3/bill-approvals/policies/post.md)

---

[API](https://skmtc.dev/bill/apis/bill-v3-api.md) - [All operations](https://skmtc.dev/bill/apis/bill-v3-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bill/apis/bill-v3-api/revisions/54edddceb0a5?raw)
