- HOME
- Payment processing
- Payment gateway integration checklist for developers
Payment gateway integration checklist for developers
![]()
Payment gateway integration checklist for developers
Payment gateway integration connects a website, app, or commerce platform to a gateway so customer payments can be authorised, captured, refunded, and reconciled. The first decision is not which endpoint to call. It is rather, which integration model your merchant flow can safely carry for the next few years.
That choice affects checkout control, Payment Card Industry Data Security Standard (PCI DSS) scope, failure handling, and the data your finance team receives after settlement. A simple redirect can be right. A direct API build can also be right, but only when the engineering and compliance work are intentional.
Start payment gateway integration by choosing the right model
There are four practical models that developer teams can choose from.
Hosted checkout redirects the customer to a gateway-hosted page and then back to your success or failure URL. The fastest path for most simple ecommerce flows, and usually the lowest PCI scope. Pick this when speed to launch and minimal scope matter more than in-page branding control.
An embedded checkout widget keeps the customer on your page while sensitive payment data flows directly from the browser to the gateway. Pick this when in-page checkout continuity matters and the team can take on the wider PCI scope that an embed introduces.
A direct API integration gives your server deeper control over payment creation, status checks, refunds, and custom flows. Reserve this for marketplaces, split payments, and highly customised flows where the engineering and compliance investment is intentional.
A plugin or CMS module, such as a WooCommerce payment plugin, is usually the shortest path when the merchant already runs on a supported platform.
If your team is separating gateway APIs from checkout UI, the Academy article on understanding payment APIs is useful background.
Hosted checkout vs embedded checkout
The hosted-versus-embedded choice is where many teams over-optimise for brand control and under-estimate compliance work.
Dimension | Hosted checkout | Embedded checkout widget |
PCI scope | Usually lowest, often SAQ A | Usually broader, often SAQ A-EP |
Branding control | Limited to gateway page settings | Higher, because checkout stays in-page |
Customer trust | Clear handoff to a payment page | Less visible handoff, but more responsibility on the merchant page |
Conversion impact | Simple and reliable for standard flows | Better continuity when the checkout page is already well designed |
PCI SSC's document library is the source of truth for current PCI DSS self-assessment expectations. A Self-Assessment Questionnaire (SAQ) is the form that validates how a merchant handles card data: SAQ A covers the lowest-scope setups such as hosted checkout, while SAQ A-EP covers the wider scope an embedded widget introduces. Treat the SAQ mapping as a compliance starting point, not legal advice; your acquirer or compliance team should confirm the final scope.
Plan for payment regulations in India
For Indian merchants, integration planning has to account for RBI and NPCI rules. The RBI Payment Aggregator Master Direction sets operational and security expectations for payment aggregators and their merchant ecosystem. RBI's card-on-file tokenisation circular matters if your flow stores or reuses card credentials; merchants should not store full card numbers, CVV, or expiry data outside the allowed tokenisation framework.
If UPI is enabled, your integration has to handle UPI-specific states the customer can land in: collect-request timeouts, mandate authorisation flows for recurring payments, refund acknowledgements that can arrive minutes after the original payment, and PSP-routed responses that look different from a card response. The NPCI UPI circulars document the operating framework; your gateway abstracts most of it, but product and engineering teams still need to plan for the customer-visible states each event produces.
Test beyond successful transactions
Sandbox testing should cover more than one successful card payment. Before live keys are used, run successful payments for every enabled method, failed authorisations, UPI timeouts, full and partial refunds, duplicate payment attempts, and webhook retries.
Also test uncomfortable states: the customer closes the browser after authorisation, the gateway response times out, the refund succeeds after your first status poll fails, or a webhook arrives after the customer has seen a failure page. These cases usually become finance tickets and support escalations.
Build webhooks for retries and duplicate events
Webhooks are not notification emails for your backend. They are the event contract that tells your system when a payment succeeded, failed, was refunded, or moved into dispute.
Every webhook endpoint should verify signatures before processing, store processed event IDs, respond quickly with a 2xx status, and push heavier work to an asynchronous job. Gateways retry failed deliveries — sometimes for hours — so duplicate handling, endpoint reliability, and retry-safe processing are non-negotiable.
Idempotency is the part developers should not postpone. If the same `payment.succeeded` event arrives twice, your order status, invoice, wallet balance, and settlement record should not change twice.
Where Zoho Payments fits the workflow
Zoho Payments supports the same pattern-first path this checklist follows. Teams integrating in India can start with hosted checkout or the embedded widget, build deeper flows with the server and mobile SDKs, and wire events through signed, verified webhooks. Its developer documentation covers sandbox testing with UPI, card, and net banking test values, a WooCommerce plugin, and a go-live checklist, so the workflow stays consistent from first integration to production: choose the checkout model, wire events, test the sandbox, and connect payment data back into your finance workflow.
Go-live checklist
The article so far has been prose because most integration decisions deserve it. Go-live is the exception: it is the one moment where discrete verification beats narrative. Before switching to production keys, confirm every item below:
PCI DSS scope is confirmed for the chosen model.
Sandbox tests cover success, failure, refund, partial refund, timeout, and duplicate-event cases.
Webhooks are signed, verified, idempotent, and monitored.
Reconciliation reports are mapped to orders, invoices, refunds, and bank credits.
Error logging and alerting are in place for failed API calls and webhook delivery failures.
Customer communication templates are ready for payment success, failure, refund, and dispute states.
Merchant activation, UPI, and card-flow requirements are complete for the India setup.
Conclusion
The right payment gateway integration is not the one that reaches production fastest. It is the one whose checkout pattern, PCI scope, sandbox coverage, webhook design, and reconciliation flow still make sense after transaction volume grows.
Frequently Asked Questions
Choose the integration pattern first: hosted checkout, embedded widget, direct API, or plugin. Then create gateway credentials, build the payment initiation flow, configure success and failure redirects, verify webhooks, test in sandbox, and move to live keys only after reconciliation and error handling have been checked.
Hosted checkout redirects the customer to a gateway-hosted payment page. An embedded widget keeps checkout inside the merchant's page while payment data is submitted directly to the gateway. Hosted checkout usually has lower setup and PCI scope; embedded checkout gives more control over the customer experience.
They are not always mandatory for accepting a payment, but they are strongly recommended for a production integration. Webhooks give your backend reliable event updates for success, failure, refunds, disputes, and delayed state changes that a redirect alone may miss.
