EdfaPay Logo

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.

TypePurpose
EdfaPgSaleOrderOrder for the bundled checkout — id, amount, currency, description.
EdfaPgPayerPayer details — name, address, country, city, zip, email, phone, ip.
EdfaPgPayerOptionsOptional payer configuration.
EdfaPgCardCard for the bypass flow — number, expireMonth, expireYear, cvv.
ExtraArbitrary extra key/value data attached to a request.

Request Types

The request objects passed to the direct / lifecycle / query methods.

TypeUsed by
SaleRequestsale(...) — orderId, amount, currency, paymentMethod, auth, recurringInit, customer, billingAddress, invoice, result URLs, hash, card.
ApplePayRequestapplePay(...) — Apple Pay sheet parameters (lives in commonMain).
RecurringRequestrecurring(...) — transactionId, recurringToken, amount, Order.
OrderNested order for RecurringRequest — number, amount, currency, description.
TransactionFiltergetTransactions(...) — pageNumber, pageSize, status, id, orderId, rrn.
PageDtoPaginated result returned by getTransactions(...).

Enums

The enums that drive the checkout appearance and provider selection.

EnumValues
EdfaPayDesignTypeONE / TWO / THREE (Flutter: one / two / three)
EdfaPayLanguageen / ar
ExternalPaymentMethodTABBY / 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.

TypePurpose
ExternalPaymentRequestexternalPayment(...) request — orderId, paymentMethod, amount (minor units), currency, plus flat or nested provider fields.
ExternalPaymentAdditionalDataFlat-shape extras (e.g. storeId) for tabby / tamara / checkout.
CustomerDto / CustomerSADAD customerDetails — name, email, phone, idNumber, idType, taxNumber.
BillingAddressDto / BillingAddressBilling / SADAD address — country, state, city, address, zip.
InvoiceDto / LineItemDtoInvoice 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.