Data Models
The public data models used across EdfaPgSdk — the checkout builder inputs, the request types for sale / Apple Pay / recurring / external payments, and the shared value types. Reached through the single SDK entry point on every platform.
Checkout Inputs
The bundled CardPay builder consumes these value types via setOrder / setPayer / setCard.
| Type | Purpose |
|---|---|
| EdfaPgSaleOrder | Order for the bundled checkout — id, amount, currency, description. |
| EdfaPgPayer | Payer details — name, address, country, city, zip, email, phone, ip. |
| EdfaPgPayerOptions | Optional payer configuration. |
| EdfaPgCard | Card for the bypass flow — number, expireMonth, expireYear, cvv. |
| Extra | Arbitrary extra key/value data attached to a request. |
Request Types
The request objects passed to the direct / lifecycle / query methods.
| Type | Used by |
|---|---|
| SaleRequest | sale(...) — orderId, amount, currency, paymentMethod, auth, recurringInit, customer, billingAddress, invoice, result URLs, hash, card. |
| ApplePayRequest | applePay(...) — Apple Pay sheet parameters (lives in commonMain). |
| RecurringRequest | recurring(...) — transactionId, recurringToken, amount, Order. |
| Order | Nested order for RecurringRequest — number, amount, currency, description. |
| TransactionFilter | getTransactions(...) — pageNumber, pageSize, status, id, orderId, rrn. |
| PageDto | Paginated result returned by getTransactions(...). |
Enums
The enums that drive the checkout appearance and provider selection.
| Enum | Values |
|---|---|
| EdfaPayDesignType | ONE / TWO / THREE (Flutter: one / two / three) |
| EdfaPayLanguage | en / ar |
| ExternalPaymentMethod | TABBY / TAMARA / CHECKOUT / SADAD (Flutter/Swift lowercased) |
External Payment Types
External payments reuse the same customer / address / invoice value types as SaleRequest. The external endpoints ignore the rich-shape extras (extraCharges, url, discountRate, taxRate); invoice is nullable — omit it if you don't need it.
| Type | Purpose |
|---|---|
| ExternalPaymentRequest | externalPayment(...) request — orderId, paymentMethod, amount (minor units), currency, plus flat or nested provider fields. |
| ExternalPaymentAdditionalData | Flat-shape extras (e.g. storeId) for tabby / tamara / checkout. |
| CustomerDto / Customer | SADAD customerDetails — name, email, phone, idNumber, idType, taxNumber. |
| BillingAddressDto / BillingAddress | Billing / SADAD address — country, state, city, address, zip. |
| InvoiceDto / LineItemDto | Invoice line items (major units) shared with SaleRequest. |
Platform naming
Kotlin/Swift use the *Dto suffix (CustomerDto, BillingAddressDto); the Flutter plugin reuses Customer / BillingAddress. The fields are the same across platforms.
On this page
Downloads
Coming SoonSample apps, release bundles, and more content will be available here soon.