Settings

Configure Razorpay and PhonePe Payment Gateways

Payment Gateway stores merchant credentials for the current branch. Razorpay currently controls sale QR and kiosk payment availability; PhonePe has a configuration surface that must be verified against the shop's deployed checkout before rollout.

Menu path
Settings -> Core Settings -> Payments -> Payment Gateway
Verified from
Posnic demo and current POS source reviewed on 2026-09-13
Technical source evidence

Live demo Razorpay and Phonepe Payment Gateway tabs audited 2026-09-13, frontend/modules/settings_write.html pay-sub-gateway, frontend/static/script/js/modules/js/settings.js paymentKey phonepePaymentKey and credential reset behavior, api/src/models/setting.model.js Razorpay encrypted credential object and PhonePe current write path, api/src/config/field-policy.js gateway credential policy, api/src/models/branch.model.js branch gateway reads and Razorpay webhook display values, api/src/models/sale.model.js Razorpay QR generation status and close, frontend kiosk payment settings Razorpay eligibility

Open Payment GatewayLive Posnic demo rechecked 2026-09-13. Open Core Settings -> Payments, then select Payment Gateway.
Verify the cashier payment surfaceAfter saving branch credentials, use a controlled sale to verify the expected gateway or QR action before staff accept a live payment.
Check kiosk payment configurationThe kiosk Razorpay option depends on saved gateway configuration; confirm it becomes selectable and complete a controlled end-to-end test.

Know What Each Gateway Surface Proves

SurfaceCurrent evidenceDo not assume
Razorpay settingsSaves a branch key ID, secret and on/off status; exposes Razorpay in sale payment controls when enabled.A visible button proves the merchant account, webhook or settlement works.
Razorpay sale QRCreates a fixed-amount, single-use UPI QR from the sale amount and checks provider status.A displayed QR means money was received.
Razorpay kioskCan become selectable after gateway setup and the kiosk payment switch is saved.Kiosk completion works until an end-to-end order is tested.
PhonePe settingsSaves merchant ID, salt key and enabled state for the branch.The current audited checkout has the same sale or kiosk wiring as Razorpay.
Payment ModesCreates ordinary tender labels for recording payment.A custom label calls a provider or verifies money.

Before Entering Credentials

Create and approve the merchant account with the payment provider first. Posnic does not issue Razorpay or PhonePe credentials, activate settlement, or decide the provider's fees and compliance requirements.

  • Use production credentials only after the provider has activated the merchant account; use provider test credentials for a training check when available.
  • Confirm which Posnic branch is selected. Gateway settings are stored against the current branch and license.
  • Restrict this screen to trusted administrators. A secret key or salt key can authorize sensitive merchant operations.
  • Keep credentials in the gateway provider's secure console or an approved password manager; do not place them in training notes, screenshots or support chat.
  • Plan a low-value controlled payment and refund/reconciliation check before enabling the workflow for cashiers.

Configure Razorpay

  1. Sign in to the correct Razorpay merchant account and obtain the Key ID and Secret Key for the intended environment.
  2. Open Settings -> Core Settings -> Payments -> Payment Gateway -> Razorpay.
  3. Copy the Webhook URL displayed by Posnic and register it in the Razorpay webhook settings for the same merchant environment.
  4. Paste the Razorpay Key ID into Key id and the matching secret into Secret Key.
  5. Turn Enable (or) Disable on.
  6. Click Save and wait for the success response.
  7. Leave Settings, return to New Sale, and confirm the Razorpay QR action is available for the selected branch.
  8. If the shop uses Kiosk, open Kiosk payment settings and confirm Razorpay is selectable.
  9. Run one controlled payment, confirm provider success, Posnic sale status, payment report entry and receipt before staff use it.

Understand Every Razorpay Field

ControlPurposeOperator rule
Webhook URLPosnic-supplied endpoint shown from the signed-in user context.Copy exactly into the matching Razorpay environment; a blank display is not a usable webhook.
Webhook Secret KeyPosnic-supplied webhook verification secret shown beside the URL.Treat it as a credential and never place it in screenshots or tickets.
Enable or DisableControls the saved gateway status and local visibility of Razorpay payment actions.The switch refuses to turn on while Key ID or Secret Key is blank.
Key IDPublic identifier for the Razorpay API key pair.Match the test/live environment of the secret.
Secret KeyPrivate credential used server-side to create and query payments.Rotate immediately after suspected exposure.
SaveWrites the complete key pair and status for the active branch.Wait for Payment Gateway Updated before leaving.
ResetReloads saved values into the visible form.Use only in a private admin session; it is not a delete, refund or provider reset.

What Razorpay Changes

SurfaceExpected behaviorVerification
New SaleEnabling saved Razorpay settings exposes the QR payment control.Create a low-value training cart and check that the QR action appears.
Kiosk settingsRazorpay payment is disabled when required gateway configuration is missing.Confirm Razorpay can be selected only after valid setup.
Provider webhookThe provider sends payment events to the Posnic URL shown in the Razorpay tab.Verify delivery and response in the Razorpay webhook log.
Reports and receiptA successful test must be represented consistently in Posnic and the provider.Match amount, sale reference, payment label and provider transaction before rollout.

Run a Razorpay Sale QR Test

The current QR request is fixed amount, single use and closes about 15 minutes after creation using the branch time zone. An expired QR must be recreated from the current final amount; do not reuse an old image after editing the cart.

  1. Create a low-value controlled sale and open PAY.
  2. Choose Razorpay. The enabled gateway adds a Qrpay payment option and disables ordinary sale Save while the QR flow is active.
  3. Confirm the QR amount exactly matches the final payable amount before asking the customer to scan.
  4. Ask the customer to complete payment once. Never accept a phone screenshot as confirmation.
  5. Wait for Posnic to obtain successful provider status, then verify Save becomes available and complete the sale once.
  6. Match Sale ID, amount, Qrpay/Razorpay payment label and provider transaction in Payment Reports.
  7. Test Cancel Payment separately and verify an unpaid or cancelled QR never produces a paid sale.

Configure PhonePe

Current product evidence confirms the PhonePe configuration and branch persistence path. The audited checkout code does not show the same sale QR and kiosk wiring found for Razorpay, so treat PhonePe as deployment-dependent until an end-to-end payment succeeds in your installed build.

  1. Obtain the Merchant ID and Salt Key from the correct PhonePe merchant environment.
  2. Open Payment Gateway and select the Phonepe tab.
  3. Enter Merchant id and Salt Key.
  4. Turn Enable (or) Disable on and click Save.
  5. Reopen the tab or use Reset to confirm the branch's stored values and enabled state are returned.
  6. Check the actual sale, kiosk and reporting surfaces in the deployed edition before promising PhonePe checkout to staff or customers.

Reset, Disable or Rotate Keys

ActionWhat it doesFollow-up
ResetReloads the gateway values currently stored for the branch; it is not a provider refund or credential rotation.Confirm the fields and switch return to the last saved state.
DisableSaves the gateway status as off; Razorpay QR controls are then hidden and kiosk eligibility can change.Verify cashier and kiosk screens after saving.
Rotate credentialsReplaces a revoked or renewed provider key pair in this branch.Update webhook/environment details if needed and repeat the full controlled test.
Change branchLoads that branch's own gateway record.Configure and test every selling branch separately.

Protect Gateway Credentials

Gateway credentials can authorize merchant payment operations. Treat the Payment Gateway page, local database, backups and support bundles as sensitive administrative material.

  • The current settings load and Reset paths can refill saved credential values into browser fields. Do not open this page while screen sharing or on an unattended till.
  • Razorpay's current save path encrypts its key and secret before local database storage and decrypts only for gateway operations.
  • The current PhonePe save path stores Merchant ID and Salt Key in the branch object as supplied even though the field policy identifies gateway credentials as protected cloud-only material. Keep the database and every backup access-controlled.
  • Never include a live Key ID, Secret Key, Merchant ID, Salt Key, webhook secret, QR payload or provider response in this manual's screenshots.
  • After suspected exposure, disable the gateway in Posnic, revoke or rotate at the provider, save the replacement pair for every affected branch, and repeat controlled payment testing.

Troubleshooting and Go-Live Check

  • Record the tested branch, device, provider environment, amount, sale id, provider transaction id and result.
  • Test success, cancellation, timeout and duplicate-click behavior before go-live.
  • Confirm payment reports and settlement reports can be reconciled by the person who closes the day.
  • Train cashiers never to mark a sale paid from a customer screenshot alone; verify the provider and Posnic status.
SymptomCheckAction
Save says a key is requiredRazorpay Key ID or Secret Key is blank.Enter the matching pair and save again.
QR action is missingWrong branch, gateway disabled, save failed or settings not reloaded.Confirm branch, enable and save, then reopen New Sale.
Kiosk Razorpay is disabledGateway credentials have not been saved for this branch.Complete Razorpay setup first, then reopen kiosk settings.
Customer paid but sale is not confirmedWebhook delivery, provider environment, amount and Posnic response.Do not take a second payment until provider evidence is checked; follow the shop's exception process.
PhonePe is saved but no tender appearsCurrent checkout support in the deployed build.Treat configuration alone as insufficient and escalate for an integration verification.
Credentials may be exposedScreenshots, logs, shared accounts or copied secret values.Disable the gateway, rotate keys in the provider console, update Posnic and retest.