The following diagram illustrates how a financial transaction occurs in an environment where the advanced orders function is enabled and payment plug-ins are used to process transactions with payment back-end systems.

- The external application, such as WebSphere Commerce, requests an approve transaction.
- The Payment Plug-in Controller looks up the Payment that the approve transaction will be executed against.
- The Payment Plug-in Controller looks up the PaymentInstruction that will service the request.
- The Payment Plug-in Controller creates a FinancialTransaction that describes the approve transaction.
- The Payment Plug-in Controller finds the target plug-in to process the financial transaction.
- The Payment Plug-in Controller creates a PluginContext object with the plug-in deployment descriptor data.
- The Payment Plug-in Controller invokes the Plugin.approve() method.
- The plug-in returns the updated FinancialTransaction or throws an exception.
- The Payment Plug-in Controller returns the results to the external application.