> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.crisscross.money/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.crisscross.money/_mcp/server.

# Pay By Bank

> Learn how to enable and integrate Pay By Bank (Instant EFT) as a payment method in CrissCross for seamless transactions in South Africa.

### Pay By Bank

Pay By Bank (also known as Instant EFT or iEFT) is a payment method that allows customers to pay directly from their bank accounts in real-time, providing an immediate, secure, and seamless checkout experience. This method is particularly popular in South Africa, enabling customers to make instant electronic funds transfers without using traditional card payments.

### Introduction

Pay By Bank is a widely used local payment method (LPM) in South Africa, offering customers a convenient way to pay for goods and services directly from their bank accounts. Integrating Pay By Bank with CrissCross enables you to provide a fast, user-friendly payment option. As your merchant of record, CrissCross handles all payment processing and provider relationships. This guide explains how to integrate Pay By Bank (Instant EFT) into your application or website using CrissCross.

### Pre-requisites

Before accepting Pay By Bank 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. As your merchant of record, CrissCross handles all payment provider relationships, so you can accept Pay By Bank payments in South Africa without needing to register with individual providers or establish commercial relationships.

* **Pay By Bank enabled on your account:**\
  Pay By Bank is enabled for your account during onboarding. Contact your account manager if you want to add it.

### Ways to integrate Pay By Bank with CrissCross

CrissCross supports two integration methods for offering Pay By Bank at checkout:

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

   * There’s minimal development required on your end.
   * CrissCross automatically displays the Pay By Bank 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 Pay By Bank 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.

### Creating a checkout session

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

```bash
curl -X POST https://api.crisscross.money/v1/checkout/session \
     -H "Content-Type: application/json" \
     -d '{
  "merchantId": "YOUR_MERCHANT_ID",
  "merchantReference": "ORDER67890",
  "amount": 20000,
  "currency": "ZAR",
  "integrationType": "hosted",
  "redirectUrl": "https://merchant.com/redirect",
  "payerDetails": {
    "emailAddress": "siyanda.mthembu@example.com",
    "location": "ZAF",
    "fullName": "Siyanda Mthembu",
    "phoneNumber": "0723456789"
  }
}'
```

#### Response:

```json
{
  "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 Pay By Bank payment. This involves:

* Displaying a list of banks for the customer to select.
* Collecting necessary customer inputs (like bank selection) and passing them to CrissCross through the appropriate API calls.

### Supported regions / countries

Pay By Bank through CrissCross is currently supported in the following regions and countries:

| Region          | Countries           |
| --------------- | ------------------- |
| Southern Africa | South 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 Pay By Bank with CrissCross:

| Workflow / Service                            | Supported |
| --------------------------------------------- | --------- |
| 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    |
| Interoperability                              | N/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](/api-reference)**\
  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](/hosted-checkout)**\
  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.