Skip to Content

OpenText VIM: Invoice Approval Process and Chart of Authority


The document provides the overview of invoice approval process cycle in OpenText VIM for both PO and Non-PO invoices along with important configuration steps involved. It also covers linkage of process types and chart of authority in invoice approval process along with their configurations.

Invoice Approval Process:

OpenText VIM provides the facility to approve the invoices before they are created in SAP. The approval system is easily configurable and highly customized with provision of multi-level approval. Approval process is available for both PO and Non-PO based invoices. Non-PO invoices support multilevel approval. PO invoices have only one step approval but can be customized for multilevel approval. Approval can be delayed by sending the invoice to AP Processor first. Approval process ends when the invoice is approved and posted or deleted or rejected.

Important roles involved in invoice approval process:

  1. Coder: Person responsible for entering accounting data.
  2. Requester: Person who has requested the goods or services.
  3. Approver: Person responsible for approving the invoices.
  4. AP Processor: Member of Accounts Payables team responsible for dealing with invoices.

NOTE: Above mentioned roles are the basic roles involved in the IAP however one can create additional roles.


Figure 1: Invoice Approval Process

Approval can be handled at two stages:

  1. DP processing stage: Process type needs to be configured accordingly (steps to configure the process type are written below). Approval workflow can be started by clicking ‘Submit for Approval’ option.
  2. After conversion of DP document into SAP parked invoice: Appropriate parking reason has to be provided. Create parking reason if required. Based on the parking reason workflow starts. Approval workflow is triggered by changing the parking reason. Trigger points can be configured for this by going to /n/opt/spro > Configuration > Non PO Processing > Invoice Approval Process > Approval Workflow > Additional Configuration – Web Approval. Below is the screen shot.


Figure 2: Configuration for document parking reason

BLOCKRSN 9 is for PO based invoice and V is for Non-PO based invoice. ‘Start Approval Immediately’ starts the workflow immediately without delay.

Configure Process type: A process type needs to be created for approval when approval is required at DP processing stage. Process type can be defined using transaction /n/opt/vim_8cx1. Below are the important fields:

  • Process type number: 5 digit unique number.
  • Process type: Description of Process type.
  • Initial Actor: User that gets the work item.
  • Initial Actor Function: If no initial actor is available then it is picked from the function module specified here.
  • Is Exception: If this check box is selected then process type will be not be relevant for automatic document processing.
  • Auto Start: If this check box is not checked then Initial Actor manually starts the workflow else it is automatically started.
  • Create SR: If this is checked then automatic service request is created.
  • Country Check: Checks country specific configurations.
  • Workflow Type: Opentext Approval Workflow or External Workflow can be selected for this.
  • Task ID
  • Binding Function
  • Max Retry Counter
  • Retry Time (Minutes)
  • Mail Config ID
  • Function Module for Rcvr Email
  • Function Module to send email
  • Logical System: Enter the name of the system where the external workflow is supposed to run.


Figure 3: Process Type

To receive and send email the configurations are done in the process type for respective function modules.

IAP Process Configuration:

Below are the important steps involved in the invoice approval configuration.

  • Defining Multi Level Approval: For PO invoices a custom extension is required. If the approver rejects the invoice then it is send back to previous approver. If the first approver rejects the invoice then it is send to AP department. The user from AP department has the option to select the approver if process is started from DP dashboard. Approvers are maintained in Chart of Authority.
  • Driving the Approval Flow for DP Invoices: The process starts when invoice gets the process type for approval or ‘Submit for Approval’ button is clicked. For Non-PO invoices the initial approver is usually entered in the indexing screen in the Email ID field. For PO invoices the approver is the requisitioner.
  • Driving the Approval Flow for Parked Invoices: The process starts when document is parked or ‘Submit for Approval’ button is clicked.
  • Defining Approval Hierarchy and Approval Level: Approval hierarchy can be implemented by either using OpenText delivered approval hierarchy table or customization as per business needs. OpenText delivered approval hierarchy table allows defining the approver, coder and respective hierarchy for them along with approval amount, currency, company code and plant for which the user is authorized to approve.
  • Defining the Expense Type: For few expenses (Marketing Expense, Office Supply, Communication, Utility, etc.) a different path might be required and for this expense types are configured which allows defining different approval limits for different expense types. Expense type can be created by going to /n/opt/spro and then to LiveLink VIM – Configuration > Non PO Processing > Invoice Approval Process > Setup Approval Chain > Expense Types > Maintain Expense Types. Create the expense type, provide description and indicate if approval is required for the expense type.


Figure 4: Expense Types

  • Defining Approval Access Rights: Some of the access rights are: Approve, Coding, Coding_Display, Coding_Delegation, Override, Look_ahead and Configuration
  • Configuring the Email Notification: Approvers will receive email notifications if any new invoice is waiting for their approval for this method Get_Approver_List of business object type /ORS/INVAP is used to get the approvers and method SENDEMAIL is called to send the mail. The actual function to create the send request is /PTGWFI/CP_SENDMAIL. The body of the mail can be easily configured.
  • Configuring the Certify Message: When approver approves the invoice then a message is displayed. This can be configured at /n/OPT/SPRO transaction and follow LiveLink VIM -Configuration > Non PO Processing > Invoice Approval Process > Technical General > Invoice Approval Configuration. Maintain the text id here that needs to be shown post approval.


Figure 5: Certify Message Configuration

  • Configuring General Ledger Fields and Search Help for Web Screen Fields: This can be done at LiveLink VIM – Configuration > Non PO Processing > Invoice Approval Process > Financial Processing > Online Coding > GL Titles.


Figure 6: General Ledger Fields and Search Help for Web Screen Fields

Chart of Authority:

Chart of Authority (COA) is required to setup the approval hierarchy for Non-PO invoices. In case of PO invoices baseline implementation determines the
requester as the first approver and is the only approver unless a customization is done for PO approver. In COA one can configure the approval hierarchy, the approval limit and coder for the invoice approval process. T-code to access the COA is /n/opt/vim_7cx1. There are three views available in COA.

  • User Details View: It contains the general details for all the users like user id, user’s manager id, if user is allowed for bulk approval or not, department of user, email address, telephone number, default coder etc. If the requirement is to allow the approval to go first to the approver and then to the manager then maintain the manager for the user in this view without manually entering the user in COA Details View. The data for the user is automatically populated in COA Details View.


Figure 7: User Details View

  • COA Details View: In this view the data for approval are maintained like approval amount up to which approver can approve, currency for which approver is allowed to process approval, company code and cost center for which approver is authorized etc. Thus it basically controls the approver limit and scope of approval.


Figure 8: COA Details View

  • Coder Details View: This is where coders are maintained for the requester. Thus due to this configuration the system knows from where to pick the coder for a particular requester. If the ‘Default’ check box is ticked then it means that user is always a coder.


Figure 9: Coder Details View

The user details contains all the users and the managers to whom invoice will go for approval. The approval limit is set in COA details and corresponding coder can be determined from coder details. Thus process type helps to know is approval is required or not and COA helps to know who will be approving.

You must be Logged on to comment or reply to a post.
  • Hi Pankaj,

    Thank you for throwing light on invoice approval process in VIM. The document is quite detailed and easy to understand. It is really helpful.



      • Hi Pankaj,


        Thank you so much for sharing this wonderfully knowledge with us.


        I have one question in the VIM i’m approval is done successfully but after doc status not changed like posted¬† also it not showing any error in history tab.

        can you suggest me why it happened?





  • Hi Pankaj,

    Thanks for very detailed document.

    If the non-PO invoice is approved will it post the invoice automatically or manual posting is needed?

    Do you have any idea on multiple back end scenarios ? Whether invoice will be posted in central system as well?



    • Hi Raja Ramasamy,

      Thank you for feedback on the document.

      Once the invoice is approved then it will get posted automatically. The SAP transcation that will be used for this is provided in the process type (either BDC ID or Background ID) and yes the invoice will be posted in central system. Can you elaborate multiple back end scenarios so that I get better idea on your question.


      Pankaj Pareek

      • HI Pankaj

        Thank you for the detail document.

        Incase of Non PO, if an approver doesn’t have Manager designation, it going for next level Approval. And the next level approver doesn’t have an option to approve. Refer is the only option available



  • Hi,

    Mind to show Level Based Approval and configuring on Level Based Approval – Chart of authority Maintenance? We have a lot confusion in setting up the coder, requester and approval for Non-PO.

  • Hi Pankaj,

    I had configured NON-PO approval process using new COA level based approval. In the first level approval (at coder level) i am getting below error.

    “Error in determining the next approver. /ORS/000007_RFC “

    Please help me to resolve this…



    • Hi Raja Ramasamy,

      Sorry for delayed response. I am working a new project and joined it in middle of development. I found the same issue. There can be multiple reason for this like in my project the next approver is derived based cost center and if approver is not maintained for the cost center then it gives error. Alternatively if the next approver is derived based on company code and no approver is maintained for company code then it gives error.

      Different project has different methods and the approver is accordingly maintained. I can just give you direction as to where to look. Hope it helps.


      Pankaj Pareek

      • Thanks Pankaj. I found the root cause. Simple approval is working but level based approval is not working now. I am getting some FI errors like ” Balance in local currency FI/CO interface “. Let me check if there is any bug in the standard program iteself…



  • Hello Pankaj

    Very nice and helpful document.  Many thanks.  But I have problems to apply this in VIM 7.

    Do I have to maintain managers when I only base my approval process on cost centers and company codes?

    And If I want in any position that a rejection of a non PO invoice send the work item to the coder what do I have to do?  Today in rejection case workflow is going to level n-1.

    Many thanks in advance.

    • Hi Touria,

      Sorry for delayed response. I have been very busy lately. We have similar scenario implemented where the flow is like this: Indexer –> Coder –> First level approver –> Second level approver (if amount is more than what first level approver can approve). Any rejection at ant level goes back to person at n-1 level. For this we have implemented a workflow setup. Setting up COA was not helpful.


      Pankaj Pareek

  • Hi Pankaj

    Your document above is very useful. Please can you give the relevant SAP tables where VIM users are held – I have found /OPT/APPR_COA.
    This table is the Chart of Authority levels and coder\approver details, but I cannot find any table which contains the VIM users – ie first name, last name, Opentext User id and SAP user id – just like the user details view in the COA.

    Any ideas?

    Thanks in advance.

    • Hi Nigel Briggs,

      Kindly use table /ORS/USERMAP to see all the details for the user. In order to map a new detail for a user got to T-Code /n/opt/vim_7cx1 i.e. COA and under User details maintain the data (refer below screen shot). I recall someone asking me list of important tables in VIM. I will be providing the info soon.


  • Hi Pankaj,

    Thank you for the great article!!

    It helps me a lot to understand how the system work.

    I just have a few questions and maybe you are able to answer them.

    For OpenText VIM, does the system base on a list of words for the system to read on invoice and to capture the necessary information?? can the list also be customized?

    For the template, are we able to give a general key areas to the system for it to capture the information? becasue my company’s vendors have all kinds of invoice’s formats.

    Best Regards,

    Andrew Lee

    • Hi Andrew,

      Thank you for the kind words.

      One can apply various methods and different tools to capture the information from scanned image. It is done mostly using OCR scanner. The data is scanned, read and information is send to populate a standard XML structure. This XML is then used to populate values in the DP document in OpenText VIM. You can map different invoice formats if required so that the scanner reads and fetches information from them correctly. Invoice Capture Center (ICC) is a place where this processing happens. However, I have came across some other tools and methods also to do this.


      Pankaj Pareek

  • Hi everybody,

    This is terrific :-). Really clear and helpfull.

    One subsequent question. Any idea of a way to default an Expense type for a particular Document type ? I would like to default Expense type DW to our Down Payment.

    Thks and rgds


    • Hi Stephane,

      I am really sorry for a very delay reply. I was on vacation.

      Thank you so much for the kind and encouraging words.

      Now, expense type (field name EXPENSE_TYPE) is available in Header. It is very much possible that you can default a value for a document type.

      1) In the configuration make this field available. It can be Input or Display only based on your requirement

      2) You can modify the BAPI for it or apply a substitution rule. Reach out to ABAPer for this.

      We have done population of default values for few fields. I will check what will be the most efficient way to do this and get back to you.


      Pankaj Pareek

  • Dear all,

    It seems adding and activating standard process type ‘333 – determine expense type’ to a Down payment doc. type automatically assigns DW as expense type. The only down side I’ve noticed with that method is that DW is only populated after the ‘Apply business rule’ function is run. So if you simulate rules from indexing screen, approval step / exception will appear with a green light because DW is still not considered (which is not correct). But this does not prevent the approval step to occurre at the end. So not 100% reliable but it works.

    Looking at the function module behind, this has been added / coded at a wrong step.



  • Hi Pankaj,

    Thanks for sharing your knowledge around VIM configuration ūüôā

    I have a specific question: can we hide a button in VIM Workplace?

    We’d like to hide button “Image” within My Inbox/Other Inbox on the lower right-hand side pane next to “Line Items” and “History” buttons (highlighted in red in the screenshot).

    VIM Workplace-Hide Button.png

    Thanks and regards,


    VIM Workplace-Hide Button.png
    • Hi Laura,

      Hope you are doing good. I am glad that the documents proved to be useful to you.

      I checked but I am sorry for I was not able to find any configuration to hide these buttons. I will try to talk to my friends in OpenText else we might have to raise an incident against OpenText for this.

      Thanks and Regards,

      Pankaj Pareek

      • Hi Pankaj,

        I’m doing well thanks. I hope you are doing good too.

        Thanks for your quick response. It would be great if you could talk to your friends in OpenText. Otherwise, as you say, it might be a good idea to raise a ticket with them.

        I’m looking forward to hearing from you ūüôā

        Thanks and regards,


        • Hi Laura,

          I tried very hard to check if any configuration is available to hide “Image” button. Unfortunately, I found none. We do have a configuration for “Image Display Function” where one can define the FM used to fetch the ArchiveLink image. It is for PO Parked, PO Blocked, and Non-PO. However, I am not sure if that will prove to be a workaround for you.

          Path for Image Display Function:

          PO Parked: Vendor Invoice Management > PO Based Invoice Configuration > Parked Invoice Processing Configuration > Technical Configuration > Image Display > Image Display Function

          PO Blocked: Vendor Invoice Management > PO Based Invoice Configuration > Blocked Process Configuration > Technical Configuration > Image Display > Image Display Function

          Non-PO: Vendor Invoice Management > Non PO Based Invoice Configuration > Parked Invoice Processing Configuration > Technical Configuration > Image Display > Image Display Function Non PO

          I did try to reach out to my friend in OpenText but seems he is occupied these days.

          I am pretty sure that editing a screen exit might be required for this but it will be better if we raise an incident with OpenText to get exact details.

          Please do share if you get a response on this from them.

          Thanks and Regards,

          Pankaj  Pareek

          • Thank you very much for quick response Pankaj ūüôā

            We are looking into OpenText config to fix the issue that originated this question in the first place. If that can’t be fixed, then we’ll raise a message with OpenText asking them if there is a screen exit available to hide this button in the screen.

            Thanks and regards,


  • Hi Pankaj,

    Thanks for sharing info on VIM.  I have seen other write ups as well on VIM and found it very useful. Suggest to give a link to  your various VIM write ups so it helps all SAP Professionals.



  • Hi

    I have requirement to bypass some invoices approval level table, currently after the one approval system determines the next approval based on the COA table in VIM and now due to some confidentiality of invoices, approval needs to be escalated from Level-1 approver to directly level 5 approver thus skipping level 2,3, and 4.

    We have tried with Reassignment (/ORD/UNREASSINED – Reassignment utility) – Invoice was at L1 – Approver and instead of approving L1, the L1 approver reassigned (thru /ORD/UNREASSINED) invoice to L-5 Approver. When L5 approved it and then it routed down the ladder to L3, L4 and L5.

    Could you please how I can resolve this?


  • Hi Pankaj,

    i have gone thru your document its really informative .

    i have one below requirement if possible can you help me?

    Regarding –Create/Configure ICC validation client prototype you have any documents how to configure this.

    my requirement is need to implement ICC validation client which helps us to eliminate the manual effort to update missing invoice information in production system (drag and drop option) this would help AP select data on the invoice and drop it into the respective fields as while processing  this invoice

    i have googled already but couldn’t find anything related.

  • Hi all,

    Strangely two of my posts content has been replaced by someone else’s content post movement of SCN to SAP community. This one is giving details on netweaver instead of VIM invoice approval.

    Also, OpenText VIM: Basic configuration for Document Processing (DP) document types is not reflecting the right content.

    I will try to reach out to mentors on this and report.

    In the meanwhile if someone has any questions on this topics then kindly reach out to me

    Pankaj Pareek

    • Hi Shwetha,

      Sorry for delayed reply. I have been on a hectic schedule and was not online for quite some months. Also, I am not getting notification messages over email on the comments been posted in the blog.

      Coming to your query. Yes, it is very much possible to achieve that. We are currently having the same setup and for this we have used a custom solution. We are using workflow based on rules. So for one of the rules we are setting up Balance sheet approvers. For the cost center approver we are using HR based workflow. We are mapping cost center to the position in PP01 based on the relationship A250 and then maintaining PRMD for it.

      If you are looking for a solution with the standard then it is possible in the VIM 7.5 version. I am not sure if that can be done without custom solution in previous versions.

      Hope that was helpful


      Pankaj Pareek

  • Hi Pankaj/All

    I have a question, is there a Table which stores the changes in COA Details, (Changes in GL/Cost Center РApprover 1 & 2 assignments)

    This is an important when there is some one want to trace back the COA assignment history on back date.

    Thanks in advance


  • Hi Pankaj,

    Am having a scenario where for a combination of expense type , Profit center and company code the user assigned  in CoA is not able to approve an Invoice for e.g. User B.

    USER              Counter Currency Amount  Expense type company code     Profit center
    User A                300    EUR    56,00           A1                3XXX                     5XXXX117XB
    User B                  20    EUR    1,00             A1                3XXX                     5XXXX117XB
    User C                400    EUR    108.000,00  A1                3XXX                     5XXXX117XB
    User D                600    EUR    9.999.999,0 A1                3XXX                     5XXXX117XB

    if the same document is used with a different Expense type with all the remaining data same the user is able to approve the invoice. for e.g. User E
    USER              Counter Currency Amount  Expense type company code     Profit center
    User A                100    EUR    56,00           B0                3XXX                     5XXXX117XB
    User E                  20    EUR    1,00             B0                3XXX                     5XXXX117XB
    User C                200    EUR    108.000,00  B0                3XXX                     5XXXX117XB
    User D                601    EUR    9.999.999,0 B0                3XXX                     5XXXX117XB

    am getting a error “Invalid Approver”

    • Hi Pratip,

      Sorry for delayed response. Since I am using a customized solution for this hence I will not be able to check on this. I will need the check that in your system.


      Pankaj Pareek

  • Hi Pankaj,

    Amazing document. Thank you for sharing these steps in detail.

    I have an issue in my organization where the non-PO invoice is going to the correct approval as per COA. All the details are maintained in the COA for the approver’s ID but still the user is not able to approve the Invoice. The user has approved non-PO invoices in the past but only this invoice is stuck. Can you please guide?



    • Hi Anjani,

      I was moving to a different country and was busy for past few months. Is your issue resolved? If it is reoccurring then let me know. We can check COA, workflow logs and data to ensure where things are going south.


      Pankaj Pareek


        Hi Pankaj,

        Thanks for replying. Yes, the problem is resolved. Problem was that there were duplicate IDs maintained for the user in /opt/vim_7cx1 table.



  • Hi Pankaj,


    Need some help urgently. We are currently upgrading VIM system. We have one requirement to send Approvals of the PO to different Cost Owners based on the Account Assignment in the PO if there are any price/quantity differences in the PO and MIRO.

    We have developed a function module to determine the right Agent for the Cost Object based on the Account Assignment type K or F or A.

    Now the problem is workflows are triggered for each line item basis. However when approving the agent selects a Line item and approves it, system is clearing the total invoice rather than only approving the individual line.

    Is it possible to approve & pay as invoice for individual line item in VIM Module? As far as I see we are calling MRBR transaction for release block.

    Please let me know if you need any further details on this.







  • hi Pankaj,


    I have blocked one invoice due to quantity is with non-prd po. But when I generate invoice exception it went to some other user who was not in purchase group and not po creator. why this is happened? what should I do now?



  • Any idea how Currency is determined for NPO and PO scenario’s. We have scenario where we want the invoices to be posted in INR but the DP document after Image scanning is showing EUR. The invoice PDF is not mentioning the document currency.

  • Hello Pankaj,


    Thanks for the detailed COA function explanation.


    My question is: as I am maintaining the COA table for quite a time, I have been asked multiple times – is it possible, and if yes – how, to allow a coder (limit = 0.00) or an approver (limit > 0.00) to send an invoice after taking action not to the next approver (set in the COA), but to another selected person? I guess, it is called “Override Approver’ when it comes to the stage of providing invoice approval in OT?

    Will this function become available if, for example, we set A as the next approver for user A (a coder – himself in Manager ID field?


    There is a possibility to create something similar with the requester – coder relations, where a requester can redirect items to another person (a coder) to provide financial coding for the invoice and then receive it back just to approve. However, I am not sure whether we have selected next approvers available, instead of the one set in the field Manager ID?


    Thank in advance for your response.


  • Hi Pankaj,


    Your articles have been most helpful thank you.¬† Could I please ask a question as I have read conflicting help regarding this. For invoices that are posted in LIV and have a price/qty variance our workflow sends the DP document and the user is able to use ‘pay as invoiced’ button. We would like at this stage for the document to go for further approval before the payment block is removed. But the COA only seems to apply for parked documents. Is this scenario possible?

    Thank you

    Diane Hooper

  • Hi Pankaj,

    Thank you for creating detail document for better understanding.

    I have one requirement like standard have multiple levels approvels but we have requirement like skip all these approvels and it will go directly to max level approver .Could you please let us know how to achive this type of requirement.



  • Hi Pankaj,

    Why after create DP document using /opt/vim_7ax2 but it will not show up in /opt/vim_wp inbox ? Please give me some guide and where to check for configuration ?

  • Hi,

    I have 2 questions.

    1. What is the difference between Level based and simple approval(which you have explained here).
    2. Currently in my project we dont have approval for PO invoices. I am being given a requirement by a new project I am joining, to implement approval process for PO based invoices. Can you please help me understand step by step on what I need to do to enable the approval process for PO and how it works.
      And if PO based approval needs to be level based, what needs to be done in COA?

    Thanks in advance,