Code Monkey home page Code Monkey logo

cbe-verifier's Introduction

CBE Verifier

cbe-verifier is a TypeScript library designed to verify transactions from the Commercial Bank of Ethiopia (CBE). This library provides functions to verify transaction details and detect transaction IDs from screenshots.

Features

  • Transaction Verification: Verify CBE transactions by providing a transaction ID, account number, and verification URL.
  • Transaction ID Detection: Detect transaction IDs from screenshots, supporting both QR code scanning and text detection.

Installation

Install the library using npm:

npm install @jvhaile/cbe-verifier

Usage

Transaction Verification

The verify function verifies CBE transactions.

Function Signature

export async function verify(request: {
    transactionId: string,
    accountNumberOfSenderOrReceiver: string,
    cbeVerificationUrl: string,
}): Promise<Either<VerifyFailure, VerifySuccess>>

Return Types

export type VerifyFailure =
    | { type: 'INVALID_TRANSACTION_ID' }
    | { type: 'INVALID_ACCOUNT_NO' }
    | { type: 'TRANSACTION_NOT_FOUND' }
    | { type: 'API_REQUEST_FAILED', message: string }

export type VerifySuccess = {
    fullText: string,
    amount?: number,
    payer?: string,
    receiver?: string,
    reference?: string,
    payerAccount?: string,
    receiverAccount?: string,
    reason?: string,
    date?: string,
}

Example Usage

import { verify } from 'cbe-verifier';

const verificationResult = await verify({
    transactionId: '1234567890',
    accountNumberOfSenderOrReceiver: '0987654321',
    cbeVerificationUrl: 'https://cbe-verification-url.example.com'
});

if (verificationResult.isRight()) {
    console.log('Transaction verified:', verificationResult.value);
} else {
    console.error('Verification failed:', verificationResult.value);
}

Transaction ID Detection

The detectTransactionId function detects transaction IDs from screenshots.

Function Signature

export async function detectTransactionId(buffer: Buffer, params: {
    googleVisionAPIKey?: string,
}): Promise<DetectTransactionIdResult | null>

Return Type

export type DetectTransactionIdResult = {
    value: string,
    detectedFrom: 'QR_CODE' | 'TEXT_RECOGNITION',
    timeTaken: number,
}

Example Usage

import { detectTransactionId } from 'cbe-verifier';
import fs from 'fs';

const buffer = fs.readFileSync('path/to/screenshot.png');

const detectionResult = await detectTransactionId(buffer, {
    googleVisionAPIKey: 'YOUR_GOOGLE_VISION_API_KEY'
});

if (detectionResult) {
    console.log('Transaction ID detected:', detectionResult.value);
} else {
    console.error('Transaction ID detection failed');
}

Proxy Setup for External Use

Since the verification URL only works within Ethiopia, users outside Ethiopia can set up a proxy server within Ethiopia to use this library.

License

This project is licensed under the MIT License.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any bugs or enhancements.


cbe-verifier's People

Contributors

jayvhaile avatar

Stargazers

Eyob Yihalem avatar Selemondev  avatar Harison Fekadu avatar kaleab solomon avatar Theodore Negusu avatar  avatar Dawit Beyene avatar Yisak Abraham avatar Solomon getnet avatar Dagim G. Astatkie avatar Kaleab Gulilat avatar Tebarek Shemsu avatar Beamlak Aschalew avatar Natnael Fikadu avatar Dre avatar Kirubel Kibru Mesfin avatar Besufikad Micheal avatar Brook Mezgebu avatar  avatar Mikiyas Tibebu avatar

Watchers

 avatar

Forkers

yaltopia

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.