Balance Transfer DIM Callbacks

The documentation for the balance transfer DIM callbacks

By default, balance transfer will require a maximum balance transfer amount and a payerId. Optionally, you will be able to pass in phone number, date of birth, promotional APR, promotional term (in months), and card name. Lastly, you will have the option to disable the editing of the phone number, in the case that this user is tied to a phone number within your system. To do so, pass the information in the dropinConfig object as illustrated below:

dropinConfig: {
    module: 'balance-transfer',
    token: token,
    phoneNumber: '5555555555',
    month: 12,
    day: 2, 
    year: 1990,
    promotionTermLength: 36,
    promotionApr: 0,
    promotionMaxAmount: 5000,
    promotionCardName: 'High Rewards Card',
    readOnlyPhoneNumber: true,
    payerId: 'cf6f16c6-82f6-4796-893f-a7dacc04aa04'
  },

All three parameters may be passed as either a string or a number, but they will be parsed and validated when the module loads. In the case that an invalid parameter has been passed (input - month: 2, day: 31), the invalid parameter will be treated as if it were not passed at all (output - month: 2, day: undefined).

onSuccess

This method is called when a user successfully completes the balance transfer flow and a transaction has been created. We pass the userId generated and the transactionId created in the callback method's metadata and close the drop-in.

onSuccess(metadata){
    // your code
}

{
    'eventName': 'BALANCE_TRANSFER_SUCCESS',
    'message': 'Balance transfer setup is successful',
    'metadata': {
        userId: '{{UUID generated for user}}',
        transactionId: '{{UUID generated for transaction}}',
        amount: 5000,
        liabilityId: '{{UUID for liability selected for balance transfer}}'  
    }
}

Following the success of the balance transfer module, the User Payment Status Webhook would be the appropriate tracking mechanism for the status of the balance transfer transaction created. This webhook will reference the transactionId and the status as the transaction progresses to APPLIED.

onExit

onExit(metadata){
    // your code
}

{
    'eventName': 'DROPIN_EXIT',
    'message': 'Drop in Module Closed.'
}

In the case that a user does not complete the balance transfer module/process, the onExit event would be fired. In the case that no onSuccess with the specific event name for the completion of the balance transfer flow has occurred and an onExit event has been fired, it can be concluded that the user closed the drop in module without completing the process.