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

# Collections Overview

> Accept M-Pesa and PesaLink payments from customers using Kulmi Pay. Choose who pays the fee.

Kulmi Pay gives you multiple ways to collect money from your customers. Whether you need to trigger a mobile money prompt, collect a PesaLink bank payment, embed a hosted checkout in your app, or add KulmiPay to WooCommerce, you can do it through the same checkout and collection infrastructure. Every collection method returns an invoice ID you can use to track status in real time or via webhooks.

## Collection methods

<CardGroup cols={2}>
  <Card title="M-Pesa STK Push" icon="mobile" href="/collections/mpesa-stk-push">
    Trigger a payment prompt directly on your customer's phone. They confirm with their M-Pesa PIN — no redirect needed.
  </Card>

  <Card title="PesaLink Bank Payments" icon="building-columns" href="/collections/pesalink-bank-payments">
    Collect payments from Kenyan bank accounts through PesaLink.
  </Card>

  <Card title="Hosted checkout" icon="window" href="/collections/checkout">
    Embed a pre-built, branded checkout session in your web or mobile app using your public key.
  </Card>

  <Card title="WooCommerce" icon="shopping-cart" href="/woocommerce">
    Add KulmiPay to a WordPress store with the WooCommerce plugin.
  </Card>
</CardGroup>

## Who pays the transaction fee

Collection requests use tariff fields such as `mobile_tarrif` for M-Pesa and `bank_tarrif` for PesaLink to control who bears the processing fee.

| Option          | Behaviour                                                                                        |
| --------------- | ------------------------------------------------------------------------------------------------ |
| `BUSINESS-PAYS` | Fees are deducted from your settlement amount. Your customer sees and pays the face value.       |
| `CUSTOMER-PAYS` | Fees are added on top of the amount you specify. Your customer pays the total including charges. |

The default for all methods is `BUSINESS-PAYS`. You can override this per request or set a default in your dashboard under **Payment Settings**.

## Supported currencies

Kulmi Pay supports collections in **KES**, **USD**, **EUR**, and **GBP**. M-Pesa and PesaLink settle in KES, so non-KES amounts are converted before processing.

<Note>
  M-Pesa and PesaLink always settle in KES. If you create a request in another currency, the amount is converted to KES before the transaction is sent to the customer.
</Note>
