Merchant direct integration for MIT

This is a direct integration for MIT only merchants

Data Flow

Sending a copy of every transaction with /transmit

1. Sending all orders for customized risk model. (Transmit API)

Rescuing rebills with /evaluate

2. Processing declined rebills with FlexCharge (Evaluate API)

Step 1. Create a Sandbox account

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]

Ask our support to enable MIT for your account.

Step 2. Authentication

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

How to authenticate.

Step 3. Transmit API

The Transmit API needs to receive a copy of each processed payment transaction (authorized or declined) related to any of your orders. The data sent the Transmit API is used to build customer profiles and DOES NOT activate the FlexCharge service.

Once transmitted, our API will respond with a transaction key.
This key can be used to update the order object, for example with its outcome.

How to implement /transmit.

Step 4. Evaluate API

Payment Method tokenization

PCI data needs to be tokenized for this step.

Your tokenization key can be found on the Developers > Tokenization section on the merchant portal.

How to /tokenize.


On declined/failed transactions, you will have to invoke FlexCharge's Evaluate API.

This ACTIVATES the FlexCharge service.

Specific fields to provide for this integration

expiryDateUtcdate-timeIndicates period during which FlexCharge will retry the transaction.
subscriptionObjectInformation about the subscription.

For subscriptions, you will need to set an expiryDateUTC (minimum 2 weeks, ideally 3 weeks). FlexCharge will retry these transactions during this period of time while sending status update notifications via webhook.

Once called, our API will respond with both a Submitted status and a orderSessionKey.

When retrying, FlexCharge will respond with a Submitted status as long as the Payment Transaction was not deemed eligible for rescue. If it is eventually eligible, then FlexCharge will respond with a Approvedstatus. If the status remains Submitted by the end of the expiryDateUTC, then the transaction was not rescuable.

How to implement /evaluate


Send only MIT that have just failed

The FlexCharge service is optimized to work with failed Merchant Initiated Transactions (MIT) that have just failed. These need to be passed to FlexCharge 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.

Step 5. Receive outcome

Receive updates on the transactions that were rescued by FlexCharge through a Webhook, and/or via the Outcome API.


Processing on MIT is asynchronous. In order to get notified when the status is updated, you must subscribe to a webhook.

How to manage webhooks

Outcome API

Invoke /outcome regularly to retrieve information about orders that have been submitted through /evaluate.

How to implement /outcome.

Your integration is now done

You can now test transactions in your test environment.