Integration
SAP SDS Integration Pattern
How to get structured SDS data into an SAP landscape without writing unreviewed extraction results into master data.
Last updated: 2026-10-24
What this page is. An integration pattern, not a product. We do not ship or claim a certified connector for this platform; the API is a REST service that takes a multipart PDF upload, so any integration layer that can send multipart requests and read JSON can use it.
The shape of the integration
SDS PDF in (supplier e-mail, portal, document store)
-> integration layer : builds the multipart request, holds the API key
-> SafetyDataSheetAPI : POST /extract-sds (or /extract-sds/bulk)
<- JSON : outputs.json + confidence_score + warnings + request_id
-> staging table : raw JSON, request_id, confidence, status = "staged"
-> review : people check flagged documents
-> write to SAP EHS data : approved records only, matched on CAS / product key
The important choice is the staging step. Extraction is machine-generated, so write results to a staging area first and let only approved records reach SAP EHS or product compliance data.
Where each part of the response typically goes
Names differ by SAP product and by how your system is configured, so read these as concepts to map, not table names.
| Response key | Typical SAP-side concept |
|---|---|
product_identification | Product or material identifiers and the supplier. |
hazards_identification | Hazard classification and label data. |
composition | Substances and concentration ranges. |
transport_information | Dangerous goods data. |
revision_metadata | Document revision date and version. |
Practical points for SAP teams
- Match substances on CAS (and EC) numbers, not on names. Names vary by supplier and language.
- Concentrations are text. A value such as
95-100is a range string. Parse it deliberately before it reaches a numeric field. - Multipart is a requirement of the API, so the layer that calls it must be able to build a
multipart/form-datarequest. Many SAP-adjacent integration layers can; if yours cannot, put a small service in front. - Behind a firewall? Poll instead of using webhooks. A webhook
callback_urlmust be a public HTTPS address. If your SAP system cannot be reached from the internet, submit a bulk job and pollGET /extract-sds/bulk/{jobId}. - Keep the API key in your integration layer's secret store, never in ABAP code or a client.
- Store the request_id with every staged record so a reviewer can trace it back.
How you get access: the free sample upload on the homepage needs no key, the self-serve plan issues an API key after signup, and enterprise customers get a dedicated deployment with its own base URL. See pricing.
Checklist before you go live
- Run a sample of your own SDS through the API and map the sections you need.
- Decide the confidence threshold and warning policy that sends a document to review.
- Build the staging table and the approval step before the write step.
- Test the duplicate case: resubmit with the same
Idempotency-Keyand confirm nothing is created twice. - Agree who owns review, and how quickly flagged documents must be handled.
FAQ
Do you provide an SAP connector?
No. We publish a REST API and an OpenAPI contract. Integration is built in your own layer, using this pattern.
Can SAP call the API directly?
Anything that can send a multipart HTTPS request and read JSON can. Many teams use an integration layer or a small service for the multipart step.
Should extraction results be written straight into master data?
We recommend staging and review first. The output is machine-generated and can be wrong.
Related pages
- EHS platform SDS ingestion
- Oracle SDS integration pattern
- Salesforce SDS workflow pattern
- OpenAPI contract