From this article you will learn:
- What are the capabilities of SAP S/4HANA Cloud integration with Rossum
- What are the components of this integration
- How to configure the integration
What are the capabilities of SAP S/4HANA Cloud integration with Rossum
Our Automation Suite for SAP S/4HANA Cloud is a ready-to-use integration solution that connects data extracted from your invoices by Rossum with your SAP S/4HANA and vice versa your SAP master data with Rossum for validation checks. This solution speeds up processes, reduces delays, and minimises the need for manual work in the Accounts Payable team. It guarantees accurate and swift invoice processing without extensive human involvement.
In addition to transferring extracted data to SAP S/4HANA Cloud, this integration includes automated checks. They rely on the master data imported from SAP, ensuring reliable results and data accuracy.
What are the components of this integration
The base of the integration are two extensions prepared by our team: Scheduled import of master data and Export invoice to SAP. These two add-ons, along with the Data Matching extension from Rossum store, can cover the entire process of validating checks and exporting data extracted from invoices to SAP.
How to configure SAP S/4HANA Cloud integration with Rossum
First steps
You can find the integration in the Rossum store. When you click on “Try extension,” you will be taken to a form where you can provide the additional information we need to assist with the setup. After you submit the form, our team will contact you to help with the integration configuration. The description below provides a simple overview of how the integration functions.

Scheduled import of master data (from SAP to Rossum)
This extension is responsible for import of your master data from SAP to Rossum. Currently it is possible to upload “Business partners” and “Purchase orders” data.
SAP configuration
The extension uses SAP’s public OData APIs. You can find more details in the SAP Business Accelerator Hub:
By default the API requests use the $expand
parameter to enrich the basic data by these expansions:
to_PurchaseOrderNote, to_PurchaseOrderItem
(for Purchase orders)to_BusinessPartnerAddress, to_BusinessPartnerTax
(for Business partners)
To enable these APIs you need to configure below mentioned communication scenarios in your SAP system:
Purchase Order Integration(SAP_COM_0053)
Business Partner, Customer and Supplier Integration(SAP_COM_0008)
To allow the communication between Rossum and SAP you also need to set up a Communication user
and Communication system
.
Rossum configuration
There are four important parts of the extension that you need to define in Rossum: extension schedule, queues, configuration and secrets.
- Schedule – establish a schedule for how frequently you want the extension to run. This follows a standard Unix-like cron schedule format. For instance, setting it to 0 * * * * would mean it runs once every hour (please keep in mind that the schedule is defined in UTC time zone)

- Queues – a list of the queues where your extension will become active

- Configuration – here you can provide user name of your SAP communication user, service URL and size of batches you would like to import (in JSON format)
{
"username": "{username of your communication user}",
"service_url": "{hostname of your communication system}",
"records_per_request": "{size of batches}"
}

- Secrets – it is a place where you should add password of the SAP communication user (in JSON format). Secrets are visible only when entered in the Secrets field and become hidden when you save the changes. They can be rewritten by a new value.
{
"password": "{password of your communication user}"
}

Export invoice (from Rossum to SAP)
This extension is triggered by the Document content - Export
event in Rossum and is responsible for transferring the annotation data to SAP as a “Supplier Invoice”. In the process, extension also uploads the original document into SAP as an attachment. Export is executed first and then the upload follows. In case upload fails the invoice is removed from the SAP.
SAP configuration
The extension uses SAP’s public OData APIs. You can find more details in the SAP Business Accelerator Hub:
To enable these APIs you need to configure below mentioned communication scenario in your SAP:
Supplier Invoice Integration(SAP_COM_0057)
Configuration in Rossum
There are three important parts of the extension that you need to define in Rossum: queues, configuration and secrets.
- Queues – a list of the queues where your extension will become active

- Configuration – here you can provide hostname of your communication system (
sap_api_url
) and define field mapping in SAP and Rossum (in JSON format)
headers_mapping
– mapping between field in the SAP API and the header field in Rossum (referenced by its schema ID). All fields come with default values and should be present in the Rossum annotation with valid values, unless specified differentlyCompanyCode
–company_code_matching
DocumentDate
–date_issue
SupplierInvoiceIdByInvcgParty
–order_id
InvoicingParty
–invoicing_party_matching
DocumentCurrency
–currency
InvoiceGrossAmount
–amount_total
line_items_mapping
– mapping between field in the SAP API and the line items field in Rossum (referenced by its schema ID). All fields come with default values and should be present in the Rossum annotation with valid values, unless specified differentlyPurchaseOrder
–purchase_order_number_matching
PurchaseOrderItem
–purchase_order_item_matching
TaxCode
–tax_code_matching
SupplierInvoiceItemAmount
–item_amount_total
QuantityInPurchaseOrderUnit
–item_quantity
– do not send if missing or emptyPurchaseOrderQuantityUnit
–item_uom_matching
– do not send if missing or empty
{
"sap_api_url": "{HOSTNAME}/sap/opu/odata/sap/",
"headers_mapping": {
"CompanyCode": "xxx",
...
},
"line_items_mapping": {
"PurchaseOrder": "xxx",
...
}
}

The configuration explains how the SAP API information corresponds to Rossum’s annotation. Depending on your setup, you can modify none, some, or all of these mappings. If a field is not mentioned in the configuration, it cannot be sent to SAP. All keys are described in detail in the SAP documentation.
Right now, you cannot add new information to send to SAP, except for the fields we have already mentioned. However, you do have control over which field’s value gets sent from Rossum to SAP. You can do this by specifying the right field schema_id in the mapping configuration. For instance, if you want to transfer the value from your custom field as an InvoiceGrossAmount
you can set it like this: “invoice_gross_amount: my_custom_field_schema_id.
“
- Secrets – it is a place where you should add username and password of the SAP communication user (in JSON format)
{
"sap_username": "xxx",
"sap_password": "xxx"
}
