PentaInvoiceConnector to SAP Concur - Technical Guide

Applies To: PentaInvoiceConnector

What is PentaInvoiceConnector?

PentaInvoiceConnector is a middleware solution that facilitates the automatic synchronization of invoices and invoice-necessary data between PENTA and SAP/Concur, allowing clients to maintain up-to-date financial data while leveraging the power of both Concur and Penta. This integration will be for Concur Invoice only. The solution is a collection of Azure functions that run on client-specified schedules to send the data necessary for clients to create invoices within Concur, and once the invoices have been marked final-approved within Concur, send these invoices to PENTA, including the image.

How Does it Work?

At regular, configurable intervals, each of several Azure functions will be triggered to sync data from PENTA to Concur, and visa versa. Only records that have been modified since the last time the given function was run will be synced. These functions access PENTA data through the PentaConnectAP API endpoints and access Concur through the Concur API, using REST calls. Each function handles different types of data, and can be independently scheduled. This and all other configurations will be set up by Penta within its Azure Management space. Below is a diagram of how this process works.

The Functions

As stated previously, each Azure function within PentaInvoiceConnector runs independently and is responsible for the synchronization of discrete types of data.

SyncVendors

Handles: Vendors

From: PentaConnectAP API - GET Vendors

To: SAP Concur Vendors API

SyncPurchaseOrders

Handles: Purchase Orders

From: PentaConnectAP API - GET PurchaseOrders

To: SAP Concur Purchase Order API

SyncBalanceSheetOUs

Handles: Balance Sheet Organization Units

From: PentaConnectAP API - GET OrganizationUnits

To: SAP Concur List API and SAP Concur List Item API

SyncFixedAssets

Handles: Fixed Assets and Associated Expense Categories

From: PentaConnectAP API - GET FixedAssets

To: SAP Concur List API and SAP Concur List Item API

Creates Multi-Tiered Lists in the following pattern:

  • Fixed Asset

    • Expense Categories

SyncLedgerAccounts

Handles: Ledger Accounts and the Organization Units for which they are Valid

From: PentaConnectAP API - GET OrganizationUnits and PentaConnectAP API - GET LedgerAccounts

To: SAP Concur List API and SAP Concur List Item API

Creates Multi-Tiered Lists in the following pattern:

  • Organization Unit

    • Ledger Account

SyncJobs

Handles: Jobs, Cost Types, and Cost Codes

From: PentaConnectAP API - GET Jobs

To: SAP Concur List API and SAP Concur List Item API

Creates Multi-Tiered Lists in the following pattern:

  • Job

    • Cost Type

      • Cost Code

SyncPaymentTerms

Handles: Payment Terms

From: PentaConnectAP API - GET PaymentTerms

To: SAP Concur List API and SAP Concur List Item API

SyncSubcontracts

Handles: Subcontracts

From: PentaConnectAP API - GET Subcontracts

To: SAP Concur List API and SAP Concur List Item API

Creates Multi-Tiered Lists in the following pattern:

  • Job

    • Subcontract

      • Subcontract Detail (Line Number)

SyncWorkOrders

Handles: Work Orders

From: PentaConnectAP API - GET WorkOrders

To: SAP Concur List API and SAP Concur List Item API

Creates Multi-Tiered Lists in the following pattern:

  • Work Order

    • Organization Unit

      • Cost Type

SyncInvoices

Handles: Invoices

From: SAP Concur Financial Integration API

To: PentaConnectAP API - POST AccountsPayableInvoiceBatch

SyncInvoiceImages

Handles: Invoice Images

From: SAP Concur Image API

To: PentaConnectAP API - POST Documents

Token Management

Concur authentication uses an OAUTH2 framework and manages access to its APIs via tokens of two types: refresh tokens and access tokens. Token management requires no input from the customer after the initial implementation when the customer supplies the company ID and uses the landing page. Refresh tokens are used to obtain access tokens, which can then be used in communications between PentaInvoiceConnector and Concur APIs. Refresh tokens can expire after 6 months, and so need to be replaced from time to time. Access Tokens can only be used for a one hour, and so, Penta will get a new one on a per-request basis to ensure validity. An initial refresh token is obtained by Penta for each client during the implementation of PentaInvoiceConnector and stored in a secured location. The refresh token is then used to obtain an access token from Concur, which then will be used for one request to Concur. As part of the acquisition of the access token, a refresh token is also sent back. If this refresh token does not match the refresh token stored by Penta for the client, the new refresh token will replace the old one, and thus avoid any token expiration issues.

Logging

By default, the following messages will be logged within Azure, and will be available upon request:

  • All serialized request and response objects to and from PentaConnectAP API

  • All serialized request and response objects to and from Concur APIs

  • The URLs that these messages are being sent to

  • The Company ID of our client

  • The Concur Correlation ID of each transaction with Concur (excluding Access and Refresh Token transactions)

More detailed logging can be configured on a per client, per function basis which would additionally include:

  • The Http response for all transactions, including headers and content.

  • The request content string sent with each call if applicable.

Â