MIT Integration

Sending MIT subscriptions to FlexFactor via APIs


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.

Integration steps

On the server side

1. Authentication

All API requests are made over HTTPS. Requests without authentication will fail.

How to authenticate.


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


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


4. On declined payments: send that transaction for Evaluation

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

FlexFactor will confirm having received the transaction with a SUBMITTED status.

Definitive status for transactions will be sent through a webhook notification.

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.


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


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


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.


Build your integration

Your integration build will depend on the characteristics of your technical ecosystem.

Unsure what steps you can/need to perform? Let's schedule a call!


What’s Next