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 Sepay

Laravel Sepay Laravel Package

sepayvn/laravel-sepay

SePay payment gateway integration for Laravel. Accept bank transfers and VietQR payments, verify webhooks, query transactions, and manage payment flows through a clean, configurable API designed for Vietnamese banking and e-commerce applications.

View on GitHub
Deep Wiki
Context7

Laravel Package cho SePay - Giải pháp tự động hóa cho thanh toán chuyển khoản ngân hàng

Frequently asked questions about Laravel Sepay
How do I install sepayvn/laravel-sepay in a Laravel application?
Install it with Composer using composer require sepayvn/laravel-sepay. The package follows standard Laravel conventions with service provider auto-discovery, so no manual registration is usually needed. Publish the configuration file with php artisan vendor:publish and add your SePay credentials to the .env file. After that, register the webhook route and wire the handler into your order or payment state machine.
Which Laravel and PHP versions does sepayvn/laravel-sepay support?
Release v1.2.3 explicitly adds Laravel 13 support by widening the illuminate/support constraint, so the package targets modern Laravel versions with PHP 8.1 and above. Before committing, resolve the composer.json constraints against your locked dependency set, since widening an illuminate/support constraint can occasionally pull in transitive updates. Confirm both the Laravel and PHP constraints match your pinned runtime. Because the v1.2.3 change is additive, upgrading from v1.2.2 is a single patch bump with no code changes.
How does sepayvn/laravel-sepay verify SePay webhook requests?
The package provides a configurable webhook handler endpoint that you register as a route and connect to your own payment logic. What you must verify yourself is whether SePay requires IP allowlisting, an HMAC signature check, or both in your account configuration, and confirm exactly what the package implements by default before going live. Treat webhook verification as the highest-risk surface and add idempotency keys so duplicate deliveries cannot double-credit an order. Mapping the SePay transaction payload to your internal payment records is also your responsibility, not the package's.
Can I accept VietQR and bank transfer payments with this package?
Yes. The package is built for SePay, a Vietnamese gateway and bank-transaction webhook service, and is designed to accept bank transfers and VietQR payments. It also exposes transaction querying so you can reconcile incoming transfers against your orders. This makes it a good fit for Vietnamese banking and e-commerce flows where transfers, not cards, are the primary payment method.
Does upgrading from v1.2.2 to v1.2.3 of sepayvn/laravel-sepay require code changes?
No. The v1.2.3 delta is almost entirely CI and tooling churn such as Dependabot bumps to GitHub Actions and Pint actions, plus a documentation typo fix. The only functional change is widening the illuminate/support constraint to allow Laravel 13, with no runtime API changes, breaking changes, or deprecations. Teams on v1.2.2 can upgrade in a single patch bump without touching application code.
How do I test a SePay integration without processing real bank transfers?
Ask SePay whether a sandbox or test account is available for your merchant relationship, since that determines how realistic your integration tests can be. In Laravel you can still exercise the webhook handler by faking the HTTP client and dispatching synthetic transaction payloads through the route. Write tests specifically around the webhook verification path and idempotency handling, because those are the areas most likely to cause production incidents. Verify that CI on your side covers the Laravel versions you actually deploy rather than trusting declared support alone.
Is sepayvn/laravel-sepay a payment orchestration layer or a single gateway connector?
It is a single-gateway connector for SePay, not a payment orchestration layer. If you need to route between multiple payment service providers, that abstraction has to live above this package in your own service layer. It fits cleanly into a conventional Laravel monolith or modular monolith where payments are already abstracted behind a service. For polyglot or non-Laravel services consuming payments, extracting the webhook semantics into a standalone service is preferable.
What is the maintenance risk and bus factor of sepayvn/laravel-sepay?
The package is small and low-traffic with a small contributor base, and the Laravel 13 support pull request came from a first-time contributor. Recent Dependabot updates to the GitHub Actions pipeline suggest the maintainers are keeping the tooling current, which is a mild positive for project health. The upgrade risk between patch releases is negligible, but vendor risk around SePay API volatility and Vietnamese regulatory requirements should be tracked separately from package risk. Pin a maintainer contact and monitor releases before each Laravel upgrade cycle.
How do I migrate from calling the SePay API directly to sepayvn/laravel-sepay?
Inventory your existing SePay HTTP calls and webhook handlers first, then install the package in parallel rather than replacing code in place. Port webhook verification before anything else because it is the highest-risk surface, then migrate outbound API calls, and finally decommission your bespoke client. Because v1.2.3 introduces no breaking changes, the switch itself is low-risk once your internal payment records and reconciliation logic are mapped correctly.
How should I handle idempotency and reconciliation with SePay transactions?
The package handles the SePay connection, but idempotency keys, webhook signature verification, and reconciliation against bank statements are work you must implement around it. Store a unique key per transaction reference and reject duplicate webhook deliveries before mutating order state. Schedule a reconciliation job that queries transactions through the package and compares them against your internal payment records and bank statements. This keeps the package as a thin connector while your own service layer enforces payment integrity.
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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
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