Payment Gateway Integration Checklist
Steps an e-commerce engineering and operations team runs to integrate a payment gateway into a Shopify, BigCommerce, or custom storefront — from gateway selection and PCI scoping through sandbox testing, checkout build, and post-launch reconciliation.
Pre-Integration Preparation
-
Select the payment gateway provider
Compare candidates on processing rate, supported card brands and wallets, payout cadence, chargeback tooling, and 3DS2 support. Common picks for SMB DTC: Shopify Payments (Stripe under the hood) for Shopify, Stripe for headless, Braintree for PayPal-native flows, Adyen for international, Authorize.Net for legacy. Capture the decision with rationale so finance and CX can plan around fees and payout timing.
Collects list -
Open the merchant account and verify business identity
Submit EIN, articles of incorporation, beneficial ownership, and bank account for ACH payouts. Underwriting commonly flags supplements, CBD, firearms, alcohol, and high-ticket categories — confirm the gateway accepts your MCC before integrating.
-
Determine the PCI DSS SAQ scope
Hosted redirect typically qualifies for SAQ A. Embedded fields (Stripe Elements, Braintree Hosted Fields) are SAQ A-EP. Any direct card capture on your servers is SAQ D and requires a QSA. The hosting model decision below should match the SAQ you can realistically maintain.
-
Choose the checkout hosting model
Hosted redirect (gateway-hosted page) keeps PCI scope minimal but degrades on-brand experience. Embedded tokenized fields keep card data off your servers via iframe-isolated inputs. Direct API gives full UI control but pulls your servers into PCI scope and requires annual QSA assessment.
Collects list -
Provision sandbox credentials
Generate publishable and secret test keys; never commit these to the repo. Store in the secrets manager (1Password, AWS Secrets Manager, Vault) and grant access to engineering only.
Technical Integration
-
Install the gateway SDK or app
For Shopify, install the gateway's certified app from the App Store. For headless or custom platforms, pin the official SDK version (stripe-node, braintree-node, etc.) and avoid wrappers without security review.
-
Configure API keys in the secrets manager
Inject keys via environment variables at runtime. Separate test and live key sets per environment. Restrict live key access to production deploy roles only — a leaked secret key in a public repo is the most common payments incident.
-
Build the charge, capture, and refund handlers
Implement idempotency keys on every charge call so retries don't double-charge. Store the gateway's transaction ID, last-4, brand, and AVS/CVV result on the order. Refund logic must support partial refunds and reference the original transaction.
-
Configure webhook endpoints with signature verification
Subscribe to charge.succeeded, charge.failed, charge.dispute.created, and refund.created at minimum. Verify webhook signatures on every request — unsigned webhooks are a common spoofing vector. Return 2xx within 3 seconds or the gateway will retry and queue duplicates.
-
Run sandbox transactions across card brands
Test Visa, Mastercard, Amex, Discover, and JCB success and decline scenarios using the gateway's test card numbers. Cover 3DS2 challenge, AVS mismatch, CVV decline, insufficient funds, and expired card. Confirm the order state machine handles each correctly.
Collects list -
Debug failing sandbox cases with gateway support
Open a support case with the gateway including request/response logs, timestamps, and the test card used. Re-run the failing scenarios after the fix and document the resolution before proceeding to checkout build.
Checkout Experience
-
Build the checkout page with tokenized inputs
Use the gateway's drop-in or Elements/Hosted Fields so card data never touches your DOM. Match brand styling but resist over-customizing — every CSS override is a potential checkout regression. Include the trust badges customers expect (Visa, Mastercard, lock icon).
-
Verify mobile checkout on iOS and Android
Mobile is 60-70% of DTC traffic. Test on real iOS Safari and Android Chrome — emulators miss keyboard behavior, autofill, and the iOS numeric keypad for card fields. Confirm the address autocomplete (Google Places) doesn't break on small screens.
-
Write decline and 3DS challenge messaging
Generic "Payment failed" loses sales. Distinguish soft declines (insufficient funds — retry with same card), hard declines (suspected fraud — try another card), AVS mismatches (re-enter address), and 3DS challenges (complete bank verification). Never expose raw gateway error codes to the shopper.
-
Add Apple Pay, Google Pay, and Shop Pay options
Wallets routinely lift mobile conversion 5-15%. Apple Pay requires a verified domain file at /.well-known/apple-developer-merchantid-domain-association. PayPal and Buy with Prime are worth A/B testing for the segments they reach.
-
Implement the post-payment redirect and confirmation
Don't rely on the redirect to mark the order paid — the customer may close the tab. The webhook is the source of truth; the thank-you page is a UX nicety. Fire the GA4 purchase event and Meta CAPI conversion server-side from the webhook to dodge ad-blocker loss.
Security and Compliance
-
Enable fraud rules and 3D Secure 2
Turn on Stripe Radar / Braintree Advanced Fraud / Adyen RevenueProtect with sensible defaults. Configure 3DS2 to trigger on risk score, not on every transaction — full 3DS on low-risk orders crashes conversion. Block known-bad IPs and velocity-limit by email and BIN.
-
Confirm TLS 1.2+ across the checkout domain
Run an SSL Labs scan against the checkout subdomain; fix any A- or below grade before launch. Disable TLS 1.0 and 1.1 — PCI DSS prohibits them. Verify HSTS is set on the storefront and checkout.
-
Tokenize stored payment methods
For subscriptions or saved-card flows, store only the gateway's payment method token (pm_..., or vault ID). Never store PAN, CVV, or magnetic stripe data. Enable the gateway's network token / account updater so expired and reissued cards keep working.
-
Schedule the quarterly ASV scan
SAQ A-EP and SAQ D require quarterly external vulnerability scans by an Approved Scanning Vendor (Trustwave, SecurityMetrics, ControlScan). Calendar the scans now so the first one isn't 90 days overdue at the first PCI attestation.
-
Document the PCI SAQ for the acquirer
Complete the SAQ matching the hosting model selected, sign the Attestation of Compliance, and submit to the acquiring bank. Store with the dataflow diagram, network diagram, and policy docs the assessor will request annually.
-
Engage a QSA for the SAQ D assessment
Direct API integrations require a Qualified Security Assessor for the on-site assessment plus penetration testing. Budget 8-12 weeks and $30-100K depending on environment scope. Most SMBs avoid this path — confirm the hosting decision is worth the cost.
Launch, Reconciliation, and Monitoring
-
Run a full end-to-end live transaction
Place a real $1-5 order with a personal card before opening checkout to traffic. Confirm the charge in the gateway, the order in the OMS, the webhook fired, the confirmation email sent, and the funds appear in the next settlement. Refund yourself afterward.
Collects list -
Configure alerts for failures and disputes
Page on payment-success-rate drops below threshold (e.g., 90% over 15 minutes), new chargebacks, and webhook delivery failures. Route to Slack #payments-alerts and PagerDuty for off-hours. A silent gateway outage during a Meta promo is a five-figure mistake.
-
Reconcile gateway settlement to the bank deposit
Match the gateway's daily settlement report (gross, fees, refunds, chargebacks, reserves) against the ACH deposit hitting the bank. Hand the reconciliation template to bookkeeping (QuickBooks, Xero) so the first month-end close runs cleanly.
-
Review the chargeback workflow with CX
Train Gorgias / Zendesk agents on the dispute response window (typically 7-21 days) and what evidence wins: AVS match, CVV match, IP geolocation, delivery confirmation, customer communication. A chargeback rate above 1% threatens the merchant account itself.
-
Sign off on go-live
Director of E-commerce or COO confirms launch readiness across engineering, finance, and CX. Capture the decision, any deferred items, and signature for the audit trail.
Collects list Collects paragraph Collects signature
Use this template
Copy it to your account, customize the steps, and run it with your team in minutes.
Browse hundreds of free templates across every team and industry.
Back to template libraryRelated templates
More workflows your team can run.
Run Payment Gateway Integration Checklist with your team
Customize the steps, assign roles, set a schedule, and keep a complete record for every run.