@extends('layouts.app') @section('title', 'NMI Payment – Setting') @section('content')

← Setting

NMI Payment

NMI API keys, payment-link options, admin SMS alerts, and layaway terms. Send links from NMI Payment Links. Twilio SMS still uses your existing .env Twilio credentials.

@if(session('success'))

{{ session('success') }}

@endif @if(session('error'))

{{ session('error') }}

@endif
@csrf

NMI connection

Store keys here (not in .env). Use the NMI Private Security Key from Options → Settings → Security Keys (API source), not a third-party key. Payment status syncs from NMI automatically every minute and when you click Refresh payment status on Payment Links.

@if(!empty($hasPrivateKey)) Current key: {{ $maskedPrivateKey }}. Leave blank to keep it. @endif
Also used for layaway invitation / installment payment links.
How many times a customer may reopen an expired link themselves (default 2). Admin Reactivate is unlimited.
@if(!$settings->isConfigured()) Add both NMI keys and enable this feature before sending links. @endif

Admin alerts

When a customer pays through NMI (payment link or layaway), admin email goes to DEALS_NOTIFICATION_EMAIL in .env. SMS alerts go to the numbers below.

Comma-separated E.164 numbers. Leave blank to disable admin payment SMS.

Layaway

Configure layaway plans for NMI payment links and Instagram Story checkout. Layaway is disabled by default — regular NMI payments are unaffected until you enable it.

When off, all payments work exactly as they do today.
Default: 90 days from first successful payment. Existing plans keep their duration.
Hides the fixed Pay 20% / 30% / 40% buttons below this value. Example: set 30 → Pay 20% disappears; Pay 30% and Pay 40% stay. Does not change Custom amount (still 10% minimum) or Pay in full.
Refunds are processed manually in NMI. This percentage is disclosed in the terms only.
Displayed in a popup modal at checkout. You can edit this text freely. When you change duration / minimum payment / refund fee / link expiry above and click Save settings, matching numbers inside these terms update automatically (the rest of your text is kept).
@push('styles') @include('setting.partials.section-styles') @endpush @endsection