Learn how the the instances of the approval policies work and how to track the approval requests sent to the users.

Overview

Whenever a new approval policy is created, or a payable is created or updated, Monite checks if there is a match between the approval policy and the payable.

If a payable matches some approval policies’ trigger conditions, a new instance of the approval policy is created. This instance of approval policy applied to a payable is called a process.

Every process has approval steps, which are lists of all approval requests that will be created for a given process.

List all processes

To list all processes applied to a specific approval policy, call GET /approval_policies/{approval_policy_id}/processes:

1curl -X GET 'https://api.sandbox.monite.com/v1/approval_policies/{approval_policy_id}/processes' \
2 -H 'X-Monite-Version: 2024-01-31' \
3 -H 'X-Monite-Entity-Id: ENTITY_ID' \
4 -H 'Authorization: Bearer ACCESS_TOKEN' \
5 -H 'accept: application/json' \

The successful response contains all the processes related to the provided approval policy:

1{
2 "data": [
3 {
4 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
5 "status": "succeeded",
6 "input": {},
7 "error": {},
8 "script_snapshot": true,
9 "metadata": {},
10 "created_at": "2023-04-05T19:09:35.111Z",
11 "updated_at": "2023-04-05T19:09:35.111Z",
12 "created_by": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
13 "updated_by": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
14 }
15 ]
16}

You can also check which approval policy applies to which payable in the responses from GET /payables and GET /payables/{payable_id}. The approval policy ID is stored in the approval_policy_id field of the Payable object.

Steps

Approval steps, or just steps, contain the current state of all approval requests created for a given approval process and sent to the users. To check all the steps of a specific process, call GET /approval_policies/{approval_policy_id}/processes/{process_id}/steps:

1curl -X GET 'https://api.sandbox.monite.com/v1/approval_policies/{approval_policy_id}/processes/{process_id}/steps' \
2 -H 'X-Monite-Version: 2024-01-31' \
3 -H 'X-Monite-Entity-Id: ENTITY_ID' \
4 -H 'Authorization: Bearer ACCESS_TOKEN' \
5 -H 'accept: application/json' \

The successful response contains the current status of all the steps required for a given approval policy:

1{
2 "data": [
3 {
4 "object_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
5 "required_approval_count": 1,
6 "status": "approved",
7 "user_ids": ["3fa85f64-5717-4562-b3fc-2c963f66afa6"],
8 "approved_by": ["3fa85f64-5717-4562-b3fc-2c963f66afa6"],
9 "rejected_by": null
10 }
11 ]
12}

Retrieve a process

To get information about a specific process, call GET /approval_policies/{approval_policy_id}/processes/{process_id}.

Cancel a process

To cancel a specific process, call POST /approval_policies/{approval_policy_id}/processes/{process_id}/cancel.