Skip to content
← All work

Open-Source Laravel Package for MerchantSuite Payments

A Composer package for the MerchantSuite (Linkly) payments API: iframe checkout, stored-card charges, refunds and verified webhooks, rebuilt in 2026 for Laravel 12 and 13.

What I built

  • Client for MerchantSuite's v5 REST API: iframe-field checkout that keeps card numbers off the merchant's servers, stored-card charges, refunds, pre-auth capture and token management.
  • Payment-safe defaults: test mode unless production opts out, payments never retried after a timeout, and a dropped connection or proxy page reported as an unknown outcome instead of a decline.
  • Card numbers held outside the object, so they never appear in dd(), error pages, logs or queue payloads.
  • Webhooks verified by re-fetching the record from the API, since the gateway does not sign them.
  • Rebuilt from the 2018 v1 against the published OpenAPI spec, without sandbox access: 112 Pest tests, PHPStan at max level, CI across PHP 8.3/8.4 and Laravel 12/13, and a weekly job that fails if the spec drifts.

Stack

PHP 8.3 · Laravel 12/13 · Laravel HTTP client · Pest · PHPStan · GitHub Actions

Next: Charter Booking, Payments & Marina Management View project →