Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Converge Api Laravel Package

treestoneit/laravel-converge-api

A Laravel wrapper for the Elavon Converge payment API that simplifies card payments, authorizations, captures, refunds, voids, and transaction reporting. Configure credentials and start processing payments from your Laravel application with a clean, expressive interface.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Package: treeStoneIT/laravel-converge-api — a Laravel wrapper for the Elavon Converge payment gateway. This assessment is based solely on the v2.2.2 release notes (no prior assessment, no source review, no composer metadata supplied). Treat all findings below as provisional pending a code and dependency audit.

What v2.2.2 actually changes: One item — "Compatible with Laravel 12" (PR #4, first-time contributor @digitalmcgrath). No features, no deprecations, no security fixes, no documented breaking changes. Semver patch bump (2.2.1 → 2.2.2) is consistent with that scope. In practice this is almost certainly a widened illuminate/* / orchestra/testbench constraint in composer.json, not a behavioral change.

Architecture fit: Conventional Laravel package shape (service provider + config publish + facade) wrapping a legacy XML-over-HTTPS gateway. That fits our stack cleanly: no new infrastructure, no daemon, no schema. The real architectural consideration is not the package but the integration pattern — if we post raw card data through our application to Converge, we remain in PCI DSS scope (SAQ D). Converge supports hosted pages and tokenization; choosing one of those materially reduces scope and should be decided before integration, not after.

Integration feasibility: Low effort. composer require, publish config, supply merchant ID / user ID / PIN / endpoint (demo vs. production), inject the client. A competent Laravel developer should have auth/capture/refund/void working against Converge's demo account in a few days. Main unknowns are 3D Secure support, partial refunds, settlement/batch reporting, and whether the package exposes Converge response codes in a structured way or collapses them into generic exceptions.

Technical risk: Moderate-low on the code, moderate on the supply chain. Positive: Laravel 12 support means the framework upgrade treadmill doesn't block us. Negative: the changelog implies a thin test matrix across supported Laravel versions, the maintainer footprint is very small (one organization plus one new contributor), and there is no evidence of a commercial support arrangement. Payment-path dependencies with a single-maintainer bus factor warrant a fork-and-patch contingency and a pinned lockfile.

Key questions for the maintainer / our audit:

  1. Does v2.2.2 change only composer constraints, or any runtime code? Please confirm the diff is constraint-only.
  2. What is the CI test matrix — which Laravel/PHP version pairs are actually exercised?
  3. Does the package support hosted payment pages, tokenization, and 3D Secure 2, and if not, are they on the roadmap?
  4. How are Converge response codes and decline reasons surfaced — typed exceptions, result objects, or raw XML?
  5. Are refunds, voids, partial captures, and batch/settlement reporting covered?
  6. What is the license, and is there any commit history of security-relevant fixes?
  7. Issue-response expectations and any known upstream Converge API deprecations?

Integration Approach

Stack fit: Assumes Laravel 12 / PHP 8.2+. v2.2.2 is additive — if we are on Laravel 10 or 11, there is no urgency to take it, but there is also no reason to avoid it. If we are planning a Laravel 12 upgrade, this release removes the package as a blocker and should be sequenced into that upgrade rather than treated as its own project.

Migration path: v2.2.1 → v2.2.2 is a patch. Run composer update treeStoneIT/laravel-converge-api --with-dependencies, then inspect the lockfile diff specifically for transitive bumps to Guzzle and illuminate/support — a constraint widening can silently pull newer HTTP client versions. If greenfield, require ^2.2.2 directly.

Compatibility checks before merge:

  • Config publish tag and facade alias unchanged (these break silently at boot if renamed).
  • Exception classes our handlers catch are unchanged.
  • Package's Guzzle constraint is compatible with the version our other integrations pin.
  • Demo vs. production endpoint selection is explicit config, not an environment inference.

Sequencing:

  1. Audit the v2.2.1 → v2.2.2 diff (constraint-only confirmation) and record it in the dependency register.
  2. Bump and run the full test suite in a branch; pin the lockfile.
  3. Decide the PCI-scope-reducing pattern (hosted page vs. tokenization) with security/compliance before writing integration code.
  4. Implement and certify against Converge's demo account: sale, auth-only, capture, partial refund, full refund, void, decline, timeout.
  5. Canary in staging with production-like credentials rotated via our secrets manager.
  6. Production rollout behind a feature flag with the legacy/manual path retained as a kill switch.

Operational Impact

Maintenance: Low ceremony, standard composer lifecycle. The material maintenance risk is governance, not code — one organization and a very small contributor base. Mitigations: pin exact versions, mirror the repo internally, and keep a documented fork procedure. Budget a quarterly review to check for upstream activity and Converge API changes.

Support: GitHub issues are the only channel; there is no SLA. For a payment path this is insufficient on its own, so establish two things up front: a direct Elavon/Converge merchant support relationship for gateway-side incidents, and a manual fallback (Converge virtual terminal) documented in the runbook so finance can process payments if the integration is down.

Scaling: The package is a thin client, so throughput is bounded by Converge's API rate limits and our HTTP configuration, not by the library. Set explicit connect/read timeouts, queue non-interactive operations (refunds, reporting), and avoid connection-pool exhaustion under burst traffic. Do not apply blanket retries to non-idempotent sale calls — that is the fastest route to duplicate charges.

Failure modes to instrument for:

  • Timeout-after-success: gateway applied the charge but the response was lost. Mitigate with an idempotency/order-reference scheme and a daily reconciliation job against Converge's transaction report. This is the highest-severity failure mode and should be designed, not discovered.
  • Endpoint misconfiguration: test credentials pointed at production or vice versa. Fail loudly at boot if the endpoint and credential set are inconsistent.
  • Credential rotation: PIN/merchant ID rotation breaks all payment flows; alert on authentication-class decline codes.
  • Malformed or unparsed XML responses: surface as generic exceptions and are hard to triage; ensure raw payloads are logged (redacted) for support.
  • Silent declines: monitor authorization rate as a business metric, not just an error rate — gateway rule changes appear here first.

Ramp-up: Low technical ramp — a mid-level Laravel developer is productive within days. The real onboarding cost is domain: PCI scope decisions, reconciliation logic, 3DS/SCA requirements, and chargeback handling need someone with payments experience. Plan for one engineer plus a payments/compliance partner, and produce a runbook covering credential rotation, reconciliation, incident escalation to Elavon, and the manual fallback path.

Verdict on v2.2.2: A favorable, low-risk release — it removes the Laravel 12 blocker and signals continued maintenance. It does not, on its own, resolve the open questions above (3DS, tokenization, error surfacing, test matrix). Adopt it, but gate any production payment integration on the code audit and demo-account certification described above.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource