Skip to main content

Documentation Index

Fetch the complete documentation index at: https://sammydocs.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

This guide demonstrates how to integrate Mono Connect into your Angular application.

Basic Integration

Here’s how to implement account linking in an Angular component:
import { Component, OnInit } from '@angular/core';
import Connect from '@mono.co/connect.js';

@Component({
  selector: 'app-mono',
  templateUrl: './mono.component.html',
  styleUrls: ['./mono.component.css']
})
export class MonoComponent implements OnInit {
  public monoInstance: any;

  constructor() {
    this.monoInstance = new Connect({
      key: "PUBLIC_KEY", 
      onClose: () => console.log('Widget closed'),
      onLoad: () => console.log('Widget loaded successfully'),
      onSuccess: ({ code }) => console.log(`Linked successfully: ${code}`)
    })

    this.monoInstance.setup()
  }

  ngOnInit() {}
}
<!--mono.component.html-->
<button (click)="monoInstance.open()">
  Link your account
</button>

Reauthorisation Implementation

For reauthorizing an existing account:
import { Component, OnInit } from '@angular/core';
import Connect from '@mono.co/connect.js';

@Component({
  selector: 'app-mono',
  templateUrl: './mono.component.html',
  styleUrls: ['./mono.component.css']
})
export class MonoComponent implements OnInit {
  public monoInstance: any;

  constructor() {
    this.monoInstance = new Connect({
      key: "PUBLIC_KEY", 
      onSuccess: ({ code }) => console.log(`Reauth successful: ${code}`)
    })

    this.monoInstance.reauthorise("auth_vb6klH234ox")
  }

  ngOnInit() {}
}
<!--mono.component.html-->
<button (click)="monoInstance.open()">
  Reauthorise account
</button>

Direct Debit Integration

For implementing payments:
import { Component, OnInit } from '@angular/core';
import Connect from '@mono.co/connect.js';

@Component({
  selector: 'app-mono',
  templateUrl: './mono.component.html',
  styleUrls: ['./mono.component.css']
})
export class MonoComponent implements OnInit {
  public monoInstance: any;

  constructor() {
    this.monoInstance = new Connect({
      key: "PUBLIC_KEY", 
      scope: "payments",
      data: {
        type: 'one-time-debit', // recurring-debit or one-time-debit
        amount: 150000, //amount in kobo
        description: "payment for light bill"
      },
      onSuccess: (chargeObject) => console.log(`Payment successful`, chargeObject)
    })

    this.monoInstance.setup()
  }

  ngOnInit() {}
}
<!--mono.component.html-->
<button (click)="monoInstance.open()">
  Pay with Mono
</button>

Important Notes

Component Initialization

The Mono Connect instance is initialized in the component’s constructor:
constructor() {
  this.monoInstance = new Connect({
    key: "PUBLIC_KEY",
    onSuccess: ({ code }) => console.log(`Linked successfully: ${code}`)
  })
  
  this.monoInstance.setup()
}

Event Handling

Event handlers are passed during initialization:
this.monoInstance = new Connect({
  key: "PUBLIC_KEY",
  onClose: () => console.log('Widget closed'),
  onLoad: () => console.log('Widget loaded successfully'),
  onSuccess: ({ code }) => console.log(`Linked successfully: ${code}`),
  onEvent: (eventName, data) => console.log(`${eventName} occurred:`, data)
})

Template Integration

The connect widget is triggered through a button click event:
<button (click)="monoInstance.open()">
  Link your account
</button>

Reauthorisation Note

The reauthorise() function should be used in place of the setup() function. The two should not be used at the same time.