PHPackages                             3neti/contact - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. 3neti/contact

ActiveLibrary[Database &amp; ORM](/categories/database)

3neti/contact
=============

A package to enable assigning contacts to Eloquent Models

v1.1.0(2mo ago)063↓76.7%1proprietaryPHP

Since Mar 26Pushed 2mo agoCompare

[ Source](https://github.com/3neti/contact)[ Packagist](https://packagist.org/packages/3neti/contact)[ RSS](/packages/3neti-contact/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (3)Dependencies (14)Versions (4)Used By (1)

3neti/contact
=============

[](#3neticontact)

A Laravel package for managing **contacts as first-class domain entities**, with support for:

- normalized mobile numbers (via laravel-phone)
- schemaless attributes (via Spatie Schemaless Attributes)
- KYC workflows (via Hyperverge integration)
- bank account parsing and normalization
- media handling for identity and verification (via Spatie MediaLibrary)

This package is designed as a **core identity layer** within the x-change ecosystem, enabling reusable contact records across payments, vouchers, and onboarding flows.

---

✨ Core Concept
--------------

[](#-core-concept)

`Contact` represents a **person or entity** involved in financial or transactional workflows.

A contact can:

- hold mobile and country identity
- store flexible metadata (name, email, KYC data, etc.)
- manage bank account details
- participate in transactions (as sender/recipient)
- undergo KYC and face verification
- store media (IDs, selfies, verification attempts)

---

📦 Installation
--------------

[](#-installation)

```
composer require 3neti/contact
```

---

⚙️ Configuration
----------------

[](#️-configuration)

Publish config (optional):

```
php artisan vendor:publish --tag=config
```

---

🧱 Database Migrations
---------------------

[](#-database-migrations)

This package uses:

```
loadMigrationsFrom()
```

So migrations are **auto-loaded**.

Run:

```
php artisan migrate
```

---

⚠️ Migration Notes
------------------

[](#️-migration-notes)

This package owns its own schema:

- `contacts` table
- meta column (schemaless)
- idempotency support

Test-only tables such as `users` and `inputs` are not part of runtime schema.

---

🧠 Usage
-------

[](#-usage)

### Creating a Contact

[](#creating-a-contact)

```
use LBHurtado\Contact\Models\Contact;

$contact = Contact::create([
    'mobile' => '09171234567',
    'country' => 'PH',
]);
```

---

### Mobile Normalization

[](#mobile-normalization)

```
$contact->mobile;
```

Automatically normalized to proper dialing format.

---

### Bank Account Handling

[](#bank-account-handling)

```
$contact->bank_account = 'BPI:1234567890';

$contact->bank_code;
$contact->account_number;
```

Defaults to:

```
BANK_CODE:MOBILE

```

---

### Metadata (Schemaless)

[](#metadata-schemaless)

```
$contact->name = 'Juan Dela Cruz';
$contact->email = 'juan@example.com';

$contact->save();
```

Stored in the `meta` JSON column.

---

### KYC

[](#kyc)

```
$contact->kyc_status = 'approved';

$contact->isKycApproved();
$contact->needsKyc();
```

---

### Media Collections

[](#media-collections)

- kyc\_id\_cards
- kyc\_selfies
- face\_reference\_selfies
- face\_verification\_attempts
- face\_reference\_selfies\_archive

---

### Relationships

[](#relationships)

```
$contact->recipients();
```

Tracks transaction history and metadata.

---

### Webhook Integration

[](#webhook-integration)

```
Contact::fromWebhookSender($payload);
```

---

### Data Transformation

[](#data-transformation)

```
use LBHurtado\Contact\Data\ContactData;

ContactData::fromModel($contact);
```

---

🧱 Schema
--------

[](#-schema)

```
contacts
- id
- mobile
- country
- bank_account
- meta (json)
- timestamps

```

---

🧩 Traits
--------

[](#-traits)

- HasMobile
- HasMeta
- HasAdditionalAttributes
- HasBankAccount
- HasFaceVerification

---

🧭 Architecture Role
-------------------

[](#-architecture-role)

In the x-change ecosystem:

- contact = identity
- cash = value
- voucher = instruction
- wallet = ledger
- x-change = orchestration

---

🧪 Testing
---------

[](#-testing)

- Testbench
- SQLite in-memory
- test-only migrations

---

🧾 License
---------

[](#-license)

Proprietary

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance85

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Total

3

Last Release

77d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/586e1ed70140038e6348728222adbcf68bfc4455b1f94a4f8bcbe57917a63d57?d=identicon)[3neti](/maintainers/3neti)

---

Top Contributors

[![3neti](https://avatars.githubusercontent.com/u/89447696?v=4)](https://github.com/3neti "3neti (3 commits)")

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/3neti-contact/health.svg)

```
[![Health](https://phpackages.com/badges/3neti-contact/health.svg)](https://phpackages.com/packages/3neti-contact)
```

###  Alternatives

[relaticle/custom-fields

User Defined Custom Fields for Laravel Filament

16445.8k](/packages/relaticle-custom-fields)[filament/spatie-laravel-media-library-plugin

Filament support for `spatie/laravel-medialibrary`.

1795.6M179](/packages/filament-spatie-laravel-media-library-plugin)[dragon-code/laravel-deploy-operations

Performing any actions during the deployment process

244207.7k2](/packages/dragon-code-laravel-deploy-operations)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[danestves/laravel-polar

A package to easily integrate your Laravel application with Polar.sh

8118.0k](/packages/danestves-laravel-polar)[helgesverre/chromadb

PHP Client for the Chromadb Rest API

321.1k](/packages/helgesverre-chromadb)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
