Vendor-Managed Recurring

Manage the recurring deductions from your side

Description:

This feature allows you to fully manage recurring payments independently, without relying on MyFatoorah's recurring model. You have complete control over

  • the frequency of deductions,
  • the timing of each deduction,
  • the number of deductions, and
  • the amounts to be deducted.

Requirements:

You need to have for your account the following features to be able to manage the recurring at your end:

  • Tokenization: This feature enables you to tokenize the card information that the customer entered on his first payment. You will then use the token to make subsequent deductions. For more information, please check the Tokenized Embedded Payment
  • FastPay: This feature enables you to complete the payment without going to the 3DS page when making a payment from a tokenized/saved card.

🚧

FastPay

This feature will not take you to the OTP page if and only if the saved/tokenized card has been 3DS verfied before. For tokenized cards, you can know this from the value of the Is3DSVerified parameter returned in the response of InitiateSession.

  • BypassCvv: This feature enables you to make the payment without sending the CVV for the tokenized card from which you will deduct the amount.

Steps:

1. Tokenize the card from the first payment

You will tokenize the card information that the customer enters by following the steps in the Tokenized Embedded Payment Section

{
    "CustomerIdentifier": "vendor-managed-recurring",
    "SaveToken": true,
}

2. Call InitiateSession to get the token of the cards

You have to call InitiateSession using the same CustomerIdentifier on which you have the card tokenized.

{
    "CustomerIdentifier": "vendor-managed-recurring",
}
{
    "IsSuccess": true,
    "Message": "Initiated Successfully!",
    "ValidationErrors": null,
    "Data": {
        "SessionId": "2277328f-029a-4d06-9b87-df1e0c7a4071",
        "CountryCode": "KWT",
        "CustomerTokens": [
            {
                "Token": "Token0505121804295351",
                "CardNumber": "545454xxxxxx5454",
                "CardBrand": "Master",
                "Is3DSVerified": true
            }
        ]
    }
}

3. Call UpdateSession using the Token

You will now call UpdateSession using the Token that is returned in the InitiateSession response. The token must have the value of "Is3DSVerified": true to not go to the 3DS page by using the FastPay feature.

{
    "SessionId": "2277328f-029a-4d06-9b87-df1e0c7a4071",
    "Token": "Token0505121804295351",
    "TokenType": "mftoken",
}
{
    "IsSuccess": true,
    "Message": null,
    "ValidationErrors": null,
    "Data": {
        "SessionId": "2277328f-029a-4d06-9b87-df1e0c7a4071",
        "CountryCode": "KWT"
    }
}

4. Call ExecutePayment endpoint

You will call ExecutePayment endpoint using the SessionId and determine the amount that you want to deduct. You will execute steps 2, 3, and 4 when you want to make a deduction from the previously tokenized card.

{
    "SessionId": "2277328f-029a-4d06-9b87-df1e0c7a4071",
    "invoiceValue": 20,
}
{
    "IsSuccess": true,
    "Message": "Invoice Created Successfully!",
    "ValidationErrors": null,
    "Data": {
        "InvoiceId": 4283765,
        "IsDirectPayment": false,
        "PaymentURL": "https://demo.MyFatoorah.com/En/KWT/PayInvoice/Result?paymentId=07074283765216314472",
        "CustomerReference": null,
        "UserDefinedField": null,
        "RecurringId": ""
    }
}