cboxdk/laravel-nexus

Cbox Nexus — the US economic-nexus engine for Laravel: accumulate a seller's sales per state, detect when a post-Wayfair threshold is crossed, and report where registration is required.

Maintainers

Package info

github.com/cboxdk/laravel-nexus

pkg:composer/cboxdk/laravel-nexus

Transparency log

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.1 2026-07-22 21:57 UTC

This package is auto-updated.

Last update: 2026-07-22 22:00:24 UTC


README

The US economic-nexus engine for Laravel — accumulate a seller's sales per state, detect when a post-Wayfair threshold is crossed, and report where registration is required.

Cbox Nexus is UI-free engine primitives, not a finished application. It owns the decision logic (below / approaching / triggered / registered per state); the data — thresholds, the seller's cumulative activity, physical presence, and existing registrations — is sourced behind contracts. Thresholds ship from the cited us-tax-data dataset (with each state's measurement period and sales basis); you bind your own billing data for the rest.

It never accumulates sales itself and never infers nexus from a single invoice — economic nexus turns on the seller's cumulative totals in a state over a measuring period, which the host supplies.

Install

composer require cboxdk/laravel-nexus

Quick use

use Cbox\Nexus\Contracts\NexusEngine;
use Cbox\Geo\ValueObjects\SubdivisionCode;

$report = app(NexusEngine::class)->report([
    new SubdivisionCode('US-CA'),
    new SubdivisionCode('US-TX'),
]);

foreach ($report->triggered() as $evaluation) {
    // $evaluation->state, $evaluation->reason, $evaluation->threshold->describe()
}

Bind a SalesLedger (from your invoices), and optionally PhysicalNexus and NexusRegistrations, so the engine has the seller's side of the equation.

Documentation

See /docs: the quickstart, the decision model, and the data seams you bind.

License

MIT.