> ## Documentation Index
> Fetch the complete documentation index at: https://developer.notchpay.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Other Payment Methods

> Accept payments through bank transfers and alternative payment methods

# Other Payment Methods

In addition to [Mobile Money](/accept-payments/mobile-money), Notch Pay supports various other payment methods to help you reach more customers across Africa.

## Digital Wallets

Digital wallets allow customers to pay using their mobile wallet accounts. This method is increasingly popular across Africa due to its convenience and accessibility.

### How Digital Wallet Payments Work

1. **Initialize Payment**: Create a payment with customer and transaction details
2. **Wallet Selection**: The customer selects their digital wallet from the available options
3. **Authentication**: The customer logs in to their wallet or follows the wallet's authentication process
4. **Authorization**: The customer authorizes the payment
5. **Confirmation**: Notch Pay confirms the payment status and notifies your application

### Supported Digital Wallets

Notch Pay supports payments from various digital wallets across Africa:

<div className="grid grid-cols-1 md:grid-cols-2 gap-4 mt-6">
  <div className="border rounded-lg p-6 hover:shadow-md transition-shadow">
    <h3 className="text-lg font-semibold mb-2">Popular Wallets</h3>

    <ul className="list-disc pl-5">
      <li>Assoh</li>
      <li>Kudi</li>
      <li>And more</li>
    </ul>
  </div>

  <div className="border rounded-lg p-6 hover:shadow-md transition-shadow">
    <h3 className="text-lg font-semibold mb-2">Regional Coverage</h3>

    <ul className="list-disc pl-5">
      <li>Wallets in Cameroon</li>
      <li>Wallets in Côte d'Ivoire</li>
      <li>Wallets in Senegal</li>
      <li>Wallets in other supported countries</li>
    </ul>
  </div>
</div>

### Integration Example

```javascript theme={null}
// Create a payment
fetch('https://api.notchpay.co/payments', {
  method: 'POST',
  headers: {
    'Authorization': 'YOUR_PUBLIC_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    amount: 5000,
    currency: 'XAF',
    customer: {
      name: 'John Doe',
      email: 'john@example.com'
    },
    description: 'Payment for Order #123',
    reference: 'order_123'
  })
})
.then(response => response.json())
.then(data => {
  // Redirect to checkout where digital wallets will be an option
  window.location.href = data.authorization_url;
})
```

## USSD Payments

USSD (Unstructured Supplementary Service Data) payments allow customers to pay using their mobile phones without requiring internet access. This is particularly useful in areas with limited internet connectivity.

### How USSD Payments Work

1. **Initialize Payment**: Create a payment with customer and transaction details
2. **USSD Code Generation**: Notch Pay generates a USSD code for the payment
3. **Customer Dialing**: The customer dials the USSD code on their phone
4. **Authentication**: The customer follows the prompts to authenticate and authorize the payment
5. **Confirmation**: Notch Pay confirms the payment status and notifies your application

### Supported USSD Services

Notch Pay supports USSD payments through various mobile operators:

* MTN USSD
* Orange USSD
* Other local operators depending on the country

### Integration Example

```javascript theme={null}
// Create a payment
fetch('https://api.notchpay.co/payments', {
  method: 'POST',
  headers: {
    'Authorization': 'YOUR_PUBLIC_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    amount: 5000,
    currency: 'XAF',
    customer: {
      name: 'John Doe',
      phone: '+237600000000'
    },
    description: 'Payment for Order #123',
    reference: 'order_123'
  })
})
.then(response => response.json())
.then(data => {
  // Process with USSD
  fetch(`https://api.notchpay.co/payments/${data.transaction.reference}`, {
    method: 'POST',
    headers: {
      'Authorization': 'YOUR_PUBLIC_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      channel: 'cm.mtn.ussd',
      data: {
        phone: '+237600000000'
      }
    })
  })
  .then(response => response.json())
  .then(ussdData => {
    // Display USSD code to customer
    console.log(`Dial ${ussdData.ussd_code} to complete payment`);
  })
})
```

## QR Code Payments

QR code payments allow customers to pay by scanning a QR code with their mobile banking or payment app. This method is becoming increasingly popular due to its convenience and contactless nature.

### How QR Code Payments Work

1. **Initialize Payment**: Create a payment with customer and transaction details
2. **QR Code Generation**: Notch Pay generates a QR code for the payment
3. **Customer Scanning**: The customer scans the QR code with their mobile app
4. **Authentication**: The customer authorizes the payment in their app
5. **Confirmation**: Notch Pay confirms the payment status and notifies your application

### Supported QR Code Standards

Notch Pay supports various QR code payment standards depending on the region:

* EMVCo QR Code
* Proprietary QR codes for specific payment providers

### Integration Example

```javascript theme={null}
// Create a payment
fetch('https://api.notchpay.co/payments', {
  method: 'POST',
  headers: {
    'Authorization': 'YOUR_PUBLIC_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    amount: 5000,
    currency: 'XAF',
    customer: {
      name: 'John Doe',
      email: 'john@example.com'
    },
    description: 'Payment for Order #123',
    reference: 'order_123'
  })
})
.then(response => response.json())
.then(data => {
  // Process with QR Code
  fetch(`https://api.notchpay.co/payments/${data.transaction.reference}/qrcode`, {
    headers: {
      'Authorization': 'YOUR_PUBLIC_KEY'
    }
  })
  .then(response => response.json())
  .then(qrData => {
    // Display QR code to customer
    document.getElementById('qrcode-container').innerHTML = `<img src="${qrData.qr_code_url}" alt="Scan to pay">`;
  })
})
```

## Country-Specific Information

Different payment methods have varying levels of adoption and success rates across African countries. Here's a breakdown of the most effective payment methods by country:

<Tabs>
  <Tab title="Cameroon">
    <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
      <div>
        <h3>Market Overview</h3>

        <ul className="mt-2">
          <li>Population: \~27 million</li>
          <li>Digital Wallet Penetration: \~25%</li>
          <li>USSD Usage: High (60% of mobile users)</li>
          <li>QR Code Adoption: Low-Medium</li>
          <li>Currency: CFA Franc (XAF)</li>
        </ul>

        <h3 className="mt-4">Popular Payment Methods</h3>

        <ul className="mt-2">
          <li>Digital Wallets: Assoh, Kudi</li>
          <li>USSD: MTN USSD, Orange USSD</li>
          <li>QR Codes: Limited to urban areas</li>
        </ul>
      </div>

      <div>
        <h3>Success Rates</h3>

        <ul className="mt-2">
          <li>Digital Wallets: 85-90%</li>
          <li>USSD Payments: 80-85%</li>
          <li>QR Code Payments: 75-80%</li>
        </ul>

        <h3 className="mt-4">Best Practices</h3>

        <ul className="mt-2">
          <li>Prioritize USSD for wider reach</li>
          <li>Offer digital wallets in urban areas</li>
          <li>Provide clear instructions in French and English</li>
          <li>Consider network reliability when implementing USSD</li>
        </ul>
      </div>
    </div>
  </Tab>

  <Tab title="Côte d'Ivoire">
    <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
      <div>
        <h3>Market Overview</h3>

        <ul className="mt-2">
          <li>Population: \~26 million</li>
          <li>Digital Wallet Penetration: \~30%</li>
          <li>USSD Usage: Medium-High (50% of mobile users)</li>
          <li>QR Code Adoption: Medium</li>
          <li>Currency: CFA Franc (XOF)</li>
        </ul>

        <h3 className="mt-4">Popular Payment Methods</h3>

        <ul className="mt-2">
          <li>Digital Wallets: Wave, Kudi</li>
          <li>USSD: MTN USSD, Orange USSD</li>
          <li>QR Codes: Growing in urban centers</li>
        </ul>
      </div>

      <div>
        <h3>Success Rates</h3>

        <ul className="mt-2">
          <li>Digital Wallets: 88-92%</li>
          <li>USSD Payments: 82-87%</li>
          <li>QR Code Payments: 80-85%</li>
        </ul>

        <h3 className="mt-4">Best Practices</h3>

        <ul className="mt-2">
          <li>Wave digital wallet is increasingly popular</li>
          <li>French language support is essential</li>
          <li>QR codes are effective in Abidjan and other major cities</li>
          <li>USSD works well for reaching rural customers</li>
        </ul>
      </div>
    </div>
  </Tab>

  <Tab title="Other Countries">
    <p>
      Notch Pay supports alternative payment methods in many other African countries. For detailed information about a specific country not listed here, please contact our support team or refer to our <a href="/api-reference/resources">Resources API</a> for the most up-to-date information.
    </p>

    <div className="mt-4">
      <h3>General Considerations for All Countries</h3>

      <ul className="mt-2">
        <li>Always use the international phone number format with country code for USSD payments</li>
        <li>Be aware of local regulations and transaction limits</li>
        <li>Consider local language support for customer communications</li>
        <li>Monitor transaction success rates by payment method and adjust your implementation accordingly</li>
        <li>Stay informed about new payment methods entering the market</li>
      </ul>
    </div>
  </Tab>
</Tabs>

## Best Practices

<Note>
  For general integration best practices, security recommendations, and operational guidelines that apply to all payment methods, please refer to our [Mobile Money Best Practices](/accept-payments/mobile-money#best-practices) section, which covers these topics in detail.
</Note>

### Method-Specific Best Practices

<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
  <div>
    <h4 className="font-semibold">Digital Wallets</h4>

    <ul className="mt-2">
      <li>**Verify Wallet Support**: Confirm the wallet is supported in the customer's country</li>
      <li>**Handle Authentication Flows**: Implement proper handling of wallet authentication redirects</li>
      <li>**Optimize for Mobile**: Ensure your wallet integration works well on mobile devices</li>
      <li>**Track Wallet Performance**: Monitor success rates for different wallet providers</li>
    </ul>
  </div>

  <div>
    <h4 className="font-semibold">USSD Payments</h4>

    <ul className="mt-2">
      <li>**Clear USSD Instructions**: Provide clear guidance on how to complete USSD flows</li>
      <li>**Keep USSD Flows Simple**: Minimize the number of steps in USSD payment flows</li>
      <li>**Handle Network Issues**: Implement fallbacks for areas with poor network coverage</li>
      <li>**Session Timeout Handling**: Provide easy ways to restart expired USSD sessions</li>
    </ul>
  </div>
</div>

<div className="grid grid-cols-1 md:grid-cols-2 gap-6 mt-4">
  <div>
    <h4 className="font-semibold">QR Code Payments</h4>

    <ul className="mt-2">
      <li>**QR Code Quality**: Generate high-quality, easily scannable QR codes</li>
      <li>**Display Guidelines**: Ensure QR codes are displayed with sufficient size and contrast</li>
      <li>**Scanning Instructions**: Provide clear instructions on how to scan the QR code</li>
      <li>**Dynamic Updates**: Implement status updates while waiting for QR code scans</li>
    </ul>
  </div>

  <div>
    <h4 className="font-semibold">Multi-Method Strategy</h4>

    <ul className="mt-2">
      <li>**Offer Multiple Methods**: Provide customers with various payment options to increase conversion rates</li>
      <li>**Smart Default Selection**: Automatically suggest the most appropriate payment method based on location</li>
      <li>**Seamless Fallbacks**: Allow easy switching between payment methods if one fails</li>
      <li>**Remember Preferences**: Store customer's preferred payment method for future transactions</li>
    </ul>
  </div>
</div>

## Troubleshooting

### Common Issues and Solutions

<AccordionGroup>
  <Accordion title="Digital Wallet Connection Issues">
    <h4>Symptoms</h4>

    <ul>
      <li>Error message: "Unable to connect to wallet" or "Wallet service unavailable"</li>
      <li>Payment fails during the wallet authentication step</li>
    </ul>

    <h4>Solutions</h4>

    <ul>
      <li>Verify that the wallet service is operational (check status pages)</li>
      <li>Ensure the customer has an active account with the selected wallet provider</li>
      <li>Check that your integration is using the correct wallet API endpoints</li>
      <li>Implement automatic retries with exponential backoff</li>
    </ul>

    <h4>Prevention</h4>

    <ul>
      <li>Monitor wallet provider status and avoid initiating payments during known outages</li>
      <li>Implement circuit breakers to prevent cascading failures</li>
      <li>Have fallback payment methods ready</li>
    </ul>
  </Accordion>

  <Accordion title="USSD Session Timeouts">
    <h4>Symptoms</h4>

    <ul>
      <li>Customer reports that the USSD session closed before they could complete the payment</li>
      <li>Error message: "Session expired" or "USSD session timeout"</li>
    </ul>

    <h4>Solutions</h4>

    <ul>
      <li>Advise customers to respond quickly to USSD prompts</li>
      <li>Provide a way for customers to restart the USSD session</li>
      <li>Implement a status check endpoint that polls the payment status</li>
    </ul>

    <h4>Prevention</h4>

    <ul>
      <li>Clearly communicate to customers that they need to respond promptly to USSD prompts</li>
      <li>Keep USSD flows as simple as possible</li>
      <li>Consider using SMS fallbacks for USSD failures</li>
    </ul>
  </Accordion>

  <Accordion title="QR Code Scanning Problems">
    <h4>Symptoms</h4>

    <ul>
      <li>Customer reports inability to scan the QR code</li>
      <li>QR code scanner app returns errors or doesn't recognize the code</li>
    </ul>

    <h4>Solutions</h4>

    <ul>
      <li>Ensure QR codes are displayed with sufficient size and contrast</li>
      <li>Verify that the QR code is generated correctly and contains valid data</li>
      <li>Provide instructions on which apps can be used to scan the QR code</li>
      <li>Offer alternative payment methods if QR scanning fails</li>
    </ul>

    <h4>Prevention</h4>

    <ul>
      <li>Test QR codes on various devices and in different lighting conditions</li>
      <li>Use error correction in QR code generation</li>
      <li>Implement analytics to track QR code scan success rates</li>
    </ul>
  </Accordion>
</AccordionGroup>

### Error Codes

Here are some common error codes you might encounter when processing alternative payment methods:

| Error Code                | Description                               | Recommended Action                           |
| ------------------------- | ----------------------------------------- | -------------------------------------------- |
| `WALLET_CONNECTION_ERROR` | Unable to connect to the wallet service   | Check wallet service status and retry        |
| `USSD_SESSION_TIMEOUT`    | USSD session expired before completion    | Advise customer to restart the process       |
| `QR_GENERATION_FAILED`    | Failed to generate QR code                | Check parameters and retry                   |
| `INVALID_WALLET_ACCOUNT`  | Wallet account not found or invalid       | Verify wallet account details                |
| `PAYMENT_REJECTED`        | Customer rejected the payment             | Ask customer if they want to try again       |
| `PROVIDER_ERROR`          | Error from payment provider               | Retry after a few minutes                    |
| `DUPLICATE_TRANSACTION`   | Same transaction attempted multiple times | Check if previous transaction was successful |

## Testing

Testing is a critical part of implementing alternative payment methods. Notch Pay provides a comprehensive sandbox environment that allows you to simulate various payment scenarios without processing real transactions.

<Note>
  For detailed information on testing all payment methods, including test credentials, test scenarios for digital wallets, USSD payments, and QR code payments, webhook testing, and best practices, please refer to our comprehensive [Testing Guide](/get-started/testing).
</Note>

The Testing Guide includes everything you need to thoroughly test your integration with alternative payment methods, including test credentials, test scenarios, webhook testing, fraud detection information, and steps for going to production.

## Support

If you encounter issues with any payment method:

* Check the [API Reference](/api-reference/payments) for detailed parameter documentation
* Review our [Troubleshooting Guide](/faq) for common issues and solutions
* Contact our [support team](mailto:hello@notchpay.co) for assistance

## Next Steps

* [Mobile Money](/accept-payments/mobile-money) - Learn about our Mobile Money integration
* [Collect](/accept-payments/collect) - Use our hosted payment page for a quick integration
* [Webhooks](/get-started/webhooks) - Set up webhooks for payment notifications
* [Dashboard](/dashboard) - Learn how to use the Notch Pay Dashboard to manage transactions
