The purpose of this page is to give an overview of the differences between the BAPIs and the online processes
Although the online transactions and the BAPI processes are almost the same, there are still differences between them. The following list collects these differences.
Differences between BAPI and the online processes
1. Withholding tax zero value
In case a vendor that has a Withholding tax certificate (100% exempt) and zero (0.00) is entered in the withholding tax base field. In MIRO when 0.00 is entered in the field tax base, there are no error messages and the invoice is posted successfully. BAPI brings up an error message M8412 - Withholding tax code requires you to enter a base amount, but then it still posts the invoice successfully.
This functionality does not exist in the standard system.
In MIRO you can add manually change the data, in the BAPI process it is not possible.
a) Post without the withholding tax code: then the base amount will be zero in the FI document, but also the tax code will be empty.
b) Post with MIRO instead of BAPI. In MIRO you can manually enter a Withholding tax base amount of 0,00 and this will be later also in the FI document.
2. Withholding tax
Despite the information filled in the vendor master, if the vendor is subject to withholding tax you have to fill the table "WITHTAXDATA" in the BAPI.
3. Classic Withholding tax with BAPI_INCOMINGINVOICE_CREATE
If you want to create an invoice with classic withholding tax using BAPI_INCOMINGINVOICE_CREATE, you will have to implement BADI MRM_WT_SPLIT_UPDATE. Using BAPI interface table WITHTAXDATA with classic Withholding tax is not possible. The BAPI does not support the classic withholding tax because the structure WITHTAXDATA is only used for extended withholding taxes. As SAP Note 830717 describes this is supported, but only through the BADI implementation. Read KBA 2486761.
4. Duplicate invoice check
In online transactions, the duplicate invoice check ensures that no duplicate invoices are entered into the system. This functionality is not available in BAPIs. The duplicate invoice check is considered a "pure online functionality"; since the BAPIs are an automatic process they do not execute this check.
Implement note 2689288 - Check for duplicate invoices for automatic processes
5. Invoice park with Purchase order reference
With BAPIs it is not possible to park an invoice if the GR-based IV is active and there is no GR already posted, please see the checks done in FORM itemdata_check in include LMRM_BAPIF23. In BAPIs, there is no possibility to save reference PO in the additional selection table as it is in online MIR7.
6. Error message F5A252
If the error message "F5A252 - Caution: Cash discount 1 already expired for net posting or max. discount" appears, it only works with the online transactions. The Cash discount check is a Financial functionality and not used as an MM-IV functionality. In MIRO system makes the check via Financial programs and outputs the customizable message F5A252 (standard message type: Warning). It means that EDI, ERS, and BAPI processes will not run the check.
Possible solution: You can develop this check within the BADI Function module: MRMBADI_PAYMENT_TERMS. The function module would be executed in these invoice processes.
7. One-time vendor bank data
For a one-time vendor (CPD), without PO reference, booking to G/L account, the system does not give a window and an error to fill in the bank details. MIR4 gives an error F5732 for the one-time vendor. In the MM-invoice online process, the one-time vendor (CPD) data check, whether these data are correct and completed in the invoice header, has been done via a Financial program from the Finance side. This is developed only for online processes.
8. Terms of payment
If an invoice is parked with this BAPI without PO reference, the terms of payment are taken from the vendor master. But if later a PO reference line item is added, the terms of payment will not be updated from the PO. If an invoice is parked in MIR7 without PO reference, then if a new PO reference line is added, the terms of payment get updated from the PO.
9. Subsequent Debit/Credit
It is not possible to create Subsequent Debit or Credit documents with BAPIs.
10. Invoice reduction
The standard SAP system does not provide the functionality of invoice reduction for usage with BAPIs. You have got the possibility to park the invoice by BAPI_INCOMINGINVOICE_PARK and then change the field correction ID from NO ERROR to VENDOR ERROR manually by MIR7. If you post an invoice with invoice reduction you normally also enter the amount and the quantity according to the vendor. You would need to enter these values also in MIR7.