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

Fib Laravel Payment Sdk Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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

  • TLS verification is now enabled (behavior change). Any environment that previously worked because certificate validation was silently skipped will now fail: corporate/CI egress proxies performing TLS interception without a trusted CA, self-signed certs in FIB's sandbox, stale CA bundles in container images, and hosts with missing 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.
  • Laravel 13 support is additive and low-risk, but implies the package's version constraints were widened without a major bump. Widened constraints can pull in transitive dependency combinations that were not tested against Laravel 13; this needs a lockfile diff on upgrade, not just a green test run.
  • Single-vendor, low-traffic repository. One named contributor on this release, small community, docs largely external to the repo. That means slow issue triage and no independent security review. Treat the package as a vendor black box: pin exact versions and review diffs before adopting.
  • Regulatory/domain risk. Payment flows in Iraq carry compliance, settlement-timing, and currency (IQD) handling constraints that the SDK will not enforce for you.

Key questions

  1. Is TLS verification configurable, or hardcoded on? Do we need an explicit opt-out for a sandbox with a self-signed cert — and if so, what is the compensating control?
  2. Does the CA bundle come from the system trust store, Guzzle's bundled certs, or a package-shipped PEM? This determines the container image fix.
  3. What were the exact composer.json constraint changes in v1.9.0 — PHP, illuminate/*, guzzlehttp/guzzle?
  4. Was TLS verification previously disabled by default, and if so was that documented? This affects whether we were unknowingly exposed.
  5. Are webhook signatures verified, and with what algorithm? Is there replay protection?
  6. What is FIB's stated support window and deprecation policy for this SDK?

Integration Approach

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:

  1. Bump the constraint and update the lockfile; inspect the resulting dependency diff rather than only the SDK diff.
  2. Before deploying, verify TLS trust in each environment: base image, CI runner, and any egress proxy. A one-line 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.
  3. If the sandbox cannot verify, request a properly chained cert from FIB rather than disabling verification. If a temporary exception is unavoidable, scope it to a non-production config key and open a ticket to remove it.

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

  1. Read the v1.8.1…v1.9.0 diff and composer.json constraints.
  2. Upgrade in a branch; run the full suite plus any mocked gateway integration tests.
  3. Deploy to a staging environment that mirrors production network topology (proxy, egress, image) and exercise create/confirm/refund against FIB sandbox.
  4. Canary to production on a low-volume path or behind a feature flag if the payment entry point supports it.
  5. Hold a rollback pin (composer require ...:1.8.1) ready, but note that rolling back re-disables TLS verification — prefer fixing trust over reverting.

Operational Impact

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

  • TLS handshake failure after this upgrade — highest-probability near-term incident. Presents as connection exceptions on every payment call. Mitigate with an image-level CA bundle update and a pre-deploy connectivity check.
  • Certificate rotation — if FIB rotates certs on a short cycle, or the SDK pins a leaf cert, expect recurring breakage on rotation dates. Confirm whether pinning exists.
  • Dependency drift — widened Laravel constraints pulling in untested transitive versions on the next composer update.
  • Webhook loss or replay — callbacks dropped during deploys or replayed by a third party. Requires signature verification, idempotent handlers, and a polling reconciliation job as the source of truth.
  • Silent sandbox/production divergence — sandbox cert trust differing from production, so the TLS issue only appears at cutover.
  • Vendor API changes — no versioned API contract visible from here; behavior changes may land inside SDK patch releases.

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.

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.
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc