MIT SFTP Batch Processing

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



MIT are rebills on subscriptions, or billing after free trial.

These transactions are being processed without the consumer facing the checkout page, so when failing, these transactions can be retried at a later point.

🔀

Who's managing the MIT:

Unmanaged MIT: these MIT will not be managed by FlexFactor, you will receive a real-time response.

Managed MIT: these MIT will be managed by FlexFactor for the time you allocate. You will have to mark these transactions as 'pending' until FlexFactor responds with their definitive status.


MIT unmanaged by FlexFactor

If you don't want FlexFactor to manage the MIT (e.g., you want to use your retry mechanism or you cannot mark a transaction as 'pending'), we will configure your account accordingly.

This way, /evaluate will return a real-time status response that you can reconcile within your system.

Sync MIT flow

MIT unmanaged by Flex

MIT managed by FlexFactor

If you want FlexFactor to managed your MIT, we will configure your account accordingly.

This flow requires that you:

  • interrupt your retry mechanism,
  • set an Expiry Date, i.e. the period of time FlexFactor will manage the transactions
  • marked these transactions as 'PENDING'
  • reconcile definitive status with a webhook.
MIT general workflow

MIT managed by Flex


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. Authentication

Requests without authentication will fail.

How to authenticate.




3. 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.




4. On declined payments: send that transaction for Evaluation

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

MIT requires additional parameters, make sure you have them included in your requests.


Call /evaluate after a decline.

❗️

Send only MIT that have just failed

The FlexFactor service is optimized to work with failed Merchant Initiated Transactions (MIT) that have just failed. These need to be passed to FlexFactor on that day (and not after a few days or weeks) and should not be retried by the Merchant up to the set expiry date.



5. 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.




6. Reconcile the order status

FlexFactor will evaluate that transaction and respond with an APPROVED , CHALLENGE, DECLINED , or 'SUBMITTED' status, reconcile this status with your internal system.




7. Ingest Webhooks

You will receive updates on your orders through webhooks, subscribe to all the webhooks you need.

Subscribe to webhooks.



8. 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.



🧑‍💻

Support is here to help

Unsure what steps to perform? Contact [email protected]


What’s Next