Bank Transfer
Configure and manage Bank Transfer payment method
Bank Transfer
Bank Transfers are a reliable and widely used payment method that allows customers to send money directly from their bank accounts to your business accounts across various countries and currencies. PayOS facilitates quick and secure bank transfers, ensuring a smooth checkout experience for your customers.
Introduction
Bank Transfers are essential for businesses that operate internationally, providing a straightforward way for customers to send funds directly from their bank accounts. Integrating Bank Transfers with PayOS enables you to accept payments in multiple currencies and countries, leveraging PayOS’s robust infrastructure to handle transactions efficiently. This guide explains how to integrate Bank Transfers into your application or website using PayOS.
Pre-requisites
Before accepting Bank Transfer payments through PayOS, ensure you meet the following requirements:
-
PayOS integration:
You have integrated with PayOS, either using our hosted checkout, SDK, or server-to-server API. -
Payment processor configuration:
You have set up an integration account for Bank Transfers with a supported Payment Service Provider (PSP) in PayOS. Currently, Bank Transfers are supported through PSPs such as Flutterwave, Cellulant, and Stitch. Ensure that the commercial relationships with these PSPs are in place or can be utilised through PayOS. -
Enable Bank Transfers:
You have enabled Bank Transfers as a payment option in your PayOS configuration through the PayOS Portal. -
Meta fields setup:
If Bank Transfers require specific meta fields (such as bank selection fields or reference details), ensure these fields are correctly configured underMerchant configurations -> Meta fields
on your PayOS dashboard and included in your requests.
Ways to integrate Bank Transfer with PayOS
PayOS supports multiple integration methods for offering Bank Transfers at checkout:
-
PayOS hosted checkout
Using PayOS’s hosted checkout is the simplest way to accept Bank Transfer payments. With this option:- There’s minimal development required on your end.
- PayOS automatically displays the Bank Transfer payment method during checkout.
- You can control the payment methods offered through the session creation API call, specifying Bank Transfer as a restricted method if desired.
-
PayOS SDK
If you prefer more control over your checkout experience, you can integrate with the PayOS SDK:- The SDK provides UI components to include Bank Transfer as a payment method seamlessly.
- It simplifies capturing any required inputs (like selecting a bank from a list) and initiating transactions, without extensive server-side coding.
- Consult the PayOS SDK documentation for detailed steps on integrating Bank Transfers.
-
Server-to-server integration
For complete control over your payment process and checkout flow, you can integrate Bank Transfers using PayOS’s server-to-server APIs:- This approach offers greater flexibility in implementing the payment flow and handling customer data.
- You will be responsible for capturing necessary inputs (e.g., bank selection) and forwarding them to PayOS securely.
Let’s explore the server-to-server approach in more detail.
Retrieving available payment methods
Using the PayOS API, you can retrieve a list of available payment methods for a given checkout session by calling the GET /v1/payment/available-methods
endpoint with a sessionId
. For Bank Transfers, the method type is typically returned as bankTransfer
.
Request:
Response:
In this response:
- The Bank Transfer payment method is listed with
"type": "bankTransfer"
. - The
requiredInput
field indicates that the customer must provide details such as currency, country, beneficiary information, and bank selection.
Creating a checkout session
To create a checkout session that includes Bank Transfer as a payment option, make a POST request to the /v1/checkout/session
endpoint. You can specify which payment methods to offer in the paymentMethods
array. For Bank Transfer, set "type": "bankTransfer"
.
Response:
In this example:
- The
paymentMethods
array restricts the session to only the Bank Transfer payment method ("type": "bankTransfer"
). restrict
set totrue
ensures that this session provides only Bank Transfer as the available payment method.- The
sessionId
in the response references this specific checkout session, which can be used to retrieve available methods, complete the payment, or make further adjustments before checkout completion.
Handling the payment
After creating a session, your application can direct customers to the paymentLink
if using the hosted checkout. If you’re using the PayOS SDK or a server-to-server integration, you’ll use the session details to process the Bank Transfer payment. This involves:
-
Initiating Bank Transfers:
Follow these steps to make a bank transfer:-
Collect the required details:
Gather the beneficiary’s details such as name, bank, and account number. Additionally, collect the sender’s details if necessary. -
Get the required bank codes:
Query the PayOS banks endpoints to retrieve the appropriate bank codes for the transfer. -
Initiate the transfer:
Send the transfer details to the initiate transfer endpoint with all the necessary information.
-
-
Verifying Transfer Status:
You can verify the status of the transfer in several ways:- Polling: Use the transfer status endpoint to check the transfer status.
- Webhooks: If you have webhooks enabled, monitor the transfer status through webhook notifications.
- Callback URLs: For transfers with
callback_id
, PayOS will send the transfer details and status to the specified callback URL.
Supported regions / countries
Bank Transfers through PayOS are supported in the following regions and countries:
Supported Currencies:
(Note: Support for additional regions and countries may be added in the future. Check PayOS documentation or contact support for updates.)
Supported workflows and services
The following table outlines the workflows and services supported when using Bank Transfers with PayOS:
Ensuring a seamless and secure payment experience
To optimise your integration and ensure customer satisfaction, consider the following best practices:
-
Prioritise security and compliance:
Protecting customer data is paramount. PayOS adheres to PCI DSS standards and other relevant regulations. Ensure you also follow any additional region-specific compliance requirements, especially when handling sensitive financial information across different countries. -
Focus on a smooth user experience:
Present payment methods clearly and intuitively. When customers reach the checkout stage, they should easily recognise and trust the payment options available. For example, highlight local payment methods prominently in regions where they are popular. -
Monitor performance and reliability:
Keep an eye on transaction success rates and processing times. PayOS’s dashboard provides insights into each payment method’s performance, enabling you to resolve any latency or downtime issues quickly to maintain customer trust. -
Scale with your business growth:
As your business expands, your payment needs may evolve. PayOS’s flexible infrastructure makes it easy to add new payment methods, integrate with additional PSPs, or adjust your configurations to handle increased transaction volumes without compromising performance.
Additional resources and next steps
With PayOS, managing and enabling diverse payment methods becomes more efficient and manageable. For detailed integration instructions, coding examples, and advanced customisation options, explore these resources:
-
PayOS API documentation
Dive deeper into PayOS’s API endpoints and discover how to implement server-to-server integrations, handle advanced payment flows, and manage transactions programmatically. -
Integration Guides
Review step-by-step guides for integrating PayOS’s SDKs or connecting to popular PSPs, ensuring a smooth setup experience regardless of your technical background or business model.
By configuring payment methods with PayOS, you can offer your customers a streamlined and secure checkout experience tailored to their preferences and regional payment norms. Continuously refine your payment configurations and leverage PayOS’s robust features to stay agile in an ever-evolving e-commerce landscape.