# Visão geral
Aceite pagamentos FaciPay numa app iOS nativa (Swift) com a SDK oficial.
A **FaciPay iOS SDK** integra pagamentos FaciPay em apps iOS nativas. Apresenta o checkout
num `WKWebView` hospedado (sheet modal) e devolve o resultado por um `CheckoutResult`.
Versão atual: **1.0.0**. Swift 5.9+ (SwiftUI + UIKit). iOS **14+**. Distribuição: Swift Package
Manager e CocoaPods.
## Como funciona
Modelo igual ao da [Web SDK](/pt/sdk/overview): configura com a `publishableKey`, apresenta
o checkout com referências e um `createOrder` que cria a ordem no **seu backend**, e trata o
resultado.
```mermaid
sequenceDiagram
participant App as App (SDK)
participant B as Backend (parceiro)
participant P as FaciPay
App->>App: FaciPay.configure(publishableKey:)
App->>B: createOrder()
B->>P: POST /facipaypartner/createPaymentOrder
P-->>B: referenceNumber
B-->>App: merchantTransactionId
App->>P: Apresenta checkout (WKWebView)
P-->>App: CheckoutResult (.approved / .pending / .cancelled / .failed)
P->>B: Webhook (fonte da verdade)
```
## Métodos de pagamento
| Método | Código | Notas |
|---|---|---|
| **Multicaixa Express** | `FPMCXEXPRSS` | Confirmação imediata na app Multicaixa Express → `onApprove`. |
| **Referência EMIS** | `FPSOLPGEXT` | Entidade + referência pagas no Multicaixa/homebanking → `onPending`. |
| **FaciPay** (solicitação de pagamento) | `FPSOLPG` | Carteira FaciPay — envia uma solicitação de pagamento à carteira do cliente → `onApprove`. |
No **FaciPay**, depois de o cliente informar o telemóvel associado à conta FaciPay, é
efetuada uma **solicitação de pagamento** na carteira, permitindo-lhe concluir o pagamento.
Na SDK iOS, os enums correspondentes são `PaymentMethod.mcxExpress`, `PaymentMethod.reference`
e `PaymentMethod.facipay`.
Adicionar a SDK via SPM ou CocoaPods.