Payments
Socialone supports multiple payment methods across WhatsApp, the web store, and in-person. Payment status tracks independently from order status — an order can be confirmed before payment, or payment can be captured before confirmation depending on the Order Flow setting.
Payment Status
| Status | Meaning |
|---|---|
| Unpaid | No payment has been received yet |
| Partial | A deposit or part-payment has been collected; balance remains due |
| Paid | Full payment received |
| Refunded | Payment has been returned to the customer |
Collection Type
- Prepaid: payment is collected online before or at order confirmation. The order moves forward only when payment is captured.
- COD (Cash on Delivery): payment is collected by the delivery agent at the customer's door. Enable COD in Settings → OMS Settings → Delivery. Set a COD Maximum Order Value to restrict it to lower-value orders if needed.
Payment Instruments
| Instrument | How it works | Setup |
|---|---|---|
| WhatsApp Pay (UPI) | Customer pays inside WhatsApp with any UPI app. Payment webhook auto-confirms the order. | Register UPI VPA in OMS Settings → WhatsApp Pay |
| Razorpay QR | A UPI QR code is sent to the customer. Payment tracked via Razorpay webhook. | Connect Razorpay account in OMS Settings |
| Razorpay Payment Link | A one-time payment link sent to the customer via WhatsApp. Customer pays on a hosted page. | Connect Razorpay account in OMS Settings |
| Razorpay PG | Full payment gateway for the web store checkout — card, UPI, net banking, wallets. | Connect Razorpay account; set up PG mode |
| UPI (manual) | Staff records a manual UPI payment after confirming with the customer. | No setup — available on all accounts |
| Cash | Staff records cash collected in-store or on delivery. | No setup — available on all accounts |
| Card | Staff records a card payment (POS terminal, etc.). | No setup — available on all accounts |
| Bank Transfer | Staff records a NEFT/RTGS/IMPS bank transfer after it clears. | No setup — available on all accounts |
WhatsApp Pay Setup
- Go to Settings → OMS Settings and select your WhatsApp account.
- Under WhatsApp Pay, enter your UPI VPA, Merchant Category Code, UPI Purpose Code, and Payment Note.
- Click Register with Meta. This creates the payment configuration on the selected WhatsApp account. Meta may take up to 24 hours to verify the registration.
- Once registered, the Request Payment action will appear on orders for this account.
Razorpay Integration
Connecting Razorpay enables QR code, payment link, and payment gateway (PG) modes. The connection uses Razorpay OAuth, so you do not need to manage API keys manually.
- Go to Settings → OMS Settings → Payments.
- Click Connect Razorpay. You will be redirected to Razorpay to authorise the integration with
read_writescope. - After authorisation, return to Socialone. The Razorpay connection shows as active with account ID and token expiry.
- For Razorpay PG (web store checkout), click Setup PG Mode. The status progresses through: Needs Connecting → Needs Testing → Active. Use Send Test Payment to verify the integration end-to-end before going live.
Token expiry
Razorpay OAuth access tokens expire after 90 days and refresh tokens after 180 days. Socialone auto-refreshes tokens before expiry. If the connection drops, reconnect from OMS Settings — no order data is lost.
Requesting Payment on an Order
- Open the order from the Orders list.
- Click Request Payment. This sends a WhatsApp Pay order message to the customer (if WhatsApp Pay is configured) or a payment link (if Razorpay Link is configured).
- When the customer completes payment, the payment webhook updates the order's payment status to Paid automatically.
- For the Pay → Confirm order flow, the order also auto-confirms at this point.
Recording Manual Payments
Use Collect Payment on an order to record offline payments — cash collected in-store, a card swipe, a bank transfer, or a UPI payment confirmed by the customer verbally.
- Open the order and click Collect Payment.
- Select the payment instrument (Cash / Card / UPI / Bank Transfer / Other).
- Enter the amount collected. For a full payment enter the order total; for a deposit enter the deposit amount.
- Save. Payment status updates to Paid (or Partial for a deposit). The instrument and amount are saved to the order record.
Deposits & Partial Payments
Service bookings support partial upfront payment. When a product is configured with Booking Payment = Deposit, Socialone collects the deposit amount at booking time and records the balance due separately.
- amount_paid: the deposit or partial amount already collected.
- Balance due:
total − amount_paid. Shown on the invoice and in the booking confirmation message. - Balance reminder: configure a reminder N days before the appointment on the product to prompt the customer to pay the balance.
Delivery Quote Flow
When delivery charge mode is set to Live Courier Cost, Socialone fetches a real-time quote from the courier and sends it to the customer before confirming the order.
- Order is placed. Socialone fetches a courier quote from the integrated provider.
- The quote (with shipping amount) is sent to the customer via WhatsApp. A Quote Sent notification fires.
- The customer has Quote Confirm TTL minutes (default 15) to accept the quote. After TTL, a Quote Expired notification fires and the order returns to pending.
- If the customer confirms, the shipping charge is added to the order and the order proceeds to fulfillment.
If Socialone cannot get a quote (courier API failure), the Live Cost Fallback setting controls what happens: Hold (staff alert), Flat Fee (use the flat rate instead), or Merchant Paid (absorb and continue silently).
Common Blockers
- Request Payment not visible: the order is already paid, or WhatsApp Pay is not configured for this account. Check OMS Settings.
- Razorpay connection inactive: the access token may have expired or been revoked. Reconnect from OMS Settings — existing order data is not affected.
- COD not visible at checkout: enable COD in OMS Settings → Delivery. Check the COD Maximum Order Value — if set, COD is hidden for orders above that amount.
- Payment webhook not updating order: check that the Razorpay webhook URL is registered in your Razorpay dashboard. The URL is shown in OMS Settings after connecting Razorpay.
- Deposit not reflected on invoice: ensure Collect Payment was used to record the deposit. The invoice reflects amount_paid and shows the outstanding balance.
Related Docs
Related product
Commerce & Orders for WhatsApp selling
Manage WhatsApp catalogs, products, variants, bulk imports, product messages, carts, payments, and order follow-up from one Socialone workspace.
View product →