Fondy Payment Gateway Integration in Mobile Application
Fondy (Cloudipsp) is a Ukrainian payment gateway with native SDKs for iOS and Android. Supports card payments, Google Pay, Apple Pay, and mobile banking payments. SDK is called cloudipsp-ios / cloudipsp-android. Integration is built around tokenization on client and confirmation via server API.
SDK Integration
// Android, build.gradle
implementation("com.cloudipsp:cloudipsp-android:1.x.x")
// iOS, Podfile
pod 'Cloudipsp'
Main Flow: Token Creation and Payment Processing
Fondy uses two-stage scheme: client creates card token, passes it to server, server processes payment.
Server Side: Getting Token for SDK
POST https://pay.fondy.eu/api/checkout/token
{
"request": {
"server_callback_url": "https://your-server.com/payment/callback",
"order_id": "ORDER-1234",
"currency": "UAH",
"merchant_id": "1396424",
"order_desc": "Order #1234",
"amount": "15000",
"signature": "sha1_signature"
}
}
Response contains token — passed to mobile SDK.
Android: CardInputView and Payment
// Token received from server
val token = "server_token"
// CardInputView — built-in SDK component
val cardInputView = CardInputView(context)
// Or programmatic card data transmission
val cardNumber = CardNumber("4111 1111 1111 1111")
val mm = ExpireMonth("12")
val yy = ExpireYear("2025")
val cvv = Cvv("123")
Cloudipsp.checkout(
context = context,
token = token,
card = Card(cardNumber, mm, yy, cvv),
email = "[email protected]",
listener = object : Cloudipsp.PayCallback {
override fun onPaidProcessed(order: Order) {
if (order.status == Order.Status.Approved) {
handleSuccess(order.transactionId)
}
}
override fun onPaidFailure(e: Cloudipsp.Exception) {
handleError(e.message)
}
override fun on3dsRedirect(request: Cloudipsp.Request3ds, webView: WebView) {
// 3DS — SDK passes WebView for processing
webView.loadUrl(request.url)
}
}
)
iOS: CloudipspView
import Cloudipsp
let api = Cloudipsp(merchantId: 1396424, callbackUrl: "yourapp://payment/result")
// Via ready PaymentController
let paymentController = PaymentController(token: serverToken)
paymentController.present(in: self) { [weak self] result in
switch result {
case .success(let order):
self?.handleSuccess(order.orderStatus)
case .failure(let error):
self?.handleError(error.localizedDescription)
}
}
Request Signing
Fondy signs requests via SHA-1 of all request parameters in alphabetical order + password:
SHA1(password|param1_value|param2_value|...)
Incorrect sorting or extra parameters in signature — frequent cause of Invalid signature error.
Verification via Callback
Fondy sends server_callback_url POST request with transaction result. Verify incoming request signature using same SHA-1, just order: all response fields in alphabetical order.
Work Scope
- Cloudipsp SDK integration (iOS / Android)
- Server endpoint for getting Fondy token
- CardInputView implementation or custom UI with Card object
- 3DS handling via WebView inside SDK
- Server callback and signature verification
Timeline
2–3 days. Cost calculated individually.







