MuleSoft Accelerator for SAP
Use case 2: Procure-to-pay
Overview
Procure-to-pay is a fully integrated solution designed to support an end-to-end process for procurement, invoicing and payment management. This use case relies on Coupa as the expense management system and SAP S/4HANA as the ERP system.
High-level architecture
The procure-to-pay flow proceeds through the following steps:
SAP is the source of truth for all data related to Suppliers and Chart of Accounts. Supplier data can be bulk loaded from SAP to Coupa using the APIs in the accelerator. The assumption for the flow below is that the Supplier and Chart of Accounts data has been synced from SAP to Coupa. Please note that bulk load for Chart of Accounts will be added in a future release.
- A Purchase Request is created in Coupa. After the Purchase Request is created, it goes through an approval process in Coupa and is converted to a Purchase Order.
- The Purchase Order is automatically populated in SAP.
- Once the goods associated with the Purchase Order are received, a Goods Receipt is created in Coupa, which is also sent to SAP.
- When the goods are received, the Supplier will send an invoice that gets populated in Coupa against the Purchase Order.
- The Invoice proceeds through an approval process and once approved for payment, it is sent to SAP.
- The Invoice payment is initiated from SAP and once it is paid, it needs to be reflected in Coupa. Eventually, the payment is received by the supplier, which concludes the full process.
Systems involved
- Coupa
- SAP S/4HANA
Setup instructions
SAP S/4HANA
SAP S/4HANA should have the following APIs enabled with read and write access for the corresponding objects:
S/4HANA API | Description | REST API Resource | Business Context |
---|---|---|---|
API_BUSINESS_PARTNER | Enables operations on Suppliers | Suppliers | Business Documentation |
API_SUPPLIERINVOICE_PROCESS_SRV | Enables operations on Invoices | Invoices | Business Documentation |
API_OPLACCTGDOCITEMCUBE_SRV | Enables operations on Invoice Payments | Invoice Payments | Business Documentation |
API_PURCHASEORDER_PROCESS_SRV | Enables operations on Purchase Orders | Purchase Orders | Business Documentation |
API_MATERIAL_DOCUMENT_SRV | Enables operations on Goods Receipts | Goods Receipts | Business Documentation |
API_PRODUCT_SRV | Enables operations on Product Master | Product | Business Documentation |
Coupa
Coupa should have an API key enabled for use via Mule. This API key should have read and write access for the corresponding objects:
- Suppliers
- Inventory-transactions
- Purchase-orders
- Invoices
Mule Projects
Use the README instructions in the following Mule templates to set up, deploy, and run these projects.
Note: Deploy the object-specific system API along with the process API to start the data sync. The process API properties need to be correctly set up to point to the system APIs.
Accelerator Coupa System APIs
- Purchase Orders System API | API Specification | Implementation Template
- Invoices System API | API Specification | Implementation Template
- Goods Receipts System API | API Specification | Implementation Template
- Suppliers System API | API Specification | Implementation Template
Accelerator SAP S/4HANA System APIs
- Purchase Orders System API | API Specification | Implementation Template
- Invoices System API | API Specification | Implementation Template
- Invoice Payments System API | API Specification | Implementation Template
- Goods Receipts System API | API Specification | Implementation Template
- Suppliers System API | API Specification | Implementation Template
Accelerator Process APIs
- Purchase Orders Sync Process API | Implementation Template
- Invoices Sync Process API | Implementation Template
- Invoice Payments Sync Process API | Implementation Template
- Goods Receipts System API | Implementation Template
- Suppliers Sync Process API | Implementation Template
- Coupa Master Data Process API | Implementation Template