Before you begin

This guide assumes that you know how to:

Accept payments with Fintecture Smart Transfer

Prepare the API

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 NameRequiredDescription

3-letter currency code in ISO 4217 format, e.g. EUR. Currently, only EUR is supported.

  1. order

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.

  1. customer
  2. billingAddress

firstName will be used in meta -> psu_name in the request to Fintecture

  1. customer
  2. billingAddress

lastName will be used in meta -> psu_name in the request to Fintecture

  1. customer

emailAddress will be used in meta -> psu_email in the request to Fintecture

  1. customer

phoneNumber will be sent in meta -> psu_phone in the request to Fintecture

  1. customer

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.

  1. customer

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.

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:

1
const manager = await headless.createPaymentMethodManager('FINTECTURE_SMART_TRANSFER')
typescript
copy

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
123
myButton.addEventListener('click', () => {    manager.start()})
typescript
copy

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 payment methods with redirect.

Test

You can test payments using EUR as the currency.

Sandbox testing

After initiating the payment, a page with destination bank account details is shown. Use those details in the Fintecture Event Simulator to simulate a customer completing the payment. You are able to provide partial amount or even a higher amount than what the original payment was created for. Primer will receive webhooks from Fintecture and automatically update the payment accordingly.

Go live

You don’t need to do anything particular to go live — just make sure to use production credentials.