MIT SFTP Batch Processing

This feature allows merchants to send FlexFactor batches of failed transactions for subscriptions without integration.


MIT are transactions where the merchant initiates the payment on behalf of the customer, without the customer actively participating in the transaction (e.g.: recurring subscriptions).

Overview

On a decline of a recurring payment, transaction is sent over to FlexFactor for a period of time.

During this period, FlexFactor will send status update notifications via webhook:

  • APPROVED: transaction was rescued by FlexFactor
  • EXPIRED: FlexFactor wasn't able to rescue this transaction.

Implementation steps

If you don't already have a Sandbox account with the required credentials to start using our APIs, you can request one at [email protected]

You will find all your credentials in the developer's section


1. Get credentials for our SFTP

Share with us your both public SSH key as well as the IP address from which the batches will be sent. We will whitelist that address and provide a secured access to our server.

We'll then create 2 dedicated folders for you: one for inbound files, one for outbound files.

How to generate an SSH key


2. Embed and invoke SenseJS on the checkout page

FlexFactor needs to receive fingerprinting for the customer's session on the checkout page (e.g.: loading, device, timzone).

SenseJS is the dedicated JavaScript library for that. It needs to be invoked when the checkout page is loaded.

Implement SenseJS to a checkout page.


3. Authentication

Requests without authentication will fail.

How to authenticate.


4. Vault credit card info on checkout

Once the credit card information is collected for Authorization, it needs to be vaulted with FlexFactor for later use.

Vaulting can be made in parallel to the Auth call.

Incorporate /tokenize to a checkout.


5. On authorized payments: Transmit the transaction information

FlexFactor will build your custom risk model based on your successful transactions. POST /transmit doesn't require an answer, so this 'fire and forget' call doesn't add latency to your transaction.

Queue /transmit after an approval.


6. On declined payments: Evaluate that transaction

Retrieve the tokenized credit card information and pass it along with POST /evaluate

FlexFactor will evaluate that transaction and respond with an APPROVED or DECLINED status in real time.

Call /evaluate after a decline.


7. Update the order status

When integrating for MIT, you will get a async response. Subscribe to the relevant webhooks to receive updates on the order status.

Subscribe to the ORDER COMPLETE and ORDER EXPIRED webhooks.


8. Issue a refund on a FlexFactor order

On an APPROVED transaction, issue a full or partial refund with POST /refund.

Retrieve the orderSessionKey from the /evaluate response to build your call.

Call /refund on an order.


9. Cancel a FlexFactor pending order

Cancel a PENDING transaction, with POST /cancel.

Retrieve the orderSessionKey from the /evaluate response to build your call.

Call /cancel on an order.


What’s Next