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 Sisp Laravel Package

akira/laravel-sisp

A Laravel package for integrating SISP into your applications. It provides configuration, service bindings, and convenient helpers for common SISP workflows, helping you connect and interact with SISP services with minimal boilerplate and clean, maintainable code.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Market entry into Cape Verde (and broader PALOP expansion): SISP is the interbank payments operator behind Vinti4 (card/POS/ATM) in Cape Verde. If a market-entry business case depends on accepting local cards in CVE, this package determines whether the payments epic is a 2-week adapter job or a 6-week ground-up gateway integration. v3.0.0 does not change that math; it changes what we get for it.
  • Refund and returns policy is now a product decision we can actually ship: v3.0.0 adds a real refund subsystem — validated refund payloads, an exact atomic encrypted refund ledger, idempotency keys so a retried request refunds once, and over-limit rejection in thousandths. Previously "refunds" was a fork-or-build line item. Now customer returns, goodwill credits, and partial reversals become a scoped feature rather than an unbounded risk. This should be reflected in launch scope for CV: refunds move from "phase 2, maybe" to "available, verify in sandbox."
  • Finance/ops reconciliation as a first-class requirement: the release introduces a transaction state machine with row locking, refusal to cancel failed or refunded transactions, status mapping from SISP's documented message-type table, and invoice state following transaction state. That is the difference between a demo checkout and something Finance can reconcile against a settlement report. It supports committing to a reconciliation workflow at launch instead of manually patching states in the database.
  • Security and PCI scope position: callbacks with invalid fingerprints are now rejected before anything is written, unauthenticated payloads are no longer persisted into attempt rows, the customer-facing result link is signed, PAN masking fails closed, encrypted attributes are redacted from change logs, and attacker-supplied error text no longer leaks into responses. This materially strengthens the "redirect/hosted-page flow, no card data on our servers, SAQ-A-ish" stance — and it converts several items previously listed as "ours to guarantee" into package-provided controls we still test but no longer have to build.
  • Payments roadmap sequencing: still forces an explicit decision on local rails vs. global PSP only. Teams defaulting to Stripe/Adyen still discover at launch that local card penetration and CVE settlement require a domestic acquirer. Cheapest way to test that assumption remains a time-boxed spike.
  • Build vs. buy vs. adopt: the three-way is now more favorable to (a). A package with refunds, idempotency, callback signature verification, rate limiting and a locking state machine is a substantially larger head start than the v2.2.0 equivalent. Option (b) — a thin in-house SISP client — is now more expensive by comparison, which is exactly the kind of information that should kill the "we'll just write it ourselves in a sprint" instinct.
  • Architecture decisions: still supports standardizing on a PaymentGateway port/adapter (create payment, redirect, callback verify, refund, reconcile) rather than letting a vendor SDK leak into domain code. v3.0.0's breaking rename of the refund operation and the new unpredictable merchant reference reinforce the point: the package's own surface is not stable, so our interface must be.
  • Data model and migration decision: v3 ships schema changes — a refunds table, a durable pruned_at column replacing a cache-based cursor, a resumable/idempotent refunds data copy, and widened transaction error columns. Any spike done on v2.2.0 must be treated as a spike on a different package; re-validate on v3.
  • Roadmap de-risking artifact: even if we don't ship it, a 1–2 week spike yields a cost estimate and a go/no-go on the CV launch date, feeding pricing, sales commitments and hiring.

When to Consider This Package

Consider it when:

  • We have a confirmed, revenue-backed requirement to accept SISP/Vinti4 payments — not a speculative "someday we might expand."
  • The stack is Laravel and the app's Laravel/PHP versions are inside the package's supported matrix (verify composer.json first — a 3.0.0 major is the moment to re-check minimum PHP/Laravel and DB driver assumptions, since locking and JSON/UUID handling now matter).
  • We are pre-PMF or low-volume in that market: an MVP checkout, a pilot merchant, a proof-of-concept for a partner.
  • We need a working reference for the SISP fingerprint/signature scheme, including the error fingerprint formula for refusals and cancellations, faster than the operator's documentation will yield it. v3.0.0 is a notably better reference than v2 here.
  • The product roadmap includes refunds, cancellations, or partial reversals within the first two quarters — v3 makes these adoptable rather than build-it-yourself.
  • The team is comfortable owning a vendored dependency: reading the source, patching it, and writing contract tests against the sandbox.

Look elsewhere (or budget to fork/build) when:

  • We need capabilities that are still absent. Confirm against source: tokenization and recurring billing, voids as distinct from cancels, multi-currency, split/marketplace settlement, partial-capture, true webhook delivery (this is still a redirect + callback design, not a webhook subscription model), and multi-acquirer routing. Absence is a fork, not a blocker.
  • Scale or revenue criticality is high. v3.0.0 is a strong maturity signal — the changelog reads like a deliberate production-hardening and security pass — but 16 stars, 0 dependents and a single-maintainer bus factor of one are unchanged. A package capable of correctness is not the same as a package with an operational guarantee. Adopt only as an accelerator we are prepared to take ownership of.
  • We are already integrated on v2.x. This is a breaking major across the merchant reference, refund naming, transaction cancellation semantics and invoice/refund coupling. Budget an explicit upgrade with data migration and re-testing, not a composer update. If we shipped 2.2.0 to production, do not upgrade mid-quarter without a rollback plan.
  • Predictable, human-readable merchant references are a business requirement. v3 deliberately makes the default reference unpredictable. If Finance, support or partners key off a reference they can read or construct, we must persist our own reference and map it — an integration decision, not a bug.
  • Procurement requires a support contract, SLA, security review or SOC2-style assurance. Unchanged: OSS with no commercial backer fails that gate — pair with an internal owner or a regional integrator.
  • We need multi-acquirer abstraction from day one. Then this is one adapter behind a payments orchestration layer, not the layer itself.
  • The stack isn't Laravel — only the design is reusable; build a small client from the operator's spec.

Minimum due diligence before adoption: read every line of the gateway client; confirm the fingerprint implementation (success, refusal/error, cancellation) matches the current SISP spec; run end-to-end in the SISP sandbox covering approvals, refusals, user cancellations, timeouts, and partial and retried refunds under the same idempotency key; verify the state machine can't be driven into an inconsistent state by an out-of-order or replayed callback; check rate-limiter and throttle configuration on the callback routes under real traffic; check logs and change logs for sensitive data leakage; confirm license (MIT — permissive, forkable, commercially safe); and confirm the tagged release is actually installed and pinned, since the changelog is long enough that "latest" is not a version.

How to Pitch It (Stakeholders)

To executives (one paragraph): Entering Cape Verde requires connecting to SISP, the domestic interbank payments network — global PSPs alone won't cover local card acceptance. This MIT-licensed open-source Laravel component implements that connection, and the new 3.0.0 release is a significant step up: it adds customer refunds with duplicate-safe processing, an auditable refund ledger, a locked transaction state machine Finance can reconcile against, and a batch of security hardening around callbacks, card-number masking and error messages. Practically, the payments piece of a CV launch stays a roughly one-to-two-week integration, but now carries far less hidden build cost for refunds and reconciliation. The trade-off is unchanged maturity risk: minimal adoption, a single maintainer, and a major version that breaks its own API — so treat it as a head start we take ownership of, not a vendor we depend on. Recommendation: approve a time-boxed spike on 3.0.0 against the SISP sandbox, with the go/no-go for the CV launch date gated on that result rather than assumed.

To engineering (the ask): Evaluate 3.0.0 specifically, and if it holds up, vendor and pin it. Concretely: (1) time-box a spike end-to-end in sandbox including declines, timeouts, customer cancellations, and refunds — including a retried refund with the same idempotency key and an over-limit amount; (2) wrap it behind our own PaymentGateway interface, including refund and reconcile, so the package stays an implementation detail; (3) own the operational edges it doesn't: idempotency on our side of the redirect, outbound webhook/notification semantics, and reconciliation against settlement files; (4) verify the rate limiting and cancellation throttles are correctly configured per environment and per IP; (5) confirm PAN masking fails closed under our real response shapes; (6) fork and pin the exact tagged version at first production use and assign a named owner, plus a written upgrade policy — 3.0.0 is a breaking release and we should assume 4.0.0 will be too.

Decision framing: the opportunity is real, the integration cost is low, and the package is now meaningfully more trustworthy than it was — refunds, idempotency and callback authentication are no longer our build cost. The dependency risk is unchanged and the mitigation is still cheap. Buy the acceleration, budget the ownership, plan for a breaking upgrade every few releases, and don't let a single-maintainer OSS component quietly become a production single point of failure.

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.
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus