P2M Mandate (Both customer and merchant are on our stack)

Customer initiates the mandate from sdk. Callback: Outgoing Create Mandate From Customer. Refer Callbackslink icon.

  1. Recurring

    • If the Mandate creation was successful, we will go for execution (1st debit)
      Based on the execution of Mandate , we will give back two Callback:

      1. Mandate status
        If execution successful then state changes from CREATED -> ACTIVE,and we send mandate status callback with event_name = MANDATE_ACTIVATED. If execution unsuccessful then state changes from CREATE -> FAILURE, and we send mandate status callback with event_name = MANDATE_FAILED

      2. Transaction status
        If execution successful then transaction status will change to CHARGED and we will send Transaction status callback with event_name = ORDER_SUCCEEDED. If execution not successful then transaction status will change to failure state ( AUTHENTICATION_FAILED / AUTHORIZATION_FAILED etc ) and we will send Transaction status callback with event_name = ORDER_FAILED

    • If the Mandate creation was not successful
      the status of Mandate will change from CREATED -> FAILURE, and also the status of transaction will change.
      Callback :

      1. Mandate status(event_name = MANDATE_FAILED)

      2. Transaction status(event_name = ORDER_FAILED)



  2. ONE TIME

    1. Mandate Status

      • If successful then state changes from CREATED -> ACTIVE, and we send mandate status callback with event_name = MANDATE_ACTIVATED

      • If unsuccessful then state changes from CREATE -> FAILURE, and we send mandate status callback with event_name = MANDATE_FAILED

    2. Transaction Status

      • If successful then transaction status will change toCHARGEDand we will send Transaction status callback with event_name = ORDER_SUCCEEDED

      • If Not successful then transaction status will change to failure state ( AUTHENTICATION_FAILED / AUTHORIZATION_FAILED etc ) and we will send Transaction status callback with event_name = ORDER_FAILED



    • Merchant Goes for execution
      Callbacks:

      1. Transaction status(This will be for the new order id )

        • If successful then transaction status will change toCHARGEDand we will send Transaction status callback with event_name = ORDER_SUCCEEDED

        • If Not successful then transaction status will change to failure state ( AUTHENTICATION_FAILED / AUTHORIZATION_FAILED etc ) and we will send Transaction status callback with event_name = ORDER_FAILED

      2. If blockFund = false

      3. Incoming Pre Payment Notification Mandate For Customer

      4. Amount greater than > 5000 rupees then callback:Incoming Collect Request to Customer

      5. MERCHANT_CUSTOMER_DEBITED_FOR_MERCHANT_VIA_COLLECT



      6. If blockFund = true

      7. MERCHANT_CUSTOMER_DEBITED_FOR_MERCHANT_VIA_COLLECT

  3. Update

    • RECURRING OR ONE TIME MANDATE with blockFund = false
      Since customer has initiated the Mandate, so only customer can update and not the Merchant. No approval needed for the same.
      Callbacks:

      1. Outgoing Update Mandate From Customer

      2. Mandate status callback with event_name = MANDATE_UPATED

    • ONE TIME MANDATE with blockFund = true
      Please note this is not IPO Mandate case, for IPO mandate creation will be done by exchange and not the customer. Neither customer nor the merchant can update.

  4. Revoke

    • RECURRING OR ONE TIME MANDATE with blockFund = false

      • Customer goes for revoke. Callback:

        1. Outgoing Update Mandate From Customer

        2. Mandate status callback with event_name = MANDATE_REVOKED

      • Merchant goes for revoke. Callback:

        1. Incoming Update Mandate For Customer

        2. mandate status callback with event_name =MANDATE_REVOKED

    • ONE TIME MANDATE with blockFund = true

      • Since the funds are blocked, customer cannot revoke. Merchant goes for revoke. Callback:

        1. Incoming Update Mandate For Customer

  5. Pause / Unpause

    • RECURRING OR ONE TIME MANDATE with blockFund = false
      Only the customer can pause / unpause the mandate. No approval needed for the same. Callbacks:

      1. Outgoing Pause Mandate From Customer (mandate_type as PAUSE or UNPAUSE)

      2. Mandate status callback with event_name = MANDATE_PAUSED (Mandate_type as PAUSE or UNPAUSE)

      3. or

      4. mandate status callback with event_name = MANDATE_ACTIVE (if unpause)

    • RECURRING OR ONE TIME MANDATE with blockFund = false
      Neither customer nor the merchant can pause.

Last updated 1 year ago