PHPackages                             jdavidbakr/laravel-profitstars - 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. [Payment Processing](/categories/payments)
4. /
5. jdavidbakr/laravel-profitstars

ActiveLibrary[Payment Processing](/categories/payments)

jdavidbakr/laravel-profitstars
==============================

A service that processes ACH transactions throgh Jack Henry's ProfitStars API

1.5(5y ago)68921MITPHPPHP &gt;=7.3.0CI failing

Since Nov 4Pushed 5y ago1 watchersCompare

[ Source](https://github.com/jdavidbakr/laravel-profitstars)[ Packagist](https://packagist.org/packages/jdavidbakr/laravel-profitstars)[ Docs](https://github.com/jdavidbakr/ProfitStars)[ RSS](/packages/jdavidbakr-laravel-profitstars/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (4)Versions (14)Used By (0)

laravel-profitstars
===================

[](#laravel-profitstars)

Jack Henry ProfitStars provides an API for handling ACH transactions. This package is a Laravel/Lumen wrapper to access these transactions.

The package is currently not exhaustive in terms of what is available from the API; I have only implemented parts of the API that are needed for my use. That said, expanding this package should be fairly trivial and if you should need additional pieces please feel free to modify and submit a pull request.

Install
-------

[](#install)

Via Composer

```
$ composer require jdavidbakr/laravel-profitstars
```

After installing via Composer, add the service provider:

```
jdavidbakr\ProfitStars\ProfitStarsServiceProvider::class
```

\###Laravel Configuration

Publish the config file:

```
php artisan vendor:publish
```

This will place a file in the config directory that will manage your connection credentials.

\###Lumen Configuration

Add the following to your .env file:

```
PROFIT_STARS_STORE_ID=YOUR STORE ID
PROFIT_STARS_STORE_KEY=YOUR STORE KEY
PROFIT_STARS_ENTITY_ID=YOUR ENTITY ID
PROFIT_STARS_LOCATION_ID=YOUR LOCATION ID

```

Usage - Testing
---------------

[](#usage---testing)

```
$proc = new \jdavidbakr\ProfitStars\ProcessTransaction;

// Test connection
if($proc->TestConnection()) {
	// Success
}

// Test credentials
if($proc->TestCredentials()) {
	// Success
}
```

Usage - Processing Transactions
-------------------------------

[](#usage---processing-transactions)

```
$proc = new \jdavidbakr\ProfitStars\ProcessTransaction;
$trans = new \jdavidbakr\ProfitStars\WSTransaction;

// AuthorizeTransaction
$trans->RoutingNumber = 111000025;
$trans->AccountNumber = 5637492437;
$trans->TotalAmount = 9.95;
$trans->TransactionNumber = 12334;
$trans->NameOnAccount = 'Joe Smith';
$trans->EffectiveDate = '2015-11-04';
if($proc->AuthorizeTransaction($tras)) {
	// ReferenceNumber in $proc->ReferenceNumber
} else {
	// Error message in $proc->ResponseMessage
}

// CaptureTransaction
$proc->ReferenceNumber = 'reference number';
if($proc->CaptureTransaction(9.95)) {
	// Success
} else {
	// Error message in $proc->ResponseMessage
}

// VoidTransaction
$proc->ReferenceNumber = 'reference number';
if($proc->VoidTransaction()) {
	// Success;
} else {
	// Error message in $proc->ResponseMessage
}

// RefundTransaction
$proc->ReferenceNumber = 'reference number';
if($proc->RefundTransaction()) {
	// Success, refund info in $proc->ResponseMessage
} else {
	// Error message in $proc->ResponseMessage
}
```

Usage - Recurring Payments
--------------------------

[](#usage---recurring-payments)

```
$proc = new \jdavidbakr\ProfitStars\ProcessTransaction;
$recur = new \jdavidbakr\ProfitStars\WSRecurr;
$cust = new \jdavidbakr\ProfitStars\WSCustomer;
$account = new \jdavidbakr\ProfitStars\WSAccount;

// RegisterCustomer
$cust->IsCompany = false;
$cust->CustomerNumber = 12345;
$cust->FirstName = 'Alex';
$cust->LastName = 'Ramirez';
$cust->Email = 'test@example.com';
$cust->Address1 = '1234 N Sunny Ln';
$cust->City = 'Tulsa';
$cust->StateRegion = 'OK';
$cust->PostalCode = '12345';
if($proc->RegisterCustomer($cust)) {
	// Success;
} else {
	// Error message in $proc->ResponseMessage
}

// RegisterAccount
$account->CustomerNumber = 12345; // Should match the RegisterCustomer value
$account->NameOnAccount = 'Joe Smith';
$account->RoutingNumber = 111000025;
$account->AccountNumber = 5637492437;
$account->AccountReferenceID = 67890; // This must be unique and will be used to setup the recurring payment
if($proc->RegisterAccount($account)) {
	// Success
} else {
	// Error message in $proc->ResponseMessage
}

// SetupRecurringPayment
$recur->CustomerNumber = 12345; // What you used in RegisterCustomer
$recur->AccountReferenceID = 67890; // What you used in RegisterAccount
$recur->Amount = 1.23; // The amount that will be charged each time
$recur->InvoiceNumber = 09876; // Optional
$recur->Frequency = 'Once_a_Month'; // Once_a_Month, Twice_a_Month, Once_a_Week, Every_2_Weeks, Once_a_Quarter, Twice_a_Year, Once_a_Year
$recur->PaymentDay = 1; // See notes below
$recur->NumPayments = 10; // Valid values are 1 - 100, or 999 for indefinite
$recur->PaymentsToDate = 0; // Should be zero
$recur->NextPaymentDate = '2015-11-04'; // Must not be before tomorrow
$recur->RecurringReferenceID = 12345; // Must set a value here like you did in the customer and account calls
if($proc->SetupRecurringPayment($recur)) {
	// Success
} else {
	// Error message is $proc->ResponseMessage
}
```

### Recurring Notes

[](#recurring-notes)

For recurring, a Customer Number and Account Reference ID is required.

The Frequency and the PaymentDay define the schedule of the recurring payment. Payment Day is defined as follows:

- Once\_a\_Month: 1 - 31, or 32 for the last day of the month
- Once\_a\_Quarter: Same as above
- Twice\_a\_year: Same as above
- Once\_a\_Year: Same as above
- Twice\_a\_Month: 1 = 1st and 15th, 2 = 15th and last
- Once\_a\_Week: 0 - Sun, 1 = Mon, ... 5 = Fri, 6 = Sat
- Every\_2\_Weeks: same as Once\_a\_Week

Usage - Transaction Reporting
-----------------------------

[](#usage---transaction-reporting)

```
$reporter = new \jdavidbakr\ProfitStars\TransactionReporting;

// Retrieve a collection of \jdavidbakr\ProfitStars\CreditAndDebitReportsResponse
$start_date = Carbon::now()->subDays(90); // Max 90 days from start to end
$end_date = Carbon::now();
$batches = $reporter->CreditAndDebitReports($start_date, $end_date);

// Retrieve a collection of \jdavidbakr\ProfitStars\WSSettlementBatch objects for a batch
$batch = $batches->first();
$transactions = $reporter->CreditsAndDebitsTransactionDetailReport($batch->batchID);
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [J David Baker](https://github.com/jdavidbakr)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 85.7% 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 ~147 days

Recently: every ~346 days

Total

13

Last Release

2129d ago

PHP version history (2 changes)1.0.0PHP &gt;=5.3.0

1.5PHP &gt;=7.3.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/25177?v=4)[J David Baker](/maintainers/jdavidbakr)[@jdavidbakr](https://github.com/jdavidbakr)

---

Top Contributors

[![jdavidbakr](https://avatars.githubusercontent.com/u/25177?v=4)](https://github.com/jdavidbakr "jdavidbakr (12 commits)")[![incraigulous](https://avatars.githubusercontent.com/u/5910297?v=4)](https://github.com/incraigulous "incraigulous (2 commits)")

---

Tags

achProfitStars

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jdavidbakr-laravel-profitstars/health.svg)

```
[![Health](https://phpackages.com/badges/jdavidbakr-laravel-profitstars/health.svg)](https://phpackages.com/packages/jdavidbakr-laravel-profitstars)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.1k](/packages/craftcms-cms)[illuminate/http

The Illuminate Http package.

11937.9M7.0k](/packages/illuminate-http)[spatie/laravel-export

Create a static site bundle from a Laravel app

674146.0k6](/packages/spatie-laravel-export)[sebdesign/laravel-viva-payments

A Laravel package for integrating the Viva Payments gateway

4851.0k](/packages/sebdesign-laravel-viva-payments)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5022.0k](/packages/simplestats-io-laravel-client)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1235.9k20](/packages/fleetbase-core-api)

PHPackages © 2026

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