dapi_connect 0.0.1 copy "dapi_connect: ^0.0.1" to clipboard
dapi_connect: ^0.0.1 copied to clipboard

Financial APIs to connect users' bank accounts.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:dapi_connect/dapi_connect.dart';

void main() {
  runApp(MyApp());
}

class Button extends StatelessWidget {
  final void Function() onPressed;
  final String text;
  final bool visible;

  const Button(
      {@required this.onPressed, @required this.text, this.visible = true});

  @override
  Widget build(BuildContext context) {
    Widget button = ElevatedButton(onPressed: onPressed, child: Text(text));
    return Visibility(child: button, visible: visible);
  }
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  DapiClient client;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Dapi Connect'),
        ),
        body: ListView(
          padding: EdgeInsets.all(20),
            children: [
              Button(
                  onPressed: () => initClient(),
                  text: "Init Client",
                  visible: client == null),
              Button(
                  onPressed: () => presentConnect(),
                  text: "Present Connect",
                  visible: client != null),
              Button(
                  onPressed: () => presentAutoFlow(),
                  text: "Present AutoFlow",
                  visible: client != null),
              Button(
                  onPressed: () => print(DapiClient.instances),
                  text: "Client instances",
                  visible: client != null),
              Button(
                  onPressed: () => getConnections(),
                  text: "Get Connections",
                  visible: client != null),
              Button(
                  onPressed: () => getIdentity(),
                  text: "Get Identity",
                  visible: client != null),
              Button(
                  onPressed: () => getAccounts(),
                  text: "Get Accounts",
                  visible: client != null),
              Button(
                  onPressed: () => getBalance(),
                  text: "Get Balance",
                  visible: client != null),
              Button(
                  onPressed: () => getTransactions(),
                  text: "Get Transactions",
                  visible: client != null),
              Button(
                  onPressed: () => getBeneficiaries(),
                  text: "Get Beneficiaries",
                  visible: client != null),
              Button(
                  onPressed: () => createBeneficiary(),
                  text: "Create Transfer With Receiver ID (Already Added)",
                  visible: client != null),
              Button(
                  onPressed: () => createBeneficiary(),
                  text: "Create Transfer With Account Number",
                  visible: client != null),
              Button(
                  onPressed: () => createBeneficiary(),
                  text: "Create Transfer With IBAN",
                  visible: client != null),
              Button(
                  onPressed: () => createBeneficiary(),
                  text: "Create Beneficiaries",
                  visible: client != null),
              Button(
                  onPressed: () => getAccountsMetadata(),
                  text: "Get Account Metadata",
                  visible: client != null),
              Button(
                  onPressed: () => client.auth.delinkUser(),
                  text: "Delink User",
                  visible: client != null),
            ],
          ),
      ),
    );
  }

  void initClient() {
    DapiConfigurations configurations = DapiConfigurations(
        '8900eff4837592670c08558c7a6467337b5155145856d693f1e8275455889f7f',
        'http://10.0.2.2:4561',
        ['AE'],
        'Ennabah');
    configurations.environment = DapiEnvironment.production;
    setState(() {
      client = DapiClient(configurations);
    });
  }

  void presentConnect() {
    client.connect.present();
  }

  void presentAutoFlow() {
    client.autoFlow.present();
  }

  void getIdentity() async {
    // ignore: unused_local_variable
    DapiIdentity identity = await client.data.getIdentity();
    print(identity);
  }

  void getAccounts() async {
    // ignore: unused_local_variable
    List<DapiAccount> accounts = await client.data.getAccounts();
    print(accounts);
  }

  void getBalance() async {
    List<DapiConnection> connections = await client.connect.getConnections();
    // ignore: unused_local_variable
    DapiBalance balance =
        await client.data.getBalance(accountID: connections[0].accounts[0].id);
    print(balance);
  }

  void getConnections() async {
    List<DapiConnection> connections = await client.connect.getConnections();
    print(connections);
    client.userID = connections.first.userID;
    print(client.getUserID());
  }

  void getTransactions() async {
    List<DapiConnection> connections = await client.connect.getConnections();
    DateTime from = DateTime(2019, 5, 28);
    DateTime to = DateTime.now();
    // ignore: unused_local_variable
    List<DapiTransaction> transactions = await client.data.getTransactions(
        accountID: connections[0].accounts[0].id, fromDate: from, toDate: to);
    print(transactions);
  }

  void getBeneficiaries() async {
    // ignore: unused_local_variable
    List<DapiBeneficiary> beneficiaries =
        await client.payment.getBeneficiaries();
    print(beneficiaries);
  }

  void createBeneficiary() async {
    DapiBeneficiaryInfo beneficiaryInfo = DapiBeneficiaryInfo(
      linesAddress: DapiLineAddress(
          line1: "baniyas road", line2: "dubai", line3: "united arab emirates"),
      accountNumber: "0959040184901",
      name: "Helal Tariq",
      bankName: "Emirates NBD Bank PJSC",
      swiftCode: "EBILAEAD",
      iban: "AE140260000959040184901",
      phoneNumber: "0585859206",
      country: "UNITED ARAB EMIRATES",
      branchAddress: "Baniyas Road Deira PO Box 777 Dubai UAE",
      branchName: "Emirates NBD Bank PJSC",
    );
    DapiResult result = await client.payment
        .createBeneficiary(beneficiaryInfo: beneficiaryInfo);
    print(result);
  }

  void createTransferWithReceiverID() async {
    List<DapiConnection> connections = await client.connect.getConnections();
    List<DapiBeneficiary> beneficiaries =
        await client.payment.getBeneficiaries();
    DapiResult result = await client.payment.createTransferWithReceiverID(
        beneficiaries[0].id,
        senderID: connections[0].accounts[0].id,
        amount: 10);
    print(result);
  }

  void createTransferWithAccountNumber() async {
    List<DapiConnection> connections = await client.connect.getConnections();
    DapiResult result = await client.payment.createTransferWithAccountNumber(
        'recipient account number',
        senderID: connections[0].accounts[0].id,
        amount: 10,
        name: 'recipient name');
    print(result);
  }

  void createTransferWithIBAN() async {
    List<DapiConnection> connections = await client.connect.getConnections();
    DapiResult result = await client.payment.createTransferWithIBAN('IBAN',
        senderID: connections[0].accounts[0].id,
        amount: 10,
        name: 'recipient name');
    print(result);
  }

  void getAccountsMetadata() async {
    DapiMetadata metadata = await client.metadata.getAccountMetadata();
    print(metadata);
  }
}
0
likes
30
pub points
0%
popularity

Publisher

verified publisherdapi.com

Financial APIs to connect users' bank accounts.

Homepage

License

MIT (LICENSE)

Dependencies

flutter, intl

More

Packages that depend on dapi_connect