Fintecture Smart Transfer: Headless Guide
Integrate Fintecture Smart Transfer on your website or mobile application and fully customize your checkout experience using your own UI.
Before you begin
This guide assumes that you know how to:
Accept payments with Fintecture Smart Transfer
Prepare the client session
Fintecture Smart Transfer requires the following data to process a payment successfully. Pass the following data in the client session, or in the payment request (for manual payment creation).
Parameter Name | Required | Description |
---|---|---|
currencyCode | ✓ | 3-letter currency code in ISO 4217 format, e.g. EUR. Currently, only EUR is supported. |
order ↳ lineItems | For each line item in the order, the following fields must all be present to be sent to Fintecture: • order.lineItems[].name • order.lineItems[].quantity • order.lineItems[].amount • order.lineItems[].itemId If any of these fields are missing for any line item, none of the line items will be included in the Fintecture request. Fintecture requires that either all specified fields for all line items are sent together or none at all. | |
customer ↳ billingAddress ↳ firstName | ✓ | firstName will be used in meta -> psu_name in the request to Fintecture |
customer ↳ billingAddress ↳ lastName | ✓ | lastName will be used in meta -> psu_name in the request to Fintecture |
customer ↳ emailAddress | ✓ | emailAddress will be used in meta -> psu_email in the request to Fintecture |
customer ↳ phoneNumber | phoneNumber will be sent in meta -> psu_phone in the request to Fintecture | |
customer ↳ billingAddress | The following address fields must all be present to be sent to Fintecture: • customer.billingAddress.street • customer.billingAddress.city • customer.billingAddress.postalCode • customer.billingAddress.countryCode If any of these fields are missing, none of them will be included in the Fintecture request. Fintecture requires that either all of these fields are sent together or none at all. Additionally, if all the required fields are present, the field customer.billingAddress.addressLine1 will also be included in the request if it is provided. | |
customer ↳ deliveryAddress | The following address fields must all be present to be sent to Fintecture: • customer.deliveryAddress.street • customer.deliveryAddress.city • customer.deliveryAddress.postalCode • customer.deliveryAddress.countryCode If any of these fields are missing, none of them will be included in the Fintecture request. Fintecture requires that either all of these fields are sent together or none at all. Additionally, if all the required fields are present, the field customer.deliveryAddress.addressLine1 will also be included in the request if it is provided. | |
metadata | ✓ | Using Advanced Metadata Mapping, you can set up metadata field mappings between your request and Fintecutre or override existing fields. For example, meta.expiry can be overriden to adjust how quickly abandoned payments should expire. The default now is 30 days. Please make sure to specify the duration in seconds. |
Prepare the SDK for payments
Handle payment method
Fintecture Smart Transfer requires instance of Redirect Manager in order to be presented to the user:
FINTECTURE_SMART_TRANSFER
must be returned as PaymentMethod.type
in the onAvailablePaymentMethodsLoad
callback.
When the user has selected the payment method, call the start
function. This function automatically:
- opens a popup to present a loading indicator, then the payment method web page
- shows an overlay on top of your page that prompts the user to focus on the popup
Handle payment method
Fintecture Smart Transfer requires instance of Redirect Manager in order to be presented to the user:
FINTECTURE_SMART_TRANSFER
must be returned as PaymentMethod.type
in the onAvailablePaymentMethodsLoad
callback.
When the user has selected the payment method, call the start
function. This function automatically:
- opens a popup to present a loading indicator, then the payment method web page
- shows an overlay on top of your page that prompts the user to focus on the popup
Pre-requisites
Handling redirects is required for Payment Methods that present a webpage or open a 3rd party application for the customer to enter their credentials and validate their payment.
To enable this feature, ensure that you include the urlScheme
parameter when configuring the PrimerPaymentMethodOptions
object.
Set up redirects
Handle redirects
When the user is redirected back to the main app, the function application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool
is automatically called by iOS. Make sure to call Primer.shared.application...
to forward this information to the SDK so that Universal Checkout can continue the flow.
Handle payment method
Fintecture Smart Transfer requires a Native UI Manager in order to be presented to the user:
Handle payment method
Fintecture Smart Transfer requires a Native UI Manager in order to be presented to the user:
Handle payment method
Fintecture Smart Transfer requires a Native UI Manager in order to be presented to the user:
This code is intended solely for illustrative purposes. As many redirect payment methods share a common approach, it is recommended to centralize the implementation of these methods within your codebase. For a practical demonstration of how to achieve this, please refer to the guide on how to handle Native UI payment methods.
Test
You can test payments using EUR as the currency.
Sandbox testing
After initiating the payment, a list of banks will appear. Please select either “CIC” or “Crédit Mutuel” and complete the process using the preloaded credentials. At the end of this flow, the payment status will be SETTLING in Primer. To simulate the funds receival and move the payment to SETTLED, you can use Fintecture’s Event Simulator. Please provide the exact amount, the customer’s name, the order ID, and the IBAN of the Fintecture bank account. Primer will receive an webhook and automatically update the payment to SETTLED.
If you don’t have your Fintecture IBAN, please contact Fintecture’s support for assistance.
Go live
You don’t need to do anything particular to go live — just make sure to use production credentials.