ScreenshotNeo

BlogHow-to

How to Capture a Webpage Screenshot from a Razorpay Payment Notification with Zapier

Build a Zapier workflow that responds to Razorpay payment events, captures a specific webpage, and sends the image to its next destination.

By the ScreenshotNeo team4 October 202610 min read

Direct answer: Create a Zapier workflow with a Razorpay payment trigger (or a Razorpay webhook sent to Webhooks by Zapier), a screenshot action such as GetScreenshot, and a destination action such as email or file storage. The screenshot action needs a specific, accessible webpage URL. A payment notification signals that an event happened; it does not, by itself, tell Zapier which page to capture.

This is useful when a payment event should produce a visual record of a page, such as a public receipt, order status page, or campaign landing page. It does not automatically capture the notification message or the customer’s checkout screen. For a private or customer-specific page, decide how the workflow can securely access the right page before building the Zap.

1. Choose what the payment event means

Zapier lists native Razorpay triggers such as Payment Captured, Payment Link Paid, Payment Page Paid, Invoice Paid, and Payment Failed. Choose the event that matches the screenshot you need. For fulfillment or other actions that depend on successful payment, Razorpay advises waiting for a captured payment; an authorized payment is not the same as a captured one. See [Zapier’s Razorpay integration](https://zapier.com/apps/razorpay-1/integrations/webhook) and [Razorpay’s webhook guidance](https://razorpay.com/docs/webhooks/).

A Razorpay webhook is an asynchronous server-to-server event notification. It is different from callback_url, which is a checkout parameter for redirect or WebView flows. Razorpay says not to use callback_url as a replacement for webhooks when tracking payment status server-side. Webhooks may arrive near real time, but if an immediate payment state is critical, supplement the notification with an API fetch according to Razorpay’s guidance.

2. Decide which webpage to capture

Before configuring the screenshot step, identify the actual target URL. It can be a fixed public page, or a URL your own system determines from an order or payment record. The integration listing establishes that the screenshot action takes a Website URL; it does not establish that Razorpay’s event payload automatically includes the page you intend to capture.

  • Same page for every event: enter the page URL directly in the screenshot step.
  • Page varies by order: map a URL field from your own order system if the trigger provides it, or use a preceding step to look up the order and construct the intended URL.
  • Customer-specific or authenticated page: check whether the screenshot service can access it and whether exposing any credentials or customer data in Zap history is acceptable. Do not assume an experimental login-bypass field will work for a particular site.
  • One component only: use an element screenshot action and provide the CSS selector for that component, if the action supports it.

Use a stable URL that resolves to the intended page when the Zap runs. A payment event and a screenshot may occur at different times, so a page that exists only briefly or depends on a browser session may not be capturable later.

3. Build the Zap with a native Razorpay trigger

  1. In Zapier, create a Zap and select Razorpay as the trigger app.
  2. Choose the event that matches your use case, such as Payment Captured or Payment Link Paid.
  3. Connect the relevant Razorpay account, configure any available trigger fields, and test the trigger with a suitable event.
  4. Add GetScreenshot’s Take Website Screenshot action. Map the target webpage URL into its required Website URL field.
  5. Choose whole-page capture or, if available and appropriate, the element action with a CSS selector. Set width and full-page behavior for the page and destination you need.
  6. Add a destination action, such as email or another supported Zap action, and map the screenshot output from the previous step.
  7. Test the full workflow using a test event. Confirm that the URL is the intended one and that the destination receives an image before turning the Zap on.

The GetScreenshot listing describes screenshot output that can be used by later Zap steps and lists an email action. Check the current action fields and output in your Zapier account, because available fields and account options can vary. The listing says a Starter plan is needed for Zaps with three or more steps; check the current plan requirements if your workflow needs a lookup or other extra step. See [GetScreenshot’s Zapier integration](https://zapier.com/apps/webhook/integrations/getscreenshot).

4. Use a Razorpay webhook and Catch Hook instead

Use Webhooks by Zapier’s Catch Hook if you want to configure Razorpay to send events to Zapier directly, or if the native trigger does not fit the event you need. Zapier’s standard Catch Hook parses the request body. Catch Raw Hook is available when you need the raw request data and headers. Refer to [Zapier’s webhook trigger instructions](https://help.zapier.com/hc/en-us/articles/8496288690317-Trigger-Zap-workflows-from-webhooks).

  1. Add a Webhooks by Zapier trigger and choose Catch Hook. Use Catch Raw Hook only if you need raw request details or headers.
  2. Copy the unique hook URL Zapier generates.
  3. In Razorpay’s dashboard, configure a webhook endpoint with that URL and select the payment events you want. Razorpay documents separate Test and Live mode webhook setup; configure and test the mode you intend to use.
  4. Send a suitable test event, then check that Zapier receives the expected parsed fields.
  5. Add the screenshot action and map a real target webpage URL. Add the destination action and test the complete sequence.
  6. Before relying on it, review the Zapier and Razorpay event data and handling for your workflow. Treat the hook URL as a workflow endpoint and avoid exposing it unnecessarily.

Razorpay webhook payloads are HTTP POST JSON. If you build a direct webhook receiver outside Zapier, follow Razorpay’s current instructions for verifying webhook signatures; do not trust arbitrary incoming requests as proof of a payment. A Zapier Catch Hook workflow is not a substitute for implementing signature verification in your own receiver.

5. Choose screenshot and workflow options

Decision Choose this when Check
Native trigger or Catch Hook The needed event is available as a Razorpay trigger, or you need to configure the webhook endpoint directly. Event availability, parsed versus raw payload needs, and test/live mode.
Full page or element You need the whole document, or just a known page component. For element capture, provide a selector that exists when capture runs.
Fixed or mapped URL The same page is always relevant, or each event points to a different page. Verify that the mapped value is a complete, accessible webpage URL.
Return image or send it onward A later Zap action should use the image, or the result should go directly to an available destination such as email. Test the screenshot output field and the destination’s accepted input.
Public or authenticated target The page is public, or access depends on a session or credentials. Do not assume a login-bypass option works. Consider what sensitive information appears in task data or Zap history.

GetScreenshot’s Zapier listing also describes an HTML-to-image action. That is a different path when your input is HTML rather than a webpage URL. See [Zapier’s HTML to Image integration listing](https://zapier.com/apps/html-to-image/integrations/webhook) for its current action details.

6. Test the workflow before relying on it

  1. Use a test payment or webhook event in the correct Razorpay mode.
  2. Inspect the trigger data and confirm which event fired and what URL-related fields, if any, are present.
  3. Check the screenshot action’s Website URL value. If it is blank or points to the wrong page, fix the mapping or add the lookup your workflow needs.
  4. Confirm that the page is reachable by the screenshot service and that the image shows the intended page or element.
  5. Confirm that the next action receives the image in the expected format.
  6. Test relevant edge cases, including failed payments if subscribed, missing order data, a page that is unavailable, and repeated notifications.

These are setup checks, not a claim that a particular Zap or Razorpay account has been tested. Keep payment-state decisions tied to Razorpay’s event semantics and your own application’s verification requirements.

7. Reliability, speed, and cost considerations

  • Asynchronous delivery: a webhook is an event notification, not a guarantee that a screenshot is ready at the moment a customer completes checkout. For time-critical payment status, use the API verification approach Razorpay recommends.
  • Capture timing: if the target page is generated after the payment event, ensure it has time to become available before the screenshot step runs. Prefer a stable page URL over a transient browser-only state.
  • Workflow length: a lookup step may be needed to obtain an order-specific URL, and each extra step affects the Zap’s plan requirements. The GetScreenshot listing notes a Starter plan requirement for three or more Zap steps; verify current terms in your account.
  • Duplicate or repeated events: consider whether a repeated payment notification could create duplicate captures or downstream messages. Use the event and order identifiers available to your workflow to make downstream handling safe where needed.
  • Access and privacy: avoid putting secrets into a public page URL. Restrict access to webhook URLs and review which payment or customer fields are stored in Zap history and destination systems.
  • Usage charges: check the current Zapier plan and any screenshot service plan before scaling. The cited integration pages do not establish a per-capture price or guarantee a particular capture time.

8. Common errors and fixes

Symptom Likely cause Fix
The screenshot step has no URL The payment event did not supply the target page URL, or the field was not mapped. Enter a fixed URL or retrieve/build the page URL from your own order data before the screenshot action.
The screenshot is of the wrong page A field with a different meaning was mapped, or a URL was constructed incorrectly. Inspect the tested trigger and lookup outputs, then use the exact intended webpage URL.
The webhook does not trigger the Zap The Razorpay endpoint, selected event, or Test/Live mode may not match the event being sent. Check the webhook settings and mode in Razorpay, then send a matching test event and inspect Zapier’s hook step.
Zapier receives unexpected or unparsed data The selected trigger type does not match the payload access needed. Use Catch Hook for parsed request bodies or Catch Raw Hook when raw data and headers are required, following Zapier’s current instructions.
The capture is blank or incomplete The page may not be publicly reachable, may load content late, or the selected element may not exist. Check the URL and page availability, use a stable page, and verify the selector against the rendered page. Consult the screenshot action’s available wait and capture options.
The downstream step cannot use the result The screenshot output may be mapped to the wrong destination field or the destination may expect a different input. Inspect the screenshot action’s test output and map the image field accepted by the next action.
The workflow runs for an authorized payment when capture was expected Authorization and capture are different payment states. Choose the captured-payment event when the workflow requires captured funds, and follow Razorpay’s payment-state guidance.
A direct webhook receiver accepts untrusted requests The application treats a POST as proof without verifying its signature. Implement Razorpay’s current signature-verification instructions in your receiver.

Or skip the browser setup

If you already know the page URL, [ScreenshotNeo](https://screenshotneo.com) can capture it with one GET request. Add a Webhooks by Zapier action that makes a GET request to the API and pass the payment/order page URL and your API key as query parameters. Keep the key private and use the response as the screenshot output for a following Zap action. See the [ScreenshotNeo API documentation](https://screenshotneo.com/docs/) for request options.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Replace the example URL with the actual page you want the Razorpay workflow to capture. Cookie banners, newsletter popups, and chat widgets are removed before the shot; each cleanup step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits cost nothing, with page verdict and billing information in response headers. ScreenshotNeo also has an MCP server with screenshot tools for AI agents. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for 1,000 free screenshots a month, no card required.

FAQ

Does a Razorpay payment notification contain the page to screenshot?

Do not assume it does. The screenshot action needs a Website URL. Supply a fixed URL or obtain the correct one from your own order or application data.

Can I capture the payment notification itself?

This workflow captures a webpage URL. It does not automatically turn the event notification payload into a webpage. If you need a visual page, identify or build a page that represents the information you want to capture.

Should I use Payment Authorized or Payment Captured?

Choose the event that matches your use case. For fulfillment, Razorpay advises waiting for a captured payment; authorization alone is not capture.

Can I use this for a private customer page?

Only if the screenshot action can access that page through a supported method. Check the action’s current fields and protect credentials and personal data; do not rely on an experimental login option without verifying it for your target.