---
title: "Create an invoice approval policy"
method: POST
path: "/approval-policies"
tags: ["approvalPolicies"]
---

# Create an invoice approval policy

`POST /approval-policies`

Creates a new invoice approval policy. Partners use this to provision Advanced Approval rules programmatically. Exactly one owner scope field is required: `ottimate_location_id`, `ottimate_company_id`, `group`, or `account`. At least one of `user_approvers` or `role_approvers` is required.

## Headers

- `Authorization` string, required
- `X-Api-Key` string, required
- `X-API-Version` string
- `Idempotency-Key` string

## Request body

- object
  - `name` string, required — Policy display name
  - `applicable_type` 'invoice', required — Must be `invoice` for this resource
  - `min_users_for_approval` integer, required — Minimum distinct approvers required
  - `ottimate_location_id` integer — Scope policy to a single location
  - `ottimate_company_id` integer — Scope policy to a company
  - `group` string — Restaurant group ID
  - `account` string — Account ID (racc_ prefixed)
  - `user_approvers` ApprovalPoliciesPostRequestBodyContentApplicationJsonSchemaUserApproversItems[] — User approver entries ({"user": <id>} or bare user ID)
  - `role_approvers` ApprovalPoliciesPostRequestBodyContentApplicationJsonSchemaRoleApproversItems[] — Role approver entries ({"role": "<role_id>"} or bare role ID string)
  - `conditions` ApprovalPoliciesPostRequestBodyContentApplicationJsonSchemaConditionsItems[] — Policy conditions (subject, operator, value)
  - `auto_approve_rules` string[] — Auto-approve rule types, e.g. ["user_uploaded"]
  - `use_buyer_approver` boolean — Count buyer as an implicit approver (default false)
  - `is_enabled` boolean — Enable on create (default true)

## Response `201`

Policy created

- ApprovalPoliciesPostApprovalPoliciesRootResponse201 — Empty response body

## Other responses

- `400` — Bad request - Invalid parameters or request format
- `401` — Unauthorized - Authentication required or invalid credentials
- `403` — Forbidden - Access denied or insufficient permissions

---

[API](https://skmtc.dev/ottimate/apis/api-reference.md) · [All operations](https://skmtc.dev/ottimate/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ottimate/api-reference/revisions/ba91ff4c6969/schema)
