pratiksahu / laravel-nimbbl
Production-ready Laravel package for Nimbbl Payment Gateway (API v3) with database logging, webhooks, and Standard Checkout support.
v1.0.0
2026-06-24 12:58 UTC
Requires
- php: ^8.1
- ext-json: *
- illuminate/database: ^10.0|^11.0|^12.0
- illuminate/events: ^10.0|^11.0|^12.0
- illuminate/http: ^10.0|^11.0|^12.0
- illuminate/routing: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
- nimbbl/nimbbl-sdk: ^4.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
README
Production-ready Laravel package for integrating Nimbbl Payment Gateway (API v3) into any Laravel application.
Built on the official nimbbl/nimbbl-sdk with database audit logging, webhooks, and Standard Checkout support.
Author
| Name | Pratik Sahu |
| pratiksahu1535@gmail.com | |
| GitHub | @Pratiksahu2003 |
| Repository | github.com/Pratiksahu2003/nimbbl |
Features
- Auto-discovered Laravel service provider
- All Nimbbl API v3 operations (orders, payments, refunds, payment links)
- Cached merchant token (20-minute JWT lifecycle)
- Standard Checkout SDK credential helper
- Webhook + callback routes with signature verification
nimbbl_paymentstable — master payment recordsnimbbl_payment_logstable — separate user activity & audit trail- Sensitive data redaction in stored logs (tokens, OTP, card data)
Documentation
| Guide | Description |
|---|---|
| Implementation Guide | Complete step-by-step Laravel integration |
| Database & Logs | Schema, queries, and audit trail |
| Webhooks & Callbacks | Production webhook setup |
| Publishing | Packagist & GitHub release checklist |
Requirements
- PHP 8.1+
- Laravel 10, 11, or 12
- MySQL / PostgreSQL / SQLite
- Nimbbl credentials from Command Center
Installation
Via Composer (recommended)
composer require pratiksahu/laravel-nimbbl
Via GitHub (before Packagist)
Add to your Laravel app's composer.json:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/Pratiksahu2003/nimbbl"
}
]
}
composer require pratiksahu/laravel-nimbbl:dev-main
Setup
php artisan vendor:publish --tag=nimbbl-config php artisan migrate
Environment
NIMBBL_ACCESS_KEY=your_access_key NIMBBL_ACCESS_SECRET=your_access_secret NIMBBL_BASE_URL=https://api.nimbbl.tech/api/ NIMBBL_API_VERSION=v3 NIMBBL_CURRENCY=INR NIMBBL_DATABASE_LOGGING=true NIMBBL_USER_MODEL=App\Models\User
Quick Example
use Nimbbl\Laravel\Facades\Nimbbl; // Server: create order + save to database $order = Nimbbl::createOrder( payload: [ 'invoice_id' => 'INV-'.time(), 'total_amount' => 1000, 'currency' => 'INR', 'user' => [ 'email' => 'customer@example.com', 'first_name' => 'John', 'last_name' => 'Doe', 'mobile_number' => '9876543210', 'country_code' => '+91', ], ], userId: auth()->id() ); // Pass to frontend Standard Checkout SDK (token only — never merchant token) return view('checkout', [ 'checkout' => Nimbbl::checkoutCredentials($order), ]);
Full controller examples, Blade templates, webhook handlers, and production checklist → Implementation Guide
Integration Flow
┌─────────────┐ createOrder() ┌──────────────┐
│ Laravel App │ ──────────────────────►│ Nimbbl API │
│ (Server) │ ◄──────────────────────│ api.nimbbl │
└──────┬──────┘ order token └──────────────┘
│
│ checkoutCredentials()
▼
┌─────────────┐ Nimbbl SDK ┌──────────────┐
│ Browser │ ──────────────────────►│ Nimbbl │
│ (Client) │ ◄──────────────────────│ Checkout │
└─────────────┘ payment result └──────────────┘
│
│ webhook / callback
▼
┌─────────────┐
│ nimbbl_ │ payment record + activity logs
│ payments │
└─────────────┘
Reference: Nimbbl API Introduction
Security
| Token | Where to use | Never expose to |
|---|---|---|
| Merchant token | Server only (refunds, enquiry, create order) | Browser, mobile app |
| Order token | Client checkout SDK | — |
Always verify webhook/callback signatures. Confirm payment status with transactionEnquiry() before fulfilling orders.
License
MIT © Pratik Sahu. See LICENSE.