first-iraqi-bank/fib-laravel-payment-sdk
Laravel SDK for First Iraqi Bank (FIB) online payments: create and manage payment requests, verify callbacks, check statuses, and integrate FIB's gateway into your Laravel app with a simple, fluent, testable API. Includes sandbox support and easy configuration.
Architecture fit
fib-laravel-payment-sdk is a vendor-maintained Laravel package wrapping First Iraqi Bank's payment APIs. For a Laravel monolith or modular service it fits the expected shape of a Laravel payment integration: Composer-installable, service-provider registered, config published to config/, credentials sourced from environment variables, and a facade or injected client for creating payments, confirming status, and issuing refunds. It is a single-rail integration (one Iraqi bank), not a multi-gateway abstraction, so it belongs behind an application-owned payment interface if there is any chance of adding a second provider later.
Integration feasibility
Install is a standard composer require plus config publish and credential provisioning from FIB onboarding. The practical work is not the package install but the surrounding payment lifecycle: order state machine, webhook/callback endpoint, reconciliation job, and refund handling. v1.9.0 does not change the integration surface described above; it changes transport security defaults and framework version support, both of which are configuration- and CI-level concerns rather than code-level rewrites.
Technical risk
ca-certificates. This is a security improvement but is a de facto breaking change for misconfigured environments, and it will surface as connection errors rather than clean validation messages.Key questions
composer.json constraint changes in v1.9.0 — PHP, illuminate/*, guzzlehttp/guzzle?Stack fit
Target Laravel 10–13 on PHP 8.1+ (confirm the exact floor in composer.json). Requires an outbound HTTPS path to FIB endpoints and a publicly reachable webhook route if callbacks are supported. No queue, cache, or database requirements are implied by the package itself, but production usage will want a queue for reconciliation and a persisted payment_intent_id ↔ order mapping.
Migration path From v1.8.1 to v1.9.0 is a patch-level bump with two material changes:
curl -v https://<fib-endpoint> (or a openssl s_client -verify_return_error check) from inside the container catches this before it becomes a checkout outage.Compatibility
Confirm the published PHP/Laravel support matrix rather than inferring it from the release note. Validate against php artisan config:cache and route:cache — payment packages frequently break under config caching when they read env vars outside the config file. Confirm the HTTP client version aligns with the app's existing Guzzle major.
Sequencing
composer.json constraints.composer require ...:1.8.1) ready, but note that rolling back re-disables TLS verification — prefer fixing trust over reverting.Maintenance
Low ongoing effort, vendor-driven cadence. Pin to exact versions in composer.json rather than carets, watch the repository for releases, and review each diff — this release shows the project will ship security-relevant changes in patch versions without a major bump, so caret ranges are riskier than usual here. Add the repo to dependency monitoring so TLS/cert changes and Laravel constraint widenings are seen before composer update.
Support Support runs through FIB's merchant/developer channel, not a public issue tracker with SLAs. Establish a named FIB technical contact and an escalation path before launch; a payments integration with no vendor escalation route is an operational single point of failure. Internally, document the webhook endpoint, credential rotation procedure, and who owns the FIB relationship.
Scaling The SDK is a thin HTTP client; throughput is bounded by FIB's rate limits and settlement windows, not by the package. Ensure explicit connect/read timeouts and a bounded retry policy with idempotency keys on the application side — SDK defaults for both are frequently absent or too permissive. Run reconciliation as a queued job on a schedule rather than inline in the request path, so a slow FIB response never blocks checkout.
Failure modes
composer update.Ramp-up Engineering ramp-up is modest — roughly a day for a Laravel developer already familiar with HTTP-client-based payment integrations. The real cost is domain and compliance: IQD rounding, settlement timing, refund windows, and FIB onboarding/KYC for the merchant account typically dominate the timeline. Budget for one engineer to own the integration end to end, including the TLS trust verification across environments, and do not schedule the v1.9.0 upgrade in the same window as a major commerce event.
How can I help you explore Laravel packages today?