Business Application Programming Interface (BAPI) 
Use
The SAP business objects held in the Business Object Repository (BOR) encapsulate their data and processes. External access to the data and processes is only possible using specific methods - namely BAPIs (Business Application Program Interfaces).
A BAPI is defined as a method of an
SAP Business Object Type or of an SAP Interface Type.
The functionality implemented in the SAP business object type CostCenter includes for example, listing all the available cost centers. The business object type CostCenter provides the BAPI GetList() for this purpose.
The BAPIs in the R/3 System are currently implemented as function modules which are created and managed in the Function Builder. Each function module underlying a BAPI:
Integration
The graphic below shows the relationship between an SAP business object type, its associated BAPIs and its function modules.
Business Object Type with BAPIs and Associated Function Modules

This architecture enables SAP to change the details of a BAPI's implementation without affecting external applications that use the BAPI. For information on SAP policy for enhancing BAPIs see
SAP Enhancements to BAPIs.Prerequisites
To use a BAPI method to access data in SAP business objects, an application program only needs to know how to call the method. The information required is:
Application programmers can work with SAP business objects and implement their BAPIs without needing to know the underlying implementation and coding details.