bKash Tokenized Checkout V2 (v1.2.0-beta still supported): refresh tokens, a guard against the 2-grants-per-hour lockout, callback signature check, execute-once, partial refunds (up to 10) and refund status, sync that recovers lost callbacks.
One row per attempt with a fresh gateway_reference; PaymentDuplicated when two attempts for one reference are paid.
Optional capabilities: SupportsSync, SupportsRefunds, SupportsPartialRefunds; BdPayGate::refund() and BdPayGate::sync() route by the payment's gateway.
Gateway name is the config key, so several stores of one gateway work side by side.
Callback routes run without sessions or CSRF; malformed callbacks are rejected without a 500.
requires_review and failure_reason columns; Customer gains postcode and state.
Outbound proxy and timeout settings, per gateway or global.
Conformance suite every gateway must pass.
Laravel 13 and PHP 8.5 support.
Package renamed to byteminus/laravel-bdpaygate, namespace ByteMinus\BdPayGate.