The financial life cycle consists of 3 major steps:
- Payin - your Marketplace accepts payments for your customers’ purchases
- Payment split - you specify how a purchase is to be split between the vendors involved in a purchase and AgoraPay securely separates and hold the funds in accordance with PSD2 regulations
- Payout - your Marketplace schedules SEPA payment orders to your vendors
As a developer, your role is to understand how to manage the end-to-end financial life cycle of these 3 steps because:
- Once a customer completes the checkout experience on your marketplace (after performing a payment), the funds are not available until AgoraPay fully processes and validates the payment request. This is why you need to implement the online payments pay-in capabilities of the AgoraPay API, as well as need to process webhook notifications to stay up-to-date with the operation status of each transaction.
- Once funds are held on your marketplace account and split across your vendors' accounts, you have to implement the AgoraPay payout API to finalise the SEPA payments to the vendors.
Pay-in operation life cycle
As you develop your marketplace with AgoraPay, you will be managing your customers' payments using 3 separate tools:
- The AgoraPay API, to create and modify payments,
- A Notification server, to receive status updates from AgoraPay during the processing and clearing steps,
- The AgoraPay Portal, to have a consolidated view of your business through a web dashboard.
Each of these tools gives a slightly different view of the payment transactions:
- The API treats payments as orders (one order per cart checkout) and transactions (there might be more than one transaction per order)
- The notification server and AgoraPay portal treat them as operations
The table below specifies how the orders, transactions and operations relate, depending on the payment scenario and the payment processing step.
As you will learn in the payment flow section, the statuses of the transactions and operations dictate whether you can use a specific API call or not.