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. Local exceptions' (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.
  • 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 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 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 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 and RBHE1) 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.
  • 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' is indicates the user that 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 'Action start date' 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 invoices you are involved in and the different roles and statuses on the different invoices. Different users work with their different actions on the supplier expense invoices.

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.

The Verifier can approve, reject, or request to cancel the invoice.

When the verifier requests to cancel the invoice because it is a spam invoice, the invoice administrator gets an action with the reason code '13 – Invoice must be canceled' and must assign someone to do the cancellation.

The Accounting responsible can resolve their tasks assigned by the Invoice administrator.

When the Accounting responsible or the Verifier rejects an invoice, the Invoice administrator needs to do an action and find another user by doing change role in (CMS741).

When the invoice is approved by the Verifier, the authorization can start and the first approval transaction in each authorization combination are set to status '2-Active'.

You can directly access (CMS741), (CMS742), (APS260), 'Accounts Payable. Display' (APS200), 'Accounts Payable. 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.

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).

The invoice administrator can change the role of another user and create tasks for the accounting responsible. The invoice administrator can also change their role to another invoice administrator, verifier, or accounting responsible by using the related option 17='Change role'. The invoice administrator cannot do this on approval transactions when the status is '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’.

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).

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 that 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 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.