Partner integration for MIT

Sending MIT subscriptions to FlexCharge via APIs

Click to display image in full-screen view.

Step 1. Create two Sandbox accounts

One as a partner, one as a merchant

You will be using your merchant's credential for every transaction.

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.


/evaluate

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

isMITBoolean
isRecurringBoolean
expiryDateUtcdate-timeIndicates period during which FlexCharge will retry the transaction.
subscriptionObjectInformation about the subscription.
threeDSecureObjectSecurity information on initial transaction.

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.


Partner integration checklist

❗️

Partner integration features

To ensure a seamless integration with you merchants, the following essential features need to be provided:


Multiprofile

Make sure that MIT and CIT are operate independently:

  • CIT/MIT Independent Switching: Ability to independently enable or disable CIT (Customer Initiated Transaction) and MIT (Merchant Initiated Transaction)
  • CIT/MIT Independent Testing: Ability to test CIT and MIT separately by establishing connections between the merchant's test environment + sandbox credentials, your sandbox environment, and the FlexCharge Sandbox.
    E.g.: MIT can be in production while CIT is in Sandbox testing.
  • Distinguishing Call Center orders from website orders: CIT generated from call centers should be easily distinguishable from CIT generated on websites.
    E.g.: Call centers orders could be turned off while websites orders can be in production.

Multisites

Merchants may have multiple websites, so it's necessary to provide each transaction's origin.

  • 'siteUrl' helps FlexCharge connect to the appropriate descriptor, make sure you can pass the correct url for each transaction
  • if you cannot provide the 'siteUrl', then pass 'transaction.descriptor'

Onboarding

  • How is FlexCharge enabled for a merchant? With UI?
  • Who's in charge of activating FlexCharge for a merchant?
  • Can FlexCharge be enabled on a campaign / website level?

Reporting system

  • As you would for a gateway integration, make sure the reporting is accurate regarding transactions / descriptors / websites

Step 5. Receive outcome

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

Webhook

Subscribe to webhooks for real-time updates and event-driven interactions.

How to manage webhooks


Outcome API

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

The API response will make it easier to keep track of the order history and monitor the status of each order. The Outcome API endpoint can be integrated into your own application or used as a standalone tool to retrieve order information and track the progress of your orders.

How to implement /outcome.


Your integration is now done

You can now test transactions in your test environment.