# Checkout
Iniciar um pagamento com FaciPayCheckout.start.
`FaciPayCheckout.start(...)` apresenta o checkout (WebView num bottom-sheet) e devolve o
resultado pelo `FaciPayCallback`.
```kotlin
FaciPayCheckout.start(
activity = this, // FragmentActivity
references = listOf(
PaymentReference(
referenceNumber = "ORDER-2024-001",
referenceAmount = 5000.0 // AOA
)
),
createOrder = {
// Crie a ordem no seu backend e devolva o merchantTransactionId
val response = api.createOrder(cart)
CreateOrderResult.success(merchantTransactionId = response.transactionId)
},
customerInfo = CustomerInfo(name = "João Silva", phone = "923456789"),
config = FaciPayConfig.Builder()
.language(Language.PORTUGUESE)
.theme(Theme.LIGHT)
.defaultPaymentMethod(PaymentMethod.MCX_EXPRESS)
.showUIOfProcessingInfo(true)
.build(),
callback = object : FaciPayCallback {
override fun onApprove(result: PaymentResult) { /* ... */ }
override fun onPending(result: PaymentResult) { /* ... */ }
override fun onCancel() { /* ... */ }
override fun onError(error: FaciPayException) { /* ... */ }
}
)
```
## Parâmetros
A Activity que apresenta o checkout.
Itens a pagar. Cada `PaymentReference` tem `referenceNumber`, `referenceAmount` (Kwanzas),
`referenceQuantity` (predefinição 1) e `referenceTotalQuantity` (opcional).
Cria a ordem no seu backend. Devolve `CreateOrderResult.success(merchantTransactionId)` ou
`CreateOrderResult.failure(message)`.
`name`, `phone` (`244XXXXXXXXX` ou `9XXXXXXXX`), `email` (opcional).
`language`, `theme`, `defaultPaymentMethod`, `allowedPaymentMethods`,
`showUIOfProcessingInfo`, `showAmount`, `referencePaymentLifeSpan` (definido via
`(duração, TimeUnit)`, 1–720 h).
`WEBVIEW` (predefinição). `CUSTOM_TABS` e `NATIVE` planeados para versões futuras.
Tratar aprovação, pendência, cancelamento e erros.