CRM · Integration how-to

How to connect Razorpay to HubSpot or Zoho CRM so a captured payment moves the deal, records the revenue and feeds Google Ads and Meta. The routes that exist, the steps from Razorpay, HubSpot and Zoho documentation, and what breaks.

CRMs
HubSpot and Zoho CRM
Routes
4 compared
Based on
Official documentation
Checked
18 October 2026

Short answer

A Razorpay HubSpot integration links each payment to a CRM deal. Razorpay sends a webhook (such as order.paid or payment_link.paid) carrying the deal ID you stored in its notes; an automation tool, a HubSpot workflow webhook trigger or a small service then marks the deal paid or closed won and records the amount. HubSpot's own payments are not available to Indian businesses.

Why connect Razorpay to your CRM at all?

Because a payment is the only moment the CRM knows for certain that a deal is won and what it was worth. Without the link, closed-won is a sales rep's opinion and revenue attribution stops at the lead.

Indian B2B and service businesses often sell through a call or a WhatsApp chat, then send a Razorpay Payment Link. The payment lands in Razorpay, the deal sits in HubSpot or Zoho CRM, and someone updates it by hand days later, if at all. Three things are lost: an accurate closed-won date and amount, a trigger for onboarding or fulfilment, and the signal that tells Google Ads and Meta which leads became revenue.

That last point is the commercial one. When paid deals flow back to ad platforms, bidding optimises for buyers instead of form fills; the site's guides on Google Ads offline conversion import with Zoho CRM and enhanced conversions for leads cover that loop. A Razorpay payment to CRM deal stage link is the step that makes it trustworthy, because the value comes from the payment, not from a rep's estimate.

5 secondsfor your endpoint to reply before Razorpay marks a webhook as timed outSource: Razorpay Docs[2]
24 hoursof retries with exponential backoff before Razorpay disables a failing webhookSource: Razorpay Docs[2]
15 × 256key-value notes (characters each) you can attach to a Razorpay order to carry CRM IDsSource: Razorpay API Docs[7]
100unique webhook events per HubSpot account for the workflow webhook triggerSource: HubSpot Knowledge Base[13]
HubSpot payments will not do this in India

HubSpot payments is supported in the US, UK and Canada (HubSpot Knowledge Base, updated 22 September 2026), and HubSpot's Stripe payment processing option lists India among the countries where it is not available (HubSpot Knowledge Base, updated 24 September 2026). Indian businesses collect through a gateway such as Razorpay and connect it to HubSpot separately.

Native app, marketplace extension, automation tool or webhook?

There are four ways to connect Razorpay to a CRM. Which ones exist depends on the CRM: Zoho has a marketplace extension and native Zoho Flow triggers, while HubSpot relies on automation tools or webhooks.

Razorpay to CRM integration routes (checked 18 October 2026)
RouteHubSpotZoho CRMStrengthsLimits
Marketplace extensionNo Razorpay app could be confirmed in HubSpot's marketplace"Razorpay for Zoho CRM" by Nexivo: send, cancel and resend Payment Links from Deals, Quotes and InvoicesNo code; sales stays inside the CRMPaid, billed in USD; listing does not say it updates deal stages
Automation platformZapier: Razorpay triggers including Payment Captured, Payment Link Paid, Invoice Paid; HubSpot actions include Find Deal and Update DealZoho Flow: triggers Order paid, Payment failed, Invoice paid, Refund created; Zoho CRM update actionsFast to build, no hostingPer-task pricing, limited error handling, signature checks handled by the tool
CRM-native webhook receiverWorkflow trigger "When a webhook is received" (Professional or Enterprise)Standalone function exposed as a REST API endpointNo extra service to hostHubSpot: matches existing records only, JSON only, no documented signature check
Custom service and CRM APIService verifies the webhook and calls the CRM deals APIService or function calls the Zoho CRM APIFull control of verification, retries, refunds and ad feedbackNeeds a developer and monitoring
Sources: Zoho Marketplace listing (version 2.3, last released 1 September 2025), Zapier Razorpay + HubSpot page, Zoho Flow Razorpay + Zoho CRM page, HubSpot Knowledge Base, Zoho CRM developer documentation. Razorpay's own Zoho integration connects Razorpay as a payment gateway to "your Zoho suite" from the Zoho dashboard (India only, owner account, same email on both); it is a collection setup, not a CRM deal sync. Source: Zoho Marketplace (developed by Nexivo)[10]

Which route fits?

Which CRM holds your deals?

See the whole decision tree

Which CRM holds your deals?

  • Zoho CRM

    Does sales send Payment Links from the CRM?

    • Yes
      Marketplace extension plus Zoho FlowUse the extension to send links; add a Zoho Flow on Razorpay "Order paid" to update the deal.
    • No, payments come from a website or invoices
      Zoho Flow, or a function at volumeZoho Flow for most volumes; a standalone Zoho CRM function when you need your own signature checks and retries.
  • HubSpot

    Do you have HubSpot Professional or Enterprise and a developer?

    • Professional, no developer
      Workflow webhook trigger, low-risk updatesMatch on a unique Razorpay ID property and update payment status; verify amounts against Razorpay before treating them as revenue.
    • Developer available
      Middleware service and HubSpot APIVerify the signature, deduplicate events, then update the deal and send the value to ad platforms.
    • Free or Starter
      Automation toolUse a tool with Razorpay triggers and HubSpot Find and Update Deal actions.
Read this Ask an AI about Razorpay CRM integration on your favourite platform

What data moves from Razorpay to the CRM

Every route needs the same thing first: a shared ID, so a payment can find its deal. Decide where the ID lives before choosing any tool.

Razorpay fields and where they belong in HubSpot or Zoho CRM
Razorpay fieldWhat it holdsHubSpotZoho CRM
notes (order or Payment Link)Up to 15 key-value pairs of 256 characters: put the CRM deal ID hereRead deal ID, then update that dealRead deal ID, then update that Deal
receipt (order) / reference_id (Payment Link)Your reference, max 40 characters, must be uniqueUnique custom property on the deal (needed for the webhook trigger match)Unique field on the Deal
order_id / payment_link idRazorpay's own IDCustom property for reconciliationCustom field
payment id, method, statuspay_ ID, card or UPI, captured or failedPayment status property; stage change on capturePayment status field; Blueprint or workflow on capture
amount, currencyIn the smallest unit (paise for INR)Divide by 100 into amountDivide by 100 into Amount
refund id, statusFrom refund.created / refund.processedRefund amount property; reopen or flag the dealRefund field; update stage or create a task
Field limits from Razorpay's Orders and Payment Links API documentation. Event payloads: order.paid contains the order and payment entities; payment.captured contains only the payment; payment_link.paid contains order, payment and payment_link. Source: Razorpay API Docs[7]

Payment to deal stage: the sequence

  1. CRMDeal reaches "Payment requested"The rep or a workflow creates a Razorpay order or Payment Link with the CRM deal ID in notes and a unique reference.
  2. RazorpayCustomer paysRazorpay captures the payment. The browser redirect is not proof of payment; confirm it server-side.
  3. RazorpayWebhook firesorder.paid, payment.captured or payment_link.paid is posted to your endpoint with X-Razorpay-Signature.
  4. EndpointVerify and deduplicateCheck the HMAC signature, store the event ID, reply 2xx within 5 seconds.
  5. CRMUpdate the dealSet amount, payment ID and status; move to Closed won or "Paid" by internal stage ID.
  6. Ad platformsSend the revenue signalPass the paid value to Google Ads and Meta; retract or restate on refund.

How to set up a Razorpay webhook into HubSpot

These steps follow Razorpay's webhook documentation and HubSpot's workflow and CRM API documentation. Menu names change; where a path is not confirmed in the docs, the step is described generically.

  1. Create the matching property. In HubSpot, create a deal property for the Razorpay reference (for example the order receipt or Payment Link reference_id) and turn on "Require unique values for property". HubSpot's webhook trigger only enrols a record whose unique property matches the incoming value (HubSpot Knowledge Base).
  2. Write the reference into Razorpay. When the order or Payment Link is created (by your site, a rep or a workflow), set the receipt or reference_id to that value and add the HubSpot deal ID to notes.
  3. Choose the receiver. Either create a workflow with the trigger "Received a webhook from an external app" and copy its URL, or deploy a small service with its own URL. The workflow trigger accepts application/json only and supports string, enum, number and boolean types; datetimes must be mapped as strings.
  4. Add the webhook in Razorpay. In the Razorpay Dashboard, add the URL (port 80 or 443) for Test mode first, subscribe to the events you need, and set a webhook secret (Razorpay Docs).
  5. Verify the signature. Razorpay signs each request with HMAC SHA256 of the raw body using your secret, sent as X-Razorpay-Signature (Razorpay Docs). HubSpot's webhook trigger page documents no signature option, so with that route treat the payload as unverified: use it to set a status, and confirm amounts against Razorpay before reporting them as revenue. A middleware service, or a custom code action on Data Hub Professional (JavaScript or Python, 20-second limit, secrets supported), can verify it.
  6. Update the deal. Through the CRM API, update the deal with PATCH /crm/v3/objects/deals/{dealId}, using the internal ID of the stage, not its label (HubSpot Developers).
  7. Handle failures and refunds. Subscribe to payment.failed and refund.processed and decide what each does to the deal: a task for the rep, a status change, or reopening.
Do not use the browser redirect as proof of payment

Razorpay's webhook documentation describes webhooks as the server-side notification of payment events, and suggests calling its Payments or Orders fetch APIs when a time-sensitive flow cannot wait for one. A browser redirect is neither. Customers close tabs, UPI apps do not always return, and redirects can be replayed. Move deals only on a verified webhook or an API check.

Razorpay Zoho CRM integration: three ways to set it up

Zoho users have more ready-made options than HubSpot users. Pick one by how payments are created and how much control you need.

  1. Marketplace extension for Payment Links. "Razorpay for Zoho CRM" (by Nexivo, a Zoho partner) sends Razorpay Payment Links to customers and cancels or resends requests from the Deals, Invoices and Quotes modules. It is a paid extension billed monthly or yearly in USD with a 10-day trial (Zoho Marketplace). The listing does not say it moves deal stages, so test that, or add the next step.
  2. Zoho Flow for status updates. Zoho Flow lists Razorpay triggers including Order paid, Payment failed, Invoice paid, Subscription charged and Refund created, and Zoho CRM actions including Update module entry and Fetch deal (Zoho Flow). A flow on Order paid that fetches the deal by the ID in notes and updates its stage covers most needs.
  3. A Zoho CRM function as a webhook receiver. Any standalone function can be exposed as a REST endpoint. With API key authentication, the endpoint URL itself is the key, which Zoho describes as suited to inbound webhooks; OAuth 2.0 is recommended for production integrations. The function reads the raw request body from crmAPIRequest and can be written in Deluge, Java, Node.js or Python (Zoho CRM Developer docs). Because the URL is the key, also verify Razorpay's signature inside the function and treat the URL as a secret.

Razorpay also documents a separate integration that connects Razorpay as the payment gateway for "your Zoho suite" from the Zoho dashboard (Settings, Integrations, Customer Payments). It requires the Zoho account owner, the same email on both accounts, and is listed as India only (Razorpay Docs). That is about collecting payments on Zoho invoices; it does not by itself move CRM deals. Zoho users who also need lead-source attribution into the same deals should read Facebook Lead Ads to Zoho CRM and IndiaMART leads in Zoho CRM.

Closing the loop: payments as revenue attribution

Once payments update deals, the CRM can tell ad platforms which clicks became revenue. This is the part competitors' integration pages leave out, and it is where most of the value sits.

Who does what from ad click to attributed revenue

StageAd platformCRMRazorpayYour endpointLeadClick ID (gclid) or Meta click data capturedContact and deal created with source fieldsPayment requestDeal moves to Payment requestedOrder or Payment Link created with deal ID in notesPaymentPayment captured, webhook sentSignature verified, event deduplicatedClosed wonAmount and stage updated from the paymentCRM API callFeedbackOffline conversion or Conversions API event with valueExport or sync of paid dealsOptional direct sendRefundConversion restated or retractedDeal flagged or reopenedrefund.processed sentAdjustment queued

Two documented capabilities make the feedback step work. Meta's Conversions API accepts events from your server or CRM, so a paid deal can be sent as a purchase with its value (Meta for Developers). Google Ads accepts conversion adjustments by order ID: restatements and retractions within 54 days, with adjustments inside 7 days readable by automated bidding (Google Ads Help). Use the Razorpay payment or order ID as that order ID so a refund can retract the right conversion.

For the reporting side, the GTM, GA4, CRM and Looker attribution stack shows where paid-deal data sits, and the B2B SaaS attribution chain case study shows the same loop built for pipeline. Businesses that collect payment after a WhatsApp conversation should pair this with HubSpot WhatsApp integration or tracking WhatsApp leads in Google Ads.

Pick your Razorpay integration route

Answer six questions to get a recommended route, the build steps and the checks for it.

Free tool

Razorpay to CRM route picker

Answer six questions about your CRM, payments and team. The tool recommends an integration route, explains why, and lists the build steps and the checks that matter for that route.

Which CRM?
HubSpot subscription level
Do you have a developer who can run a small service?
Must refunds and failures update the CRM?
Should paid deals be sent back to Google Ads or Meta?
Recommended routeHubSpot workflow webhook trigger
Build effortMedium
Why

On Professional or Enterprise, a workflow can start when Razorpay posts a webhook, matched to the deal by a unique property. HubSpot does not document signature checks for this trigger, so keep it to low-risk updates or add verification.

Build steps
  1. Create a unique CRM property for the Razorpay order or payment link ID, and write the CRM deal ID into Razorpay notes (or receipt / reference_id) when the order or link is created.
  2. Add pipeline stages or properties for payment status: link sent, paid, failed, refunded. Use internal stage IDs in any API call.
  3. In the Razorpay Dashboard, subscribe only to the events you use: order.paid or payment.captured, payment.failed, payment_link.paid, refund.processed.
  4. Verify X-Razorpay-Signature (HMAC SHA256 of the raw body with your webhook secret) before trusting any payload.
  5. Store x-razorpay-event-id and ignore repeats; Razorpay delivers at least once and not always in order.
  6. Map amount (in paise, divide by 100), currency, payment ID, method and captured time to CRM properties.
  7. Send closed-won value to Google Ads (offline conversion import) and Meta (Conversions API), and restate or retract on refund.
  8. Run end-to-end in Razorpay Test mode with a staging CRM record before switching the Live webhook on.
Checks before go-live
  • Every payment carries the CRM deal ID in notes and a unique reference
  • Amounts converted from paise and checked with a ₹1 test payment
  • An alert for payments that match no deal
  • Payload treated as unverified: amounts confirmed against Razorpay before reporting revenue
  • refund.processed and payment.failed each have a defined CRM action

Want the field mapping, deal-stage logic and test plan written for your CRM?

Rules, not a model: HubSpot's "When a webhook is received" workflow trigger needs a Professional or Enterprise subscription and an existing record with a unique property to match (HubSpot Knowledge Base); custom code actions need Data Hub Professional or Enterprise (HubSpot Developers). Zoho Flow lists Razorpay triggers such as Order paid, Payment failed, Invoice paid and Refund created. Razorpay signs every webhook with HMAC SHA256 and expects a 2xx reply within 5 seconds, retrying for 24 hours (Razorpay Docs). Volume thresholds are planning judgements: above a few thousand payments a month, per-task pricing on automation tools and retry handling usually favour a small custom service. Check current plan limits before building.

What breaks, and how to check it works

Payment integrations fail quietly: the deal simply never moves. Most failures come from a handful of documented behaviours.

Common failure points and how to detect them
FailureWhy it happensHow to check
Webhook disabledNon-2xx replies for 24 hours of retries; Razorpay then disables the webhook and emails an alertWatch the alert address; check webhook status in the Dashboard weekly
Duplicate updatesDelivery is at least onceLog x-razorpay-event-id; a second delivery should change nothing
Out-of-order eventsRazorpay does not guarantee orderNever move a deal backwards on an older event; compare timestamps
TimeoutsYour endpoint does heavy work before replyingReply 2xx first, process after; Razorpay times out at 5 seconds
No matching dealMissing or mistyped reference in notes or receiptDaily report of payments with no deal; HubSpot trigger skips non-matching records silently
Wrong amountsAmounts are in paiseCompare a test payment of ₹1 with the CRM amount
Blocked deliveriesFirewall or cloud security group blocks Razorpay IPsWhitelist Razorpay's webhook IPs; send a test event
Source: Razorpay Docs[2]

Ready to switch on the Live webhook?

0/10 (0%)
Matching
Reliability
Revenue

Test in Razorpay's Test mode first: test events fire for test transactions with the same payload structure as Live, webhooks need a public URL (so localhost needs a tunnel), and a staging host can be set as the Test-mode endpoint (Razorpay Docs). Then reconcile for a month: Razorpay settlements on one side, closed-won deals on the other. Any mismatch is a bug, not a rounding error.

Getting the integration built and attributed

The integration is a small build; the value comes from what it feeds.

Rahul D Sarker is a fractional CMO and RevOps consultant based in Kolkata who sets up HubSpot and Zoho CRM revenue tracking for companies in India and abroad, working remotely. The CRM consulting service and analytics and attribution service cover payment-to-deal integrations and the ad-platform feedback built on them. When the payment link is one part of a wider attribution problem, the Revenue Diagnostic (a fixed-price, two-week review listed at ₹90,000 for companies in India and $1,500 elsewhere) maps the whole chain first, with the fee credited if you continue. For the cost of CRM work in general, see CRM consultant hourly rates in India.

Request a Razorpay integration plan

Tell me which CRM, how customers pay and what should happen when they do. You will get a reply with the recommended route and what it involves.

Tell me about your payments and CRM

A few details are enough to recommend a route. Nothing is connected to your accounts without written approval.

One reply within one business day. No spam.

Razorpay CRM integration: common questions

Is there a native Razorpay HubSpot integration?

No native app built by Razorpay or HubSpot could be confirmed when this guide was checked on 18 October 2026. The working options are automation platforms such as Zapier, which list Razorpay triggers and HubSpot deal actions, HubSpot's workflow webhook trigger on Professional or Enterprise, or a small custom service using the HubSpot API.

Can I use HubSpot payments instead of Razorpay in India?

Not at present. HubSpot's Knowledge Base says HubSpot payments supports the US, UK and Canada, and its Stripe payment processing option lists India among the countries where it is not available. Indian businesses need an external gateway connected to HubSpot.

How do I connect Razorpay to Zoho CRM?

Three documented routes exist: the paid "Razorpay for Zoho CRM" marketplace extension for sending Payment Links from Deals, Quotes and Invoices; Zoho Flow, which has Razorpay triggers such as Order paid and Zoho CRM update actions; and a Zoho CRM function exposed as a REST endpoint that receives Razorpay webhooks directly.

Which Razorpay webhook event should move a deal to closed won?

For orders, order.paid is the clearest signal, and its payload includes both the order and the payment. For Payment Links, use payment_link.paid. payment.captured also works but carries only the payment entity. payment.authorized alone is not enough, because the payment may not be captured.

How does Razorpay know which HubSpot deal a payment belongs to?

It does not, unless you tell it. Write the HubSpot deal ID into the order or Payment Link notes (up to 15 key-value pairs) and a unique reference into receipt or reference_id when the payment is created. The webhook then carries those values back, and your receiver uses them to find the deal.

Can HubSpot verify Razorpay webhook signatures?

HubSpot's documentation for the "When a webhook is received" trigger describes no signature option. You can verify the HMAC SHA256 signature in a custom code action (Data Hub Professional or Enterprise) or in a small middleware service before updating the deal. Without verification, avoid treating the payload as confirmed revenue.

What happens if my endpoint is down?

Razorpay retries with exponential backoff for 24 hours after the event. If delivery keeps failing, it disables the webhook and sends an alert email; you must fix the error and re-enable it in the Dashboard. Payments made during the outage need reconciling through the Razorpay API.

How do I send Razorpay revenue to Google Ads?

Once paid deals are in the CRM, send them as offline conversions with the paid amount, matched to the click ID captured on the lead. Use the Razorpay payment or order ID as the order ID, so refunds can be retracted through conversion adjustments, which Google accepts for up to 54 days.

Do I need a developer for this?

Not for the simplest routes. Zoho Flow, the Zoho marketplace extension or Zapier need configuration, not code. A developer helps when you need signature verification, deduplication, refunds and ad-platform feedback under your own control, or when volume makes per-task automation pricing expensive.

Sources

  1. Webhooks, Razorpay Docs. Accessed 2026-10-18.
  2. Webhooks best practices, Razorpay Docs. Accessed 2026-10-18.
  3. Validate and test webhooks, Razorpay Docs. Accessed 2026-10-18.
  4. Payments webhook events, Razorpay Docs. Accessed 2026-10-18.
  5. Refunds webhook events, Razorpay Docs. Accessed 2026-10-18.
  6. Create an order, Razorpay API Docs. Accessed 2026-10-18.
  7. Zoho integration, Razorpay Docs. Accessed 2026-10-18.
  8. Razorpay for Zoho CRM, Zoho Marketplace (developed by Nexivo). Accessed 2026-10-18.
  9. Integrate Razorpay with Zoho CRM, Zoho Flow. Accessed 2026-10-18.
  10. Exposing Functions as REST APIs, Zoho CRM Developer Docs. Accessed 2026-10-18.
  11. Set "When a webhook is received" workflow triggers, HubSpot Knowledge Base. Accessed 2026-10-18.
  12. Custom code workflow actions, HubSpot Developers. Accessed 2026-10-18.
  13. CRM API: Deals, HubSpot Developers. Accessed 2026-10-18.
  14. Connect your Stripe account as a payment processor in HubSpot, HubSpot Knowledge Base. Accessed 2026-10-18.
  15. Payments: frequently asked questions, HubSpot Knowledge Base. Accessed 2026-10-18.
  16. Razorpay + HubSpot integrations, Zapier. Accessed 2026-10-18.
  17. Conversions API, Meta for Developers. Accessed 2026-10-18.
  18. About conversion adjustments, Google Ads Help. Accessed 2026-10-18.

A payment is the only closed-won you can trust.

Link it to the deal once, verify it properly, and every report and every bid downstream gets more accurate.

It starts with a 30-minute call. Pick a time below.

Choose a time

Prefer email?