Approval flow for expense invoices

Invoice approval flow for expense invoices is where the invoices are verified, accounted, and authorized. New roles are used such as verifier, invoice administrator, accounting responsible, and authorized user.

Authorization settings are created to set up dynamic rules for the invoice approval flow. This includes what transactions to approve, and who approves the transaction. Each cost or balance accounting transaction on an invoice must have an approval code and an authorized user.

A user can have different approval amount limits depending on what type of cost it is. The invoice is also allocated to an invoice administrator who can monitor the progress of the approval process.

These are the basic data programs for this setup:
  • Set up the general settings for the new supplier invoice approval flow and authorization.
  • Create routes and route groups.
  • Connect authorized users to different route groups.
  • Set amount limits per approval code or type cost, and route groups.
  • Set up the authorization settings for dynamic fetching of the approval code and authorized user. Set up the different fields, such as field group, priorities, and from-to values per selected field.
  • Set up the authorization settings for dynamic fetching of invoice administrator, verifier, and accounting responsible. Set up the different fields, such as field group, priorities, and from-to values per selected field.

Limitations

These are the limitations:
  • Only supplier expense invoices are considered
  • Invoice matching is not considered
  • Prepayment functionality is not considered

Basic data and settings for the approval flow of expense invoices

Set up the basic data needed in the approval flow process of expense invoices in this order. It is a prerequisite for the approval process to first do the authorization settings.
Program Setup
1. 'Approval Flow General Settings. Open' (CMS715)
Create general settings for the approval flow, default values, and executive approval setup in (CMS715). These are the basic data and settings:
  • Define the 'Default invoice administrator' in (CMS715) at the minimum.
  • For expense invoices, set 'Generic approval type' to '1-Expense invoice'. This field indicates the type of approval process for which the authorization settings are done.
  • Ensure that the user role is properly set. These are the guidelines for each user role:
    • Default authorized user: An authorized user can authorize and approve up to a certain amount. Authorized user is set per each cost or balance accounting transaction on one invoice. The user must exist in 'Approval Authorized User. Open' (CMS718)
    • Default invoice administrator: The invoice administrator is responsible for the flow of the invoice.
    • Default verifier: A verifier is responsible for checking whether an invoice is a scam. You can auto-verify the invoices when they are selected on the Supplier in 'Supplier. Define Purchase & Financials' (CRS624) or in 'Supplier. Open/Division' (MFS620). Then the invoice is set as verified already at invoice entry with the status '9-Completed' on the Verifier line.
    • Default accounting responsible: This user is responsible for recoding of the invoice.
    • Segregation of duty: If selected, the same user cannot serve as both the verifier and the sole authorized user for an authorization combination. If this occurs, an additional authorized user is selected from the 'Next level route group user' in (CMS719), or the 'Next level user' in (CMS718), in that order. Segregation of duty is applied whenever authorized users are created, and updated if the verifier is changed.
  • All users must exist in 'User. Open' (MNS150) and permitted to work in the company and division in 'User. Access per Company & Division' (MNS151).
  • Approval code must exist in 'Approval Codes. Open' (CMS720).
2. 'Approval Routes. Open' (CMS716)
Create the approval routes to use in the approval process in (CMS716). An example of this approval route is the different reporting structures within the company. It can be the organization structure or the project hierarchy. These are the basic requirements and settings: 
  • One route must only exist in one generic approval type within one division.
  • Define the 'First authorized user' field per approval route. This field determines if this user is the first authorized user found or the first user with authority to approve that is selected in the approval process.
  • Define the 'Number of users' field to identify the number of users who is required to approve one cost. You cannot set this field to zero.
  • These users are not counted:
    • Out of office user
    • If the user specified in the 'First authorized user' field is selected in (CMS716) and the authorized user does not have enough amount limit, then the next level user is used instead.
3. 'Approval Route Groups. Open' (CMS717)
Create the approval route groups for each route. An example of this route group is the different roles within one organization in the company. You are redirected to this program from (CMS716). These are the basic prerequisites and settings:
  • One approval route group can only belong to one approval route.
  • You must only connect one route group to one generic approval type within one division.
4. 'Approval Authorized User. Open' (CMS718)
Set up the authorized users, who can do the approvals, in (CMS718). These are the basic data and settings:
  • You can define the 'Next level user' to indicate the authorized user who is in the next level to approve the accounting. This user is usually a manager. This field identifies which user is next to approve the cost. The next level user must exist in (MNS150) and is permitted to work in the company and division in (MNS151).
  • You can set up the next level users in two different levels of approval. These are the ways in how the next level is found in priority order:
    • First level: The next level route group user on the authorized user’s route group in (CMS719).
    • Second level: The next level user on the authorized user in (CMS718).
  • Specify 'Out of office start date' and 'Out of office end date' to define the user who is out of office. If the authorized user is out of office, the substitute user is used to approve the invoices. If no substitute user is specified, the next level user is used instead.
5. 'Authorized User Route Groups. Open' (CMS719)
Connect the authorized users to different route groups in (CMS719). You are redirected to this program from (CMS718). These are the basic prerequisites and settings:
  • One user can only have one route group within one route within one division.
  • You can define the 'Next level route group user' to indicate the authorized user who is in the next level to approve the accounting. This is usually one manager.
  • You can set up the next level users in two different levels of approval. These are the ways in how the next level is found in priority order:
    • First level: The next level route group user on the authorized user’s route group in (CMS719).
    • Second level: The next level user on the authorized user in (CMS718).
  • The user specified in 'Substitute user' approves invoices when the authorized user is out of office. If no substitute user is specified, the next level user is used instead. The user must exist in (MNS150) and is permitted to work in the company and division in (MNS151).
  • 'Inherit approval amounts' field indicates if the substitute user inherits the authorizer’s approval amounts or not during the out of office period. The amount is in local currency. These are the alternatives:
    • 0: No, the approval amount is not inherited.

    • 1: Yes, the approval amount is inherited.

6. 'Approval Codes. Open' (CMS720)

Create the approval codes to use in the approval process and connect them to the approval routes.

The approval code is the classification of the type of cost of the invoice lines. It is connected to one approval route. For expense invoices, an approval code is set per each cost accounting transaction and balance account transaction on the invoice.

7. 'Approval Codes and Amounts. Open' (CMS721)
Connect the approval codes to different approval route groups in (CMS721). You are redirected to this program from (CMS720). These are the basic data and settings:
  • The field 'Max approval amount' is required. This field is the maximum approval amount in local currency and defines the amount that the authorized user can authorize and approve. The combination of the approval code and the authorized user’s approval route group decides the approval amount.
  • If the approval amount is exceeded, the next lever user also does the authorization.
  • You must specify the maximum approval amount and not set it to zero.
  • The currency is the local currency on the division in 'Company. Connect Division' (MNS100).
8. 'Authorization Priorities. Open' (CMS711)
Set up the different priorities and object fields per approval type in (CMS711). You can have a maximum of 15 priorities and up to seven objects within one priority. These are the basic data and settings:
  • You can select object fields from different tables from dedicated field groups (RBHEA, RBHE1, and RBHE2) in 'Field Group. Open' (CRS108), first time use function key F14-'Generate data' in (CRS108). You can only use an object once within one priority. These are the approval types:
    • 1: Approval code
    • 2: Authorized user
    • 3: Invoice administrator
    • 4: Verifier
    • 5: Accounting responsible

    For approval type set to 1-'Approval code', the approval code must exist in (CMS720).

    For approval type 2 to 5, the users must exist in (MNS150) and are permitted to work in the company and division in (MNS151). Furthermore, the authorized users must exist in (CMS718).

  • The approval code and authorized user are set after the recode of the invoice, or when no suspense accounts are left on the invoice voucher.
  • The invoice administrator, verifer, and accounting responsible are set per invoice at the invoice entry in 'Supplier Invoice. Record' (APS100) or in 'Supplier Invoice Batch. Open' (APS450).
  • The authorization priority indicates the priority of the authorization settings. This setting is to enable a dynamic fetching of the approval code and authorized user per cost or balance accounting line on an invoice. A dynamic fetching of the invoice administrator, verifier, and accounting responsible are also set up.
  • In each priority, you can select the objects that should decide what code and user are used. You can have a maximum of 15 priorities. The highest priority is priority 1.
  • The field 'New priority' indicates the new priority for a specific authorization setting. When this new priority is used, all the other priorities are renumbered.
9. 'Authorization Selections. Open' (CMS710)

Setup per approval type and priority, the different from and to values on the object fields to decide what approval type to use within the different intervals. For example, what approval code, authorized user, and other user types are needed. You can specify the value of several intervals within the same priority and approval type, and if needed, a date to define when the authorization selection starts to be valid. The date that is used as from date is the accounting date.

You must first create authorization settings in (CMS711) before the work can start in (CMS710).

Approval process flow

When an expense invoice is registered, the invoice header is created in ‘Supplier Invoice Header’ (APS260), table (FPLEDH). The Invoice administrator, Verifier, and Accounting responsible are created for the invoice in the approval flow transaction table CSAPRO.

When no suspense accounts exist after the recode or directly on invoice entry, and if the invoice is not payment approved, the approval transactions are created according to the authorization settings. The transactions are created and stored in the approval flow transaction table CSAPRO. The status is set to '9-Completed' on the approval type 5='Accounting responsible' transaction when the recode is done and no suspense accounts exist.

If another recode is done, all approval transactions in approval flow transaction table CSAPRO are deleted for the authorized users that is the approval type '2-Authorized user'. They are created again when no suspense accounts exist.

Similar values on the approval transactions per original authorized user and approval code within the same authorization combination are summarized.

The authorization process starts when the invoice is verified as approved.

All amounts are in the local currency of the division in (MNS100).

The approval, actions, and authorization of the approval lines are performed in 'Approval actions – Per user. Open' (CMS740), 'Approval actions – Per Invoice. Open' (CMS741), and 'Approval actions – Authorization. Open’ (CMS742).

In the invoice approval process, these fields are important:
  • The 'Status' field on the approval transactions. This field indicates what the status is on a specific user action. These are the alternatives:
    • 1: Pending. Pending recode of the invoice or pending authorization. When an approval transaction is pending, you must wait until the transaction becomes approved.
    • 2: Active. You can take action or the approval can start.
    • 3: Not authorized user. When the parameter 'First authorized user' is set to 1-'First user with authority to approve' on the route in (CMS716), and the first authorizer does not have the authority to approve, status 3 is set on the action. The next level user is used instead.
    • 4: Rejected. Another user must take over the action or the invoice.
    • 5: Canceled. The invoice is canceled.
    • 6: Resolved. A task is resolved.
    • 7: Invoice administrator action is needed. The invoice administrator has to take an action.
    • 8: Out of office. The authorized user is out of office.
    • 9: Completed action or completed approval transaction.
    • 10: Incomplete. Something is wrong on the approval transaction.
  • The 'Reason code' field indicates the reason why an authorization or action is needed. These are the alternatives:
    • 1: Authorized User. The authorized user must do the authorization.
    • 2: Limit amount. The next level user must do the authorization due to the amount limit of the authorized user in (CMS721).
    • 3: Out of office. An authorized user, which is the substitute user or next level user, gets the approval action due to the fact that another authorized user is out of office.
    • 4: The executive user should do the executive approval.
    • 5: Number of authorized users. The next level user must do the authorization defined in the parameter 'First authorized user' in (CMS716).
    • 6: The approval code is not found in the authorization settings.
    • 7: The authorized user is not found in the authorization settings.
    • 8: The substitute user is not found in (CMS719).
    • 9: The next level user is not found in (CMS718) or in (CMS719).
    • 10: The approval route group is not found in (CMS717).
    • 11: The approval route is not found in (CMS716).
    • 12: The authorized user route group is not found in (CMS719).
    • 13: The invoice is for cancellation.
    • 14: Rejected by verifier. Another verifier must approve the invoice.
    • 15: Rejected by accounting responsible. Another accounting responsible must approve.
    • 16: Rejected by authorized user. Another authorized user must approve.
    • 17: Authorized user is already selected.
    • 18: New task assigned.
    • 19: Role changed.
    • 20: No accounting responsible found in the authorization settings.
    • 21: No verifier found in the authorization settings.
    • 23: Segregation of duty. A next-level user has been added as an authorized user to fulfill segregation of duty.
  • The 'Authorization combination' field indicates the group of all the authorization transactions belonging together to the same approval code and original authorized user. Next level users may need to provide several authorizations.
  • The 'Approval sequence' field is the sequence within one approval authorization combination.
  • The 'Role' field is the same as approval types 2 to 5. See the Basic data and settings for the approval flow of expense invoices section.
  • The 'Invoice administrator' field indicates the person responsible for the overall work with the invoice. This is a kind of invoice supervisor.
  • The 'Verifier' field indicates the person who verifies whether the supplier invoice is a scam. You can set the auto verified user in (CRS624) or in (MFS620.)
  • The 'Accounting responsible' field indicates the person who do the recode of the invoice.
  • The 'Original authorizer' indicates the user who is set on the accounting transactions in the General Ledger. This is the first user found from the authorization settings in (CMS710).
  • The 'Comment' field indicates an optional manual comment that you can include on the approval line.
  • The 'Start date - action' field is the start date for an action to be done in the approval process.
  • The 'Completed date' field is the completion date for an action.

'Approval actions – Per user' (CMS740)

(CMS740) is the starting point for all users. This is where you can see all the invoices you are involved in and the different roles and statuses on the different invoices. This is also where the verifier and the accounting responsible perform their actions in the approval flow.

You can select the approval type, status, and action start date in the header to see what actions you must do on different supplier invoices. You can see all expense invoices you are involved in and what role you have on each invoice.

In (CMS740), the approval flow includes four actions: 'Approve invoice', 'Reject', 'Cancel invoice', and 'Resolve task'.

You can use 'Approve invoice' and 'Cancel invoice' if you are the verifier.

You can use 'Resolve task' if you are the accounting responsible.

Both the verifier and the accounting responsible can use 'Reject' and 'Change role'.

If the verifier uses 'Approve invoice', the approval process starts for the authorized users. If the verifier uses 'Cancel invoice' because the invoice is spam, the invoice administrator receives an action with reason code '13 – Invoice must be canceled' and must assign someone to complete the cancellation.

The accounting responsible can resolve tasks assigned by the invoice administrator. Active tasks are automatically completed when any action regenerates the authorized users on the invoice. For example, recoding or using 'Generate' in (CMS741). If all authorized users have approved their lines on an invoice, but the accounting responsible has an active task, resolving it approves the invoice for payment.

If the accounting responsible or the verifier rejects an invoice, the Invoice administrator must take action and assign another user by using 'Change role' in (CMS741).

Both the accounting responsible and the verifier can use 'Change role' to assign their role on an invoice to another user. If the verifier role is reassigned, the authorized users for the invoice are automatically regenerated.

You can directly access (CMS741), (CMS742), (APS260), 'Accounts Payable. Display' (APS200), 'Supplier Invoice. Display Separate' (APS215), and 'Supplier Invoice. Recode' (APS110).
Note: The user is the user who is logged into M3 BE system.

'Approval actions – Per invoice' (CMS741)

All the different users who are assigned to and working on an invoice in different roles are displayed in this program. This is where the invoice administrator performs their actions in the approval flow.

You can see the overall picture of the work with the invoice: The different user roles, their actions, and the status on the different approval transactions.

This program is used by the invoice administrators and managers, where they can see the invoice perspective for the overall approval actions. You can set the security settings on this program.

You can access this program from (CMS740) or (APS260).

These actions are available in the approval flow in (CMS741):
  • The invoice administrator can use the related option 'New task – accounting responsible'.
  • The invoice administrator can use the function key 'F14-Generate' to generate the invoice.
  • The invoice administrator can use the related option 'Change role' to change which user has the roles of verifier and accounting responsible. When the user assigned to the verifier role is changed, the authorized users for the invoice are automatically regenerated to ensure the correct application of rules such as segregation of duty. Additionally, anyone with access to (CMS471) can use 'Change role' to reassign the invoice administrator role to themselves or another user. This option cannot be used on transactions with approval status 9-'Completed'.
Note: You cannot change the authorized users because changing the authorized user requires that the approval transactions are regenerated, since a change of authorized users can affect the next level users. If the wrong authorized user is used when creating the approval flow transaction table (CSAPRO), you must correct the authorization settings.

The invoice administrator can also, if needed, regenerate the approval transactions for all authorized users, which are set as approval type = '2-Authorized user', by using 'F14-Generate'. This action is needed, if for example, the settings and selections are changed in the authorization settings. You must regenerate the approval transactions according to new settings in (CMS710) and (CMS711), or new settings in the other basic data programs. You can set the ordinary M3 BE security to have security on the function key F14-'Generate'.

If an invoice is initially entered as an expense invoice and triggered in the supplier invoice approval flow, but later found that the invoice must match a PO instead, you can proceed with PO invoice matching and release the invoice from the approval flow. Start PO invoice matching in 'Supplier Invoice. Recode' (APS110) using option 11-'Invoice control', or in 'Supplier Invoice Batch. Open' (APS450) using standard PO invoice matching and recode. The invoice can then be approved for payment in (APS110).

To stop the invoice approval flow, the invoice administrator uses the function key F18-'Stop approval process' in 'Approval actions - Per Invoice. Open' (CMS741/CMS741MI). If the invoice is already approved, it cannot be stopped. When the approval flow is stopped in (CMS741), all approval transactions for this invoice are updated to status=5-'Cancelled' with reason code=22-'Approval flow stopped'.
Note: After the approval process is stopped, it cannot be restarted.

API transaction: CMS741MI - StopApprFlow. See the metadata for more details.

You can directly access (CMS742), (APS260), (APS215), and (APS110).
Note: The user is the user who is logged into M3 BE system.

'Approval actions – Authorization' (CMS742)

In the program (CMS742) is where the authorizers work with their approvals.

An authorized user works with the authorization of one or more approval transactions that they are responsible for and that need an action from them. The authorized user can approve or reject the approval transactions.

You access this function from (CMS740) or (CMS741).

The authorized user can use the related options 'Approve line' and 'Reject line'.

The authorized user can use actions 'Approve all lines' and 'Reject all lines' to approve or reject all their active lines. Lines that are in status 1-'Pending' or already approved are not affected.

If the approval transaction is approved, the status is set to '9-Completed’ on that transaction. If further approval is needed by a next level user, that approval transaction is set to status '2-Active'. The next level user can then do the approval. The user who is first in the sequence must do the approval first before the next level user can do their approval.

If the approval transaction is rejected, the invoice administrator gets an action to investigate what actions are needed.

When all approval transactions are completed, the invoice is updated as payment approved.

You can directly access (APS260), (APS200), (APS215), and (APS110).
Note: The user is the user who is logged into M3 BE system.

More to consider

These are the other things to consider in setting up the approval flow for expense invoice:
  • 'Voucher. Display' (GLS200)

    The original authorized user and the approval code are set on invoice entry or after the recode. They are updated on the accounting transactions in the general ledger (table FGLEDG) and can be displayed in (GLS200).

  • Cancel invoice

    When an invoice is canceled in (APS110) or in 'Voucher. Reverse' (GLS900), all the approval lines with approval type = '2-Authorized user' are deleted. The approval transactions for the invoice administrator, verifier, and accounting responsible are set to status '5-Cancelled.

  • Reverse invoice with new accounting date

    When an invoice is reversed with new accounting date in (GLS900), all the approval transactions are re-created. This is because a new accounting date might affect what authorization settings to use when it comes to the from date in (CMS710).

  • Display supplier invoice header in (APS260)

    Display the supplier invoice header table (FPLEDH). There is one header record against one supplier invoice in accounts payable table (FPLEDG, transaction code (TRCD=40)). From this program the invoice administrator can access (CMS741).

  • Security

    You can set the security on all the programs and API transactions in ordinary way in the M3 system.

  • API transactions

    APIs exist for all approval flow programs. Descriptions with further information are found in the meta data for the APIs: APS260MI, CMS710MI-CMS711MI, CMS715MI-CMS721MI, and CMS740MI-CMS742MI.