akira / laravel-sisp
this is a laravel package to handle SISP payment
Fund package maintenance!
Requires
- php: ^8.4 || ^8.5
- akira/laravel-pdf-invoices: ^1.1
- illuminate/contracts: ^12.0 || ^13.0
- pinkary-project/type-guard: ^0.1.0
- spatie/laravel-package-tools: ^1.16
- stevebauman/location: ^7.6
Requires (Dev)
- akira/laravel-debugger: ^1.0
- driftingly/rector-laravel: ^2.1
- inertiajs/inertia-laravel: ^3.1
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1
- orchestra/testbench: ^10.0.0 || ^11.0.0
- peckphp/peck: ^0.1.3
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- pestphp/pest-plugin-type-coverage: ^4.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^2.0.0
- phpstan/phpstan-phpunit: ^2.0.0
- rector/rector: ^2.0
- 1.x-dev
- v0.7.0
- v0.6.3
- v0.6.2
- 0.6.1
- 0.6.0
- 0.5.0
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-issue-170-atomic-rate-limit-hits
- dev-codex/issue-169-signed-retry-payment
- dev-issue-171-configurable-route-middleware
- dev-codex/issue-167-validate-payment-totals
- dev-codex/issue-166-full-amount-refunds
- dev-codex/issue-47-sisp-status-api-docs
- dev-codex/issue-47-transaction-status-api
- dev-codex/issue-78-decouple-package-views
- dev-codex/issue-80-cache-postautcode-hash
- dev-codex/issue-101-aggregate-invoice-items
- dev-codex/fix-release-git-cliff-token
- dev-milestone/v0.7.0
- dev-codex/ci-aspell-timeout
- dev-codex/issue-123-factory-guesser-isolation
- dev-codex/issue-124-query-assertion-neutral
- dev-codex/issue-122-inertia-fallback-coverage
- dev-codex/issue-120-callback-test-description
- dev-codex/issue-119-replace-placeholder-test
- dev-codex/issue-121-install-command-isolation
- dev-codex/issue-118-payment-error-payload
- dev-codex/issue-117-package-license
- dev-codex/issue-116-invoice-response-props
- dev-codex/issue-115-exception-default-codes
- dev-codex/issue-114-array-encryption-assertions
- dev-codex/issue-112-identifier-uniqueness
- dev-codex/issue-111-without-fingerprint-key
- dev-codex/issue-110-http-state-assertions
- dev-codex/issue-108-npm-entrypoint
- dev-codex/issue-107-publish-artifacts
- dev-codex/issue-104-fingerprint-known-output
- dev-codex/issue-106-npm-version-stale
- dev-codex/issue-103-fingerprint-oracle
- dev-codex/issue-105-invoice-items-observed
- dev-codex/release-setup
- dev-codex/issue-102-dev-autoload-hook
- dev-codex/issue-113-rate-limit-threshold
- dev-codex/issue-109-retry-3ds-postal-code
- dev-codex/issue-128-refund-email-fallback
- dev-codex/issue-127-reconcile-callback-details
- dev-codex/issue-126-signed-cancellation
- dev-codex/issue-125-disable-sandbox-production
- dev-72-payload-encryption-cast
- dev-issue-75-fix-account-env
This package is auto-updated.
Last update: 2026-05-24 01:39:51 UTC
README
Welcome to Laravel SISP - a robust Laravel 12+ package for integrating SISP Cabo Verde payment gateway with comprehensive transaction management, invoice generation, and fraud detection.
Quick Start
composer require akira/laravel-sisp php artisan laravel-sisp:install
Configure your .env:
SISP_URL=https://mc.vinti4net.cv/Client_VbV_v2/biz_vbv_clientdata.jsp SISP_POS_ID=your_pos_id SISP_POS_AUT_CODE=your_authorization_code SISP_MERCHANT_ID=your_merchant_id
Documentation Index
Getting Started
- Installation - Install and configure the package
- Configuration - Configure SISP credentials and options
- Quick Start Guide - Create your first payment in 5 minutes
Core Concepts
- Payment Flow - Complete payment process overview
- Transaction Management - Create and manage transactions
- Invoice Generation - Auto-generate PDF invoices after payments
Features & Security
- Security - Rate limiting, metadata collection, fraud detection
Learning & Reference
- Examples - Real-world integration examples and code samples
- API Reference - Complete API methods and classes
- FAQ - Frequently asked questions
- Troubleshooting - Common issues and solutions
Key Features
- Multi-merchant/SaaS support with runtime credential injection
- Payment form rendering (Blade or Inertia.js)
- Automatic PDF invoice generation
- Multi-item transaction support
- Comprehensive rate limiting
- Security metadata collection
- Complete transaction audit trail
- Webhook signature verification
- Type-safe DTOs and builders
System Requirements
- PHP 8.4 or higher
- Laravel 12 or higher
- PostgreSQL or MySQL database
- Node.js for frontend assets (if using Inertia)
What's Included
After installation, you get:
- Service provider and service container bindings
- Database migrations for transactions, invoices, and security tables
- Payment routes and webhook handling
- Blade views or Inertia.js components for payment forms
- Invoice generation via Laravel PDF Invoices package
- Rate limiting middleware
- Security metadata collection
Package Structure
laravel-sisp/
├── src/
│ ├── Actions/ # Business logic
│ ├── Controllers/ # HTTP controllers
│ ├── DTO/ # Data transfer objects
│ ├── Models/ # Eloquent models
│ ├── Facades/ # Facade classes
│ ├── Middleware/ # HTTP middleware
│ └── Providers/ # Service providers
├── database/
│ ├── migrations/ # Database migrations
│ └── factories/ # Model factories
├── resources/
│ ├── views/ # Blade templates
│ └── components/ # Vue/React components
├── config/
│ └── sisp.php # Package configuration
└── docs/ # This documentation
Next Steps
- Start with Installation
- Follow Configuration for your setup
- Try the Quick Start Guide
- Read Payment Flow to understand the process
Support
For issues or questions:
- Check Troubleshooting
- Review Examples
- Read API Reference
- Visit FAQ for common questions
License
MIT License. See LICENSE file for details.
Testing & Coverage
-
Run full test suite with code coverage at exactly 100%:
vendor/bin/pest --parallel --coverage --compact --exactly=100
-
Enforce 100% type coverage:
vendor/bin/pest --type-coverage --min=100
Driving sisp:install in tests (no TTY, no mocks)
In tests, interactive prompts for sisp:install are controlled by config flags under sisp.tests.*. These flags are only read when app()->runningUnitTests() is true. In normal usage the command remains fully interactive.
Available toggles (bool):
sisp.tests.publish_config/sisp.tests.force_configsisp.tests.publish_migrations/sisp.tests.force_migrationssisp.tests.publish_inertia/sisp.tests.force_inertiasisp.tests.publish_blade/sisp.tests.force_bladesisp.tests.run_migrations– whether to run migrations stepsisp.tests.fake_migrate– short-circuit actualmigratecall in tests (defaults to true)sisp.tests.give_star– whether to show the “give a star” note
Example (Pest test):
config()->set('sisp.tests.publish_config', true); config()->set('sisp.tests.publish_migrations', true); config()->set('sisp.tests.run_migrations', true); config()->set('sisp.tests.fake_migrate', true); // don’t run real migrations again config()->set('sisp.tests.publish_inertia', false); // avoid vendor:publish in CI config()->set('sisp.tests.publish_blade', false);
This keeps tests stable and fast in parallel CI runs while allowing full branch coverage without using mocks.