Skip to navigation

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. CrissCross 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 CrissCross enables you to accept payments in multiple currencies and countries, leveraging CrissCross’s robust infrastructure to handle transactions efficiently. This guide explains how to integrate Bank Transfers into your application or website using CrissCross.

Pre-requisites

Before accepting Bank Transfer payments through CrissCross, ensure you meet the following requirements:

  • CrissCross integration:
    You have integrated with CrissCross, either using our hosted checkout or server-to-server API. CrissCross is your merchant of record, so no relationships with individual payment providers are needed.

  • Bank Transfers enabled on your account:
    Bank Transfers are enabled for your account during onboarding. Contact your account manager if you want to add them.

Ways to integrate Bank Transfer with CrissCross

CrissCross supports two integration methods for offering Bank Transfers at checkout:

  1. CrissCross hosted checkout
    Using CrissCross’s hosted checkout is the simplest way to accept Bank Transfer payments. With this option:

    • There’s minimal development required on your end.
    • CrissCross automatically displays the Bank Transfer payment method during checkout, based on what is enabled for your account.
  2. Server-to-server integration
    For complete control over your payment process and checkout flow, you can integrate Bank Transfers using CrissCross’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 CrissCross securely.

Creating a checkout session

To create a checkout session, make a POST request to the /v1/checkout/session endpoint.

curl -X POST https://api.crisscross.money/v1/checkout/session \
-H "Content-Type: application/json" \
-d '{
"merchantId": "YOUR_MERCHANT_ID",
"merchantReference": "ORDER12345",
"amount": 5000,
"currency": "ZAR",
"integrationType": "hosted",
"redirectUrl": "https://merchant.com/redirect",
"payerDetails": {
"emailAddress": "[email protected]",
"location": "ZAF",
"fullName": "Alex Johnson",
"phoneNumber": "0712345678"
}
}'

Response:

{
"sessionId": "01951c8a-7c3d-7e1f-9d4a-2b3c4d5e6f70",
"paymentLink": "https://checkout.payos.money/session/01951c8a-7c3d-7e1f-9d4a-2b3c4d5e6f70?signature=kRe8vQZ2mXpL7nT4wYbHs1JdA0uCgFiO6ExNq3ZrPyM"
}

In this example:

  • The sessionId in the response references this specific checkout session, which can be used to complete the payment or track its status.

Handling the payment

After creating a session, your application can direct customers to the paymentLink if using the hosted checkout. If you’re using 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:

    1. Collect the required details:
      Gather the beneficiary’s details such as name, bank, and account number. Additionally, collect the sender’s details if necessary.

    2. Get the required bank codes:
      Query the CrissCross banks endpoints to retrieve the appropriate bank codes for the transfer.

    3. 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, CrissCross will send the transfer details and status to the specified callback URL.

Supported regions / countries

Bank Transfers through CrissCross are supported in the following regions and countries:

RegionCountries
Southern AfricaSouth Africa, Zambia
East AfricaKenya, Uganda, Tanzania
West AfricaCameroon, Democratic Republic of Congo (DRC), Togo, Côte d’Ivoire, Benin, Nigeria
Middle EastUnited Arab Emirates (UAE), Kuwait, Bahrain, Qatar, Oman, Egypt
EuropeEuropean Union, United Kingdom
North AmericaUnited States

Supported Currencies:

CurrencySupported Countries
EURSEPA countries
GBPUnited Kingdom
GHSGhana
KESKenya
NGNNigeria, USA (domicilliary account), US
SLLSierra Leone
TZSTanzania
UGXUganda
USDNigeria (domicilliary account), United States
XAFCameroon, Chad, DR Congo, Gabon
XOFBenin, Côte d’Ivoire, Senegal
ZARSouth Africa

(Note: Support for additional regions and countries may be added in the future. Check CrissCross documentation or contact support for updates.)

Supported workflows and services

The following table outlines the workflows and services supported when using Bank Transfers with CrissCross:

Workflow / ServiceSupported
Available via CrissCross hosted checkout✔️ Yes
Available via CrissCross server-to-server API✔️ Yes
Instant Capture✔️ Yes
Cancel / Void✔️ Yes
Refund / Reverse✔️ Yes
Delayed / Manual Capture✖️ No
Save Instruments✔️ Yes
Merchant Initiated Transaction (MIT)✔️ Yes
InteroperabilityN/A

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. CrissCross 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. CrissCross’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. CrissCross’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 CrissCross, managing and enabling diverse payment methods becomes more efficient and manageable. For detailed integration instructions, coding examples, and advanced customisation options, explore these resources:

  • CrissCross API documentation
    Dive deeper into CrissCross’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 with CrissCross, ensuring a smooth setup experience regardless of your technical background or business model.

By configuring payment methods with CrissCross, 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 CrissCross’s robust features to stay agile in an ever-evolving e-commerce landscape.