# Configure Bizum Payments

This guide explains how to process payments via **Bizum** using the `BizumRepository`. The flow is initiated by sending a payment request to the customer's mobile phone number, rather than reading a physical card.

Before using Bizum, make sure the TPV is correctly initialized with `InitializationRepository.initTpv()` and that Bizum is enabled in the terminal configuration.

## Repository

- **Repository**: `BizumRepository`

## Sending a Bizum Request

Use the `sendBizum` function to trigger the payment request.

**Parameters:**

- `amount`: The `Money` object representing the amount to charge.  
- `phoneNumber`: The customer's mobile phone number.  
- `shiftInfo` (optional): Shift details.  
- `language` (optional): UI language for the Get Smart SDK Payment Service screens.

### Example

```kotlin
suspend fun requestBizumPayment(amount: Money, customerPhone: String) {
    val result = bizumRepository.sendBizum(
        amount = amount,
        phoneNumber = customerPhone
    )

    when (result) {
        is RepositoryResult.Success -> {
            println("✅ Bizum request sent successfully.")
            // Handle specific Bizum result data if needed
        }
        is RepositoryResult.ConnectionError -> println("❌ Connection Error")
        is RepositoryResult.ProtocolError -> println("❌ Error: ${result.type}")
        else -> {}
    }
}
```

### Next Steps

- For QR-based Alternative Payments Methods (APMs) such as **Alipay** and **WeChat Pay**, see **Configure Alipay and WeChat QR**.  
- To review the unified result handling model, see **Core Concepts / Handle Responses and Errors**.