1. Merchant SDK
Freedom Pay
  • Overview
  • Gateway API
    • Overview
    • Sync API
      • Overview
      • Card data encryption
      • Payments
        • Overview
        • Pay by card
        • Pay by card: complete 3DS
        • Pay with Apple Pay
        • Pay with Google Pay
        • Pay by recurring profile
        • Create payment page
        • Create payment page with any amount
        • Capture payment (clearing)
        • Cancel payment
        • Refund payment
        • Get payment status
      • Payouts
        • Overview
        • Pay out to card
        • Pay out to IBAN
        • Get payout balance
        • Get payout status
      • Transfers
        • Overview
        • Transfer from card to card
        • Transfer from card to card: complete 3DS
        • Get exchange rates
        • Get transfer status
      • Saved cards
        • Overview
        • Save card
        • Save card: complete 3DS
        • List saved cards
        • Remove saved card
        • Pay by card token
        • Pay out to card token
        • Get payment status
    • Async API
      • Overview
      • Create
        • Create payment
        • Save card without a charge
      • Read
        • Get payment status
        • Get request result
      • Edit
        • Capture payment (clearing)
        • Cancel payment (reverse)
        • Refund payment
  • Merchant API
    • Overview
    • Payments
      • Overview
      • Checkout
      • Pay by saved card
        • Overview
        • Create payment
        • Confirm payment with CVC
        • Confirm payment without the client
      • Create payment
      • Create payment with a payment page template
      • Create payment in a payment frame
      • Create payment with any amount
      • Create recurring payment
      • Capture payment (clearing)
      • Cancel payment
      • Refund payment
      • Get payment status
    • Payouts
      • Overview
      • Create payout page
      • Pay out to saved card
      • Pay out to IBAN
      • Get payout status
      • Get payout balance
    • Saved cards
      • Get saved cards
      • Save card
      • Save card for payouts
      • Delete saved card
      • Save card without a charge
    • Mobile balance
      • Overview
      • Create mobile balance payment
      • Charge mobile balance
      • Get mobile balance payment status
      • Confirm payment with SMS code
      • Resend SMS code
    • Invoices
      • Overview
      • Recurring payments
        • Overview
        • Create recurring profile
        • Get recurring profile
        • Charge by recurring profile
        • Cancel recurring profile
        • Recurring profile notification
      • Tips
        • Overview
        • Create
      • Create invoice
      • Get invoice status
      • Get invoice details
      • Cancel invoice
      • Refund invoice
    • SDK
      • JS SDK
      • Merchant SDK
        • Android
        • iOS
        • Migration guide
    • CMS
      • Overview
      • Get Merchant ID and key
      • WordPress
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
        • Update
      • Tilda
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • InSales
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • Ecwid
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • Bitrix
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • PrestaShop
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • OpenCart
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • CS-Cart
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
    • Installment
      • Overview
      • Status
        • Get application status
        • Application status notification
        • Change application status
      • Get partners
      • Create application
    • Callbacks
      • Overview
      • Result notify
      • Check request
      • Payout notify
      • Redirect back
  • Partner API
    • Overview
    • Rates
      • Overview
      • Rates
    • Products
      • Overview
      • Dictionaries
      • Add client with product
      • Client request status
      • Create terminal
      • Update terminal limits
      • Product request status
    • E-Money
      • Overview
      • Add
      • Owner identification
      • Info
      • Close
      • Block
      • Balance
      • Statement
      • Request Status
    • Device ID
      • Android SDK
      • iOS SDK
    • Implement SuperApp
      • Overview
      • Pay
      • Refund
      • Status
    • Account
      • Overview
      • Create payment
      • Payment status
      • Batch statuses
      • Statement
      • Statement status
      • Balance
      • Balance status
    • Invoices
      • Info
  1. Merchant SDK

Migration guide

Android: migrating from versions < 1.2.0#

Google Pay#

FreedomAPI.createGooglePayment() and FreedomAPI.confirmGooglePayment() have been removed. Use FreedomAPI.payWithGooglePay() instead.
Google Pay payments now take a single SDK call. You no longer create a payment before showing the Google Pay sheet. Launch Google Pay directly, then pass the received token to payWithGooglePay().
payWithGooglePay() takes the same StandardPaymentRequest you previously passed to createGooglePayment(), together with the Google Pay token.
The result type is unchanged: FreedomResult<PaymentResponse>.
GooglePayment has been removed. It was only used to pass the payment from createGooglePayment() to confirmGooglePayment() and is no longer needed.
payWithGooglePay() requires a PaymentView. Call freedomApi.setPaymentView() before paying. If the bank requires 3-D Secure, the SDK shows the bank's page in the PaymentView and hides it once the payment gets a final status. Without a PaymentView, the call returns PaymentViewIsNotInitialized.
To let the user cancel 3-D Secure (for example, on a Back press), hide the PaymentView. The SDK then returns the latest known payment status.
payWithGooglePay() accepts an optional force3DS parameter (defaults to false). Set it to true to require 3-D Secure for the payment.
A declined payment is now returned as FreedomResult.Success with PaymentResponse.status set to Status.Error. Check status instead of relying on FreedomResult.Error alone.
If payWithGooglePay() returns FreedomResult.Error.NetworkError, the payment may still have been made. Check its status on your backend by orderId before letting the user pay again. We recommend always setting orderId in StandardPaymentRequest.
See the Android page, section «5. Paying with Google Pay», for the full integration.

iOS: migrating from versions < 1.2.0#

Apple Pay#

Use FreedomAPI.payWithApplePay() instead of FreedomAPI.createApplePayment() and FreedomAPI.confirmApplePayment().
Apple Pay payments now take a single SDK call. You no longer create a payment before showing the Apple Pay sheet. Launch Apple Pay directly, then pass the received token to payWithApplePay().
payWithApplePay() takes the same StandardPaymentRequest you previously passed to createApplePayment(), together with the Apple Pay token.
The result type is unchanged: FreedomResult<PaymentResponse>.
ApplePayment is no longer needed in this flow. It was only used to pass the payment from createApplePayment() to confirmApplePayment(). The legacy methods and model are still available in the current iOS SDK.
payWithApplePay() requires a PaymentView. Call freedomApi.setPaymentView() before paying. If the bank requires 3-D Secure, the SDK shows the bank's page in the PaymentView and hides it once the payment gets a final status. Without a PaymentView, the call returns .infrastructureError(.webView(.paymentViewIsNotInitialized)).
The user can cancel 3-D Secure with the view's left-edge swipe. The SDK then returns the latest known payment status.
payWithApplePay() accepts an optional force3ds parameter (defaults to false). Set it to true to require 3-D Secure for the payment.
A declined payment is now returned as FreedomResult.success with PaymentResponse.status set to .error. Check status instead of relying on FreedomResult.error alone.
If payWithApplePay() returns FreedomResult.error(.networkError(...)), the payment may still have been made. Check its status on your backend by orderId before letting the user pay again. We recommend always setting orderId in StandardPaymentRequest.
See the iOS page, section «5. Paying with Apple Pay», for the full integration.
Previous
iOS
Next
Overview