How Indian Agencies Can Pass Screenshot API Costs Through to Clients
Compare client-owned and agency-managed screenshot API billing, understand the GST pure-agent conditions, and set up clear usage records and invoices.
Short answer: An Indian agency can arrange for the client to pay the screenshot API provider directly, operate a shared vendor account and charge for measured usage under its client agreement, or include a defined allowance in its service fee. If the agency wants to exclude a third-party payment from the value of its own supply under GST’s pure-agent rule, the arrangement must meet the statutory conditions; calling a line item a “reimbursement” does not establish that treatment.
For most agencies, the first decision is account ownership. A client-owned account gives the client direct vendor control and avoids the agency advancing vendor charges. An agency-managed account can simplify provisioning, but calls must be attributed to each client and the contract, records, invoice and tax treatment need to match the actual arrangement. Have an Indian GST professional review the specific supplier, contract and invoices.
1. Choose who owns and pays the vendor account
| Model | How it works | Benefits | Points to agree and document |
|---|---|---|---|
| Client-owned account | The client opens the provider account, supplies its billing details and pays the vendor. The agency configures the integration and can report usage. | Client retains vendor-level control; vendor charges do not have to be advanced by the agency. | Who creates keys, controls access, handles renewals and provides usage reports; whether the vendor can issue an invoice using the client’s correct legal entity and GSTIN. |
| Agency-managed account with usage billing | The agency runs calls through its account, records client or project usage, then invoices according to the agreed commercial arrangement. | Central provisioning and operations; clients need not each configure a provider account. | Metering source, rate, billing period, currency conversion, vendor taxes and fees, any markup or buffer, credits and refunds, authorization, liability and dispute process. Do not describe a charge as a pure-agent disbursement unless the arrangement qualifies. |
| Included allowance or bundle | The agency includes an agreed amount of screenshot API use in its own service fee and defines what happens when use exceeds it. | One predictable service price within the allowance. | Allowance, overage rate or change-control process, measurement and reporting, and what happens to unused allowance. Treat this as the agency’s pricing for its service; do not imply that bundled costs qualify for pure-agent treatment. |
Compare the options against five questions: who owns the vendor relationship; who is authorized and liable to pay; how each call will be attributed and audited; how the vendor handles tax invoices and GSTIN details; and what reconciliation, payment and client-support work the model creates. These are practical decision criteria, not claims about a typical agency practice.
2. Understand the GST pure-agent rule before calling a charge a reimbursement
Rule 33 of the CGST Rules allows specified expenditure or costs incurred by a supplier as a pure agent to be excluded from the value of that supplier’s own supply, subject to the rule’s requirements. The rule includes a condition that “the payment made by the supplier on behalf of the recipient of supply has been separately indicated in the invoice issued by the supplier to the recipient of service.” Separate indication is necessary, but it does not by itself make the exclusion available. Read the CBIC valuation rules.
The conditions include, in substance, that:
- The agency and client have a contractual arrangement for the agency to act as pure agent for the relevant payment.
- The agency does not obtain title to the procured service or use it for its own interest; the client is the recipient and uses the third-party service.
- The client is liable to pay the third party, and the agency is authorized by the client to make that payment on the client’s behalf.
- The client knows the third-party service is supplied by that third party.
- The agency separately indicates the amount on its invoice and recovers no more than the amount actually paid.
- The procured third-party service is additional to the agency’s own supply to the client.
The general valuation provisions also include incidental expenses and amounts charged by a supplier in respect of a supply. Therefore, do not assume an API cost recharge is outside taxable value simply because the agency passed on the vendor amount without a margin. Review section 15 of the CGST Act together with Rule 33 and the facts of the arrangement.
Practical rule: Keep the agency’s own service fee distinct from any amount claimed as a pure-agent disbursement, preserve the vendor invoice and client authorization, and have a GST professional determine whether the full set of conditions applies. If the facts do not support the exclusion, agree how the agency will price and invoice the usage under the applicable tax treatment.
3. Put the commercial terms in writing
Before making API calls for a client, make the agreement or statement of work answer these questions:
- Account and authority: Whose provider account is used? If the agency pays on the client’s behalf, what exactly authorizes it, and who is liable for the vendor payment?
- Metering: Which logs or provider records determine billable usage? Identify the client, project, environment and period for each usage record.
- Price basis: Is the client charged the provider’s actual amount, a stated rate, an allowance, an overage rate or a rate with a margin? State the unit and billing period.
- Currency and fees: Explain which currency is used, how conversion is calculated and treated, and whether vendor taxes, payment charges or other fees are included or billed separately.
- Credits and adjustments: Explain how provider credits, refunds, failed requests, disputed calls and later vendor adjustments affect the client’s bill.
- Limits and approval: Set a usage cap or approval threshold if appropriate, and say what happens when it is reached.
- Evidence and disputes: Specify what usage detail the client receives, how long the supporting records are retained, and the deadline and method for raising a billing dispute.
- Tax invoice treatment: State how the agency’s fee and any separate third-party amount will be presented, subject to the actual legal and tax treatment.
A contract can describe the commercial arrangement, but labels alone do not decide GST valuation. In particular, a “pass-through at cost” clause is not a substitute for checking the pure-agent conditions.
4. Build an auditable usage and billing workflow
- Assign a client identity before capture. Use an internal client/project identifier in the request workflow. Do not rely on memory or a later guess based on the target URL.
- Record each request outcome. Store timestamp, client and project, requested URL or an appropriately protected reference, output type, provider request identifier, usage or charge evidence, result status and any retry relationship.
- Reconcile to the vendor account. Match your internal ledger to provider usage and invoices for the same billing period. Investigate differences before invoicing clients.
- Apply the agreement’s adjustment rules. Handle credits, refunds, taxes, currency conversion, fees and any expressly agreed margin consistently.
- Prepare an understandable invoice. Show your agency service separately from usage charges. If claiming pure-agent treatment, separately indicate the amount and retain proof of the other required conditions, including authorization and actual cost.
- Keep the evidence together. Retain the client agreement and approvals, request-level usage records, vendor invoice, reconciliation and the issued client invoice under your records process.
For a provider that exposes response headers identifying outcomes and billing, retain those with the request log. For example, ScreenshotNeo identifies page outcomes and billing in its X-Page-Verdict and X-Billed headers. Confirm the meaning and retention needs for the provider you actually use.
5. Example: request and record a screenshot with ScreenshotNeo
Here is a minimal request an agency can run when it operates the ScreenshotNeo account. Put the API key in a secret manager or environment configuration, associate the request with an internal client/project record, and capture the response headers and usage details needed for reconciliation. Consult the ScreenshotNeo API documentation for available parameters and response behavior.
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,
)
with open("shot.webp", "wb") as f:
f.write(r.content)
print("page verdict:", r.headers.get("X-Page-Verdict"))
print("billed:", r.headers.get("X-Billed"))
const q = new URLSearchParams({
access_key: process.env.SCREENSHOTNEO_API_KEY,
url: 'https://stripe.com'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const pageVerdict = res.headers.get('X-Page-Verdict');
const billed = res.headers.get('X-Billed');
const bytes = Buffer.from(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', bytes));
console.log({ pageVerdict, billed });
This code illustrates capture and outcome logging. The request itself does not create client-level attribution or establish a GST treatment: your application must associate the call with the right client and reconcile it under the contract.
6. Keep invoices and payment tooling in their proper role
Invoicing software can help present line items, collect payment and track receivables, but a tool does not determine whether an API charge qualifies for pure-agent exclusion. Razorpay describes invoice fields for expenses, taxes, discounts and shipping, along with APIs, payment and receivables features. Check its current supported fields, product terms and suitability for your required GST invoice before relying on a particular workflow: Razorpay Invoices.
Stripe’s India Billing and Connect pages describe usage-based billing and platform payment structures. They are examples of billing models, not confirmation that a specific feature is available or suitable for every Indian agency. Verify current availability, eligibility, tax handling and fees for your account before adopting them: Stripe Billing pricing and Stripe Connect pricing.
Vendor invoice mechanics are provider-specific. AWS’s India tax guidance, for example, describes GST treatment and account GSTIN details for AWS purchases, including distinctions by supplier entity. That is an AWS-specific example, not a rule for all screenshot APIs. Check the actual provider entity, invoice and account settings for the account being used: AWS India tax guidance.
7. Screenshot API costs, performance and reliability
Choose a billing model that reflects what the provider actually charges and what the client has agreed to buy. Do not set an unsupported market benchmark or assume that a provider’s published plan price is the agency’s landed cost: taxes, currency conversion, payment fees, credits and the client contract can affect the amount. Recheck provider and payment-provider pricing before quoting it in a proposal.
- Reduce surprise usage: Set client or project limits, alert at thresholds, and review usage before the billing period closes.
- Prevent duplicate charges: Log retries and use provider-supported idempotency or request tracking where available. Decide in the contract how duplicate, failed and retried requests are handled.
- Make reconciliation possible: Keep request IDs and timestamps with usage records, and distinguish successful captures, failed loads, cache hits and other outcomes if the provider reports them.
- Protect credentials: Keep API keys out of browser code and client-visible repositories. Restrict access and rotate credentials under your security process.
- Account for rendering time: Page complexity, full-page captures, waits and output format affect response duration and operational capacity. Use appropriate timeouts, queue long jobs where supported, and avoid retry storms.
- Plan for client disputes: Make usage exports and the underlying vendor statement available to the people who reconcile and approve invoices, while protecting any sensitive URL or account data.
ScreenshotNeo offers caching with a chosen TTL, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, and a usage API. Its billing model states that only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads and cache hits cost nothing, and responses indicate outcome and billing. Use the current documentation to build those provider signals into your own reconciliation process.
8. Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server by Yorker Media. One GET request can return a PNG, JPEG, WebP or PDF. Here is the same one-call capture in cURL, Python and Node.js; replace the example target URL with the page you need. See the API documentation.
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}`);
- Cookie banners are accepted like a visitor and removed before capture; more than 60 known consent platforms, newsletter popups and chat widgets can be handled, and each cleanup step can be turned off.
- Bot checks and CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed. Response headers identify the page verdict and whether the request was billed.
- An MCP server provides
take_screenshot,get_page_infoandcapture_pdftools for Claude, Cursor and other MCP clients. - The free plan includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is on every plan.
Sign up for 1,000 free screenshots a month, with no card.
9. Troubleshooting common billing problems
| Problem | Likely cause | Fix |
|---|---|---|
| Client disputes an API line item | The agreement does not define the meter, period, price basis or adjustment policy, or the agency cannot show request-level records. | Share the agreed usage evidence and reconciliation; clarify the pricing and dispute process for future periods. |
| Agency calls a charge “reimbursement” but is unsure whether to add GST | The label is being treated as if it establishes pure-agent status. | Check every Rule 33 condition and section 15 valuation with an Indian GST professional. Do not conclude from the label or separate invoice line alone. |
| Vendor invoice has incorrect or missing client tax details | The account’s legal entity, billing address or GSTIN is incomplete or belongs to the agency rather than the client. | Check who is the vendor’s customer under that account, correct account details where possible and ask the provider how it handles invoice corrections. Do not assume another provider follows the same process. |
| Internal total does not match the provider bill | Period boundaries, currency conversion, vendor taxes, fees, credits, retries or unrecorded calls differ. | Reconcile records to the vendor’s invoice and usage export using request IDs, timestamps and the contract’s currency and adjustment rules. |
| Usage is attributed to the wrong client | Calls were logged without a client/project identifier, or shared credentials were used without an attribution layer. | Require client/project context at request creation, validate it before capture and prevent untagged calls from entering the production billing path. |
| Screenshot request times out or returns no useful image | The target page is slow, blocked, blank or requires more rendering time; retries may create extra operational load. | Inspect the provider’s outcome details, use suitable wait and timeout settings, cap retries and apply the contract’s treatment of failed requests. For ScreenshotNeo, consult the verdict and billing headers; failed loads and timeouts are not billed under its stated model. |
| Billing feature or fee differs from an old estimate | Provider pricing, eligibility or product features changed, or the account has different terms. | Check current provider and payment-provider pages and the terms applying to the actual account before quoting or invoicing. |
10. Frequently asked questions
Can I charge the client for API usage?
You can agree a commercial model for usage, such as direct client payment, measured agency billing or an included allowance. The contract and actual supply determine the tax analysis; this article cannot determine it for a particular transaction.
Should the client own the API account?
Prefer a client-owned account when direct vendor control and avoiding agency advances matter most. An agency-managed account can be operationally simpler where the client agrees to the arrangement and you can attribute and substantiate usage.
Can I pass API costs through as reimbursement without GST?
Not automatically. The pure-agent exclusion depends on the statutory conditions and facts, including recipient liability and authorization, actual-cost recovery and separate indication. Get case-specific advice.
Does every screenshot API issue a GST invoice to an Indian agency?
No general conclusion follows from another vendor’s policy. Check the actual provider entity, account relationship, invoice rules and the agency’s tax position.
Can I add a markup to a pure-agent amount?
The Rule 33 definition and conditions include recovery of only the actual amount paid. A markup is therefore a signal to review whether the amount can be treated as a pure-agent disbursement; have a GST professional assess the complete arrangement.


