Skip to content

Create a policy approval workflow for a currency

Request

🔒 Private label — contact sales. Requires a private-label entitlement on your API client.

Creates a POLICY_BASED (action_type 11) approval workflow scoped to a currency. The wallet reference is resolved from the currency field when present, otherwise from the org_wallet_ref header.

Security
oauth2ClientCredentials(Required scopes: business-policies:write)
Headers
business_idstringrequired

Business identifier for the request

Bodyapplication/jsonrequired
namestring
Example:"Travel subcategory approvals"
descriptionstring
Example:"Approval workflow for travel spend"
auto_approvalboolean
Example:false
requester_can_approveboolean
Example:true
statusstring
Enum:"active""inactive""archived"
typestring

Workflow scope type (not policy_type).

Default:"business"
Enum:"business""team"
currencystring

Currency the workflow applies to.

Example:"KES"
teamsArray of strings

Team ObjectIds when type is team.

Example:
[ "68c1656caa7b2a7f2769a267" ]
requester_approval_conditionsArray of strings
Example:
[]
stepsArray of objects(PolicyWorkflowStepDto)required
curl -i -X POST \
  https://developer.boyahq.com/_mock/v2/openapi/business-policies/workflows \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'business_id: string' \
  -d '{
    "name": "Travel subcategory approvals",
    "description": "Approval workflow for travel spend",
    "auto_approval": false,
    "requester_can_approve": true,
    "status": "active",
    "type": "business",
    "currency": "KES",
    "teams": [
      "68c1656caa7b2a7f2769a267"
    ],
    "requester_approval_conditions": [],
    "steps": [
      {
        "approval_mandate": "all",
        "minimum_approvers": 1,
        "is_auto_approval": false,
        "daily_limit": 1000000,
        "transaction_limit": 500000,
        "amount_approval_condition": {
          "type": "under",
          "amount": 250000,
          "amount_range": [
            1,
            250000
          ],
          "values": []
        },
        "approvers": [
          {
            "employee": "65fbf2f42a5d67f03a764111",
            "level": 1,
            "must_approve": false,
            "amount_approval_condition": {
              "type": "under",
              "amount": 250000,
              "amount_range": [
                1,
                250000
              ],
              "values": []
            },
            "non_amount_approval_conditions": [
              "string"
            ]
          }
        ]
      }
    ]
  }'

Responses

Workflow created successfully