3neti/money-issuer

Electronic Money Issuer

Maintainers

Package info

github.com/3neti/money-issuer

pkg:composer/3neti/money-issuer

Transparency log

Statistics

Installs: 364

Dependents: 3

Suggesters: 0

Stars: 0

Open Issues: 0

v1.2.1 2026-08-07 11:33 UTC

This package is auto-updated.

Last update: 2026-08-07 11:34:09 UTC


README

Lightweight package providing Philippine bank and EMI directory.

Purpose

Provides bank/EMI data without payment operation dependencies.
Use this when you need to:

  • List available banks and EMIs
  • Check settlement rail support
  • Build bank directory applications
  • Query EMI restrictions

Usage

use LBHurtado\MoneyIssuer\Support\BankRegistry;

$registry = new BankRegistry();

// Get all banks
$banks = $registry->all(); // array of 146 banks

// Find specific bank
$gcash = $registry->find('GXCHPHM2XXX');
// ['full_name' => 'G-Xchange / GCash', ...]

// Get EMIs only
$emis = $registry->getEMIs(); // Collection

// Check rail support (respects EMI restrictions)
$rails = $registry->getAllowedRails('GXCHPHM2XXX');
// ['INSTAPAY'] - GCash only supports INSTAPAY

// Check if bank is EMI
$isEmi = $registry->isEMI('GXCHPHM2XXX'); // true
$isEmi = $registry->isEMI('BOPIPHMM'); // false (BPI)

// Get human-readable name
$name = $registry->getBankName('GXCHPHM2XXX'); // 'GCash'

Installation

composer require 3neti/money-issuer
php artisan vendor:publish --tag=banks-registry

Configuration

Bank Restrictions

EMI restrictions are defined in config/bank-restrictions.php:

return [
    'emi_restrictions' => [
        'GXCHPHM2XXX' => [
            'allowed_rails' => ['INSTAPAY'],
            'name' => 'GCash',
            'reason' => 'EMI - Real-time transfers only'
        ],
        // ... more EMIs
    ],
];

Publish config:

php artisan vendor:publish --tag=config --provider="LBHurtado\MoneyIssuer\MoneyIssuerServiceProvider"

Architecture

Separation of Concerns:

  • money-issuer = Bank/EMI directory (data + registry)
  • payment-gateway = Payment operations (depends on money-issuer)

Benefits:

  • Lightweight: Use in apps that need bank data without payment logic
  • Reusable: Build bank directories, EMI comparison tools, routing services
  • Dependency direction: Lower-level package holds foundational data

Updating Bank Data

See docs/BANKS_JSON_UPDATE.md for update procedures.

Package Dependencies

This package depends on:

  • 3neti/emi-core for the shared bank-registry contract
  • Laravel support components

It supports emi-core 1.x and 2.x. The bank directory does not call payment providers or move funds.

Packages that depend on this include:

  • 3neti/emi-netbank

Testing

composer install
composer test

The supported compatibility matrix is PHP 8.3 and 8.4 on Laravel 12 and 13.

License

Proprietary. Deployment requires authorized access to the private package repository.