{{ __('Latest Merchant Update') }} {{ __('API Config controls checkout after keys are generated') }}

{{ __('Merchant Setup & API Config') }}

{{ __('The merchant API is no longer a single-currency, fixed-gateway flow. A merchant can now support multiple currency rails, keep separate sandbox and production credentials, and choose eligible gateways from the API Config page without regenerating API keys.') }}

{{ __('Merchant Dashboard') }}

{{ __('One integration, dashboard-controlled checkout') }}

{{ __('Your code sends amount, currency, redirects, IPN URL, and optional gateway keywords. The dashboard decides which currency rails, wallets, and payment gateways are actually available for that merchant.') }}

{{ __('Sandbox keys') }} {{ __('Production keys') }} {{ __('Wallet rails') }} {{ __('Gateway controls') }}
{{ __('Default mode') }} {{ __('Sandbox') }}
{{ __('Live access') }} {{ __('Requires approval') }}
{{ __('Gateway source') }} {{ __('API Config') }}

{{ __('Merchant Review Status') }}

{{ __('Pending merchants can test in sandbox. Production API access and live checkout are available only after admin approval.') }}

{{ __('Currency Rails') }}

{{ __('Each request currency_code must exist in the merchant-supported currency list. Unsupported currencies are rejected before checkout opens.') }}

{{ __('Receiver Wallet Match') }}

{{ __('The merchant owner must have an active wallet for the requested currency, otherwise the API returns a wallet availability error.') }}

{{ __('Payment Gateway Controls') }}

{{ __('Only active automatic gateways that match the requested currency and merchant selection can appear on hosted checkout.') }}

{{ __('Runtime Decision Order') }}

  1. 01
    {{ __('Authenticate the environment') }}

    {{ __('X-Environment decides which merchant key, API key, and API secret are used.') }}

  2. 02
    {{ __('Check merchant availability') }}

    {{ __('Rejected or disabled merchants are blocked. Production also requires approved merchant status.') }}

  3. 03
    {{ __('Validate requested currency') }}

    {{ __('currency_code must match a merchant-supported rail such as USD, EUR, or BDT.') }}

  4. 04
    {{ __('Confirm receiver wallet') }}

    {{ __('The merchant owner needs an active wallet for that same currency.') }}

  5. 05
    {{ __('Resolve configured gateways') }}

    {{ __('Merchant API Config selections restrict checkout to the chosen eligible gateways. If none are selected, the safe fallback is all active automatic gateways for that currency.') }}

  6. 06
    {{ __('Apply optional API filter') }}

    {{ __('allow_payment_methods can narrow the available gateway list, but it cannot expose an unconfigured or wrong-currency gateway.') }}

{{ __('Real Cases & Results') }}

{{ __('Case') }} {{ __('API Result') }} {{ __('Fix') }}
{{ __('Merchant supports USD and EUR, but only USD wallet exists.') }} 422 Receiver wallet for this currency is not available. {{ __('Create/activate the EUR merchant wallet before accepting EUR checkout.') }}
{{ __('Stripe USD is selected, but the request sends currency_code EUR.') }} {{ __('Stripe USD will not appear on checkout.') }} {{ __('Select an active EUR gateway or send USD.') }}
{{ __('Merchant has not selected any gateway yet.') }} {{ __('Checkout falls back to all active automatic gateways that match the requested currency.') }} {{ __('Use API Config to lock checkout to preferred gateways.') }}
allow_payment_methods=["paypal"] {{ __('but PayPal is not configured for the merchant.') }} {{ __('PayPal remains hidden.') }} {{ __('Enable PayPal from Payment Gateway Controls if its currency matches.') }}
{{ __('Pending merchant calls production API.') }} 403 Merchant Pending Approval {{ __('Use sandbox until admin approval is complete.') }}
{{ __('No cross-currency gateways') }}

{{ __('A gateway configured for USD cannot process EUR checkout unless a separate EUR gateway exists.') }}

{{ __('Secrets stay server-side') }}

{{ __('API Secret is used only to sign server-to-server API requests and verify IPN signatures.') }}

{{ __('Signed checkout URL expires') }}

{{ __('The returned payment_url is time-limited. Create a new payment session for expired checkout links.') }}

{{ __('Verify is merchant scoped') }}

{{ __('A merchant can verify only its own transaction and only in the matching sandbox or production environment.') }}