# Checkout Apresentar um pagamento com FaciPayCheckout.start. `FaciPayCheckout.start(...)` apresenta o checkout (sheet com `WKWebView`) e devolve um `CheckoutResult`. ```swift FaciPayCheckout.start( from: viewController, references: [ PaymentReference(referenceNumber: "ORD_001", referenceAmount: 5000.0) // AOA ], createOrder: { let response = await MyBackendAPI.createPaymentOrder(amount: 5000.0) if let txnId = response.transactionId { return .success(merchantTransactionId: txnId) } else { return .failure(message: "Falha ao criar ordem", cause: response.error) } }, completion: { result in switch result { case .approved(let payment): print("Aprovado:", payment.orderId) case .pending(let payment): print("Pendente:", payment.orderId) case .cancelled: print("Cancelado") case .failed(let error): print("Erro:", error.localizedDescription) } }, customerInfo: CustomerInfo(name: "João Silva", phone: "923000000"), config: FaciPayConfig( language: .portuguese, theme: .light, defaultPaymentMethod: .mcxExpress, referencePaymentLifeSpan: 1440 // minutos ) ) ``` ## SwiftUI (async) ```swift let result = await FaciPayCheckout.start( references: [PaymentReference(referenceNumber: "ORD_001", referenceAmount: 5000.0)], createOrder: { .success(merchantTransactionId: try await createOrder()) }, customerInfo: CustomerInfo(name: "João Silva", phone: "923000000") ) ``` ## Parâmetros O view controller que apresenta o checkout (modo UIKit). Itens a pagar. `referenceNumber`, `referenceAmount` (Double, > 0), `referenceQuantity` (predefinição 1), `referenceTotalQuantity` (opcional). `totalAmount` é calculado. Cria a ordem no seu backend. `.success(merchantTransactionId:)` ou `.failure(message:cause:)`. `name`, `phone` (`244XXXXXXXXX` ou `9XXXXXXXX`), `email` (opcional). `language`, `theme`, `defaultPaymentMethod`, `allowedPaymentMethods`, `showUIOfProcessingInfo`, `referencePaymentLifeSpan`, `showAmount`. CheckoutResult, PaymentResult e FaciPayError.