Home

Solutions

PCI DSS 6.4.3 solution

Payment page script inventory that stays operational

Turn the scripts that actually run in checkout into a governed register: source, owner, business purpose, authorization status, integrity method, review date, and evidence trail.

For compliance owners, AppSec, e-commerce engineering, and QSA-facing teams that need more than a one-time spreadsheet.

What the register should answer

Which first-party and third-party scripts execute in each payment flow?

Who owns and authorizes each script, and why is it necessary?

How is integrity or authenticity controlled and when was it last reviewed?

What changed since the approved state and how was the change handled?

Updated: July 26, 2026

Review basis

Reviewed against PCI DSS v4.0.1 and the PCI SSC payment-page security guidance. Examples are implementation aids, not Cartelta API output or an assessor-approved control design.

Observed inventory

Start from the rendered page, DOM, tag manager, and loaded third-party sources rather than a planned asset list.

Ownership and justification

Map every entry to an accountable owner, business purpose, authorization state, and review cadence.

Reviewable evidence

Keep snapshots, decisions, exceptions, and change history together for internal and QSA review.

Define the inventory population before collecting URLs

An inventory is only complete relative to a defined population. Start with one payment journey and list the states that can alter what the browser loads: locale, device layout, consent choice, authenticated or guest checkout, payment-provider response, validation error, and tag-manager branch.

For each state, record the page URL or route, observation method, test time, browser context, and whether the state was reached successfully. This prevents a clean-looking register from hiding an untested checkout branch.

  • Treat inline code, modules, workers, tag-manager children, and scripts inserted after user interaction as discoverable objects.
  • Record the loader chain, not only the final URL, so the team can identify which system or rule introduced the script.
  • Keep failed or unreachable states in the coverage record with an owner and follow-up date rather than silently omitting them.

Why a static spreadsheet fails

Payment pages change outside the main release stream. Marketing tags, consent tooling, payment widgets, CDN resources, and tag-manager rules can alter the scripts seen by a customer without appearing in the application repository.

A useful inventory therefore starts with observed browser-side behavior and is reconciled with the approved register. The register remains a governance record; observation supplies the evidence that it still matches reality.

Minimum data model for every script

A URL alone is not enough to support requirement 6.4.3. Each entry needs enough context for a reviewer to decide whether it is expected, authorized, necessary, and controlled.

  • Payment flow and page where the script executes.
  • First-party or third-party source, loader, and tag-manager relationship.
  • Business purpose, technical owner, approving role, and authorization date.
  • Integrity or authenticity method, current review status, and exception reference.
  • First seen, last seen, last changed, and linked evidence or incident record.

Select an integrity method that fits the script

Subresource Integrity can be effective for a stable cross-origin resource whose exact bytes and delivery headers are controlled, but it is not a universal answer. Vendor scripts that change in place, inline scripts, dynamically assembled bundles, and loader chains need a documented alternative or complementary method.

The record should name the selected method and why it is suitable: controlled build and release hash, digital signature, restrictive source and nonce policy, provider assurance, monitored content change, or a combination. A label such as “covered by CSP” is not enough unless the organization can explain the policy, deployment mode, exceptions, and evidence.

Make the register part of change management

A new or changed script should enter the same workflow as a production change: request, owner, justification, technical review, approval, release, and post-release verification. Emergency changes need an explicit retrospective review rather than a permanent undocumented exception.

The inventory should also have a periodic control owner. That owner reviews stale entries, scripts without a responsible team, inactive integrations, and differences between the approved state and the live payment flow.

Use control tests instead of trusting the row count

A large register can still be ineffective. Test whether a controlled new script is discovered, whether an unowned record is blocked from becoming approved, whether an expected release updates the right fields, and whether a removed integration is retired without deleting its history.

A useful completion criterion is that an independent reviewer can select any observed script and find the journey, loader, owner, necessity, approval, integrity decision, current status, and source evidence without asking the person who built the spreadsheet.

Working artifact

Build one inventory record that survives review

The template below is deliberately more detailed than a list of script URLs. Populate it from an observed payment-page state, then make the owner and approver confirm the business need and integrity decision.

Definition of done

A governed register for one payment journey, reconciled with the live browser state, with no unexplained scripts and a reproducible evidence reference for every approval or exception.

01

Enumerate meaningful page states

List checkout variants, consent branches, provider responses, locales, and interactions that can change the script population.

02

Observe the script and its loader

Capture the final resource, inline or external type, parent loader, origin, first observation, and the page state in which it appeared.

03

Resolve ownership before approval

Identify the technical and business owners. Treat “unknown” as an exception requiring investigation, not as a completed inventory value.

04

Document necessity and integrity

Explain why the script belongs on the payment page and record a method appropriate to its delivery model, including limitations and exceptions.

05

Reconcile after change

Compare the observed population after releases and material third-party changes, then preserve the approval, removal, or incident decision.

Example governed record

Field names are illustrative and intentionally exclude payment values, cookies, tokens, and customer identifiers.

{
  "record_id": "script-042",
  "journey": "checkout-card-entry",
  "page_state": "default-consent",
  "observed_url": "https://cdn.example.test/payment-sdk.js",
  "loaded_by": "tag-manager:container-7",
  "purpose": "Render hosted payment fields",
  "technical_owner": "payments-engineering",
  "business_owner": "checkout-product-owner",
  "authorization": {
    "status": "approved",
    "reference": "CHG-1842"
  },
  "integrity_method": {
    "method": "provider-controlled delivery plus monitored change",
    "reference": "CTRL-643-07"
  },
  "last_reviewed": "2026-07-26",
  "evidence_reference": "EVID-643-2026-07"
}

Payment-page script inventory template

CSV columns for journey, state, loader, ownership, authorization, integrity, review, exception, and evidence references.

CSV · UTF-8 · includes one clearly marked example row

Download

The file is a neutral implementation template. Adapt field ownership, integrity methods, retention, and approval states to the assessed environment.

Operational inventory workflow

The sequence keeps browser observation, business authorization, and audit evidence connected.

01

Observe

Capture scripts and loaders from the actual payment journey.

02

Classify

Identify source, purpose, page, owner, and dependency.

03

Authorize

Record approval, justification, and the integrity approach.

04

Compare

Check the live page against the approved register and baseline.

05

Review

Resolve exceptions and retain the decision and supporting evidence.

Illustrative inventory fields

The example shows the level of context expected from the register. It is not a claim about a specific customer environment.

#Observed itemPurpose and ownerAuthorizationControl and review
01First-party checkout bundleCheckout validation — e-commerce engineeringApproved release referenceRelease hash/signature; verify after deployment
02Payment provider SDKHosted payment component — payments teamProvider and version approvedSource allowlist plus observed-version review
03Tag-manager loaded analyticsConversion measurement — marketing ownerDocumented necessity and scopeContainer governance plus live-page comparison
04Inline checkout bootstrapInitialize first-party payment flow — checkout platformApproved application releaseControlled build output plus baseline comparison
05Unknown dynamic child scriptPurpose and owner unresolvedNot approved; exception openedInvestigate loader, restrict if needed, retain decision

Exact fields, integrity methods, and approval roles must match the assessed environment and the organization's own control design.

Inventory is evidence, not automatic compliance

Cartelta can support observation, ownership mapping, change history, and evidence preparation. The organization and its assessor remain responsible for scope, control design, approvals, operating effectiveness, and the final compliance conclusion.

Script inventory questions

No. The review needs to consider scripts loaded and executed in the payment page context, including third-party sources and dynamically loaded tags within the assessed scope.

Yes, but it should be reconciled with what the browser actually loads. Manual records become unreliable when tag managers, widgets, CDN resources, and third-party dependencies change independently.

Document that delivery behavior and select controls that can still reveal or constrain unauthorized change. The answer may combine provider governance, source restrictions, observed-content monitoring, release coordination, and exception handling; SRI is not practical when authorized bytes change unpredictably.

It should state the concrete payment-page function, why the function is necessary in that journey, who accepts the risk, and what would break or change if the script were removed. Generic text such as “required by business” does not help an operator or assessor evaluate necessity.


Continue the implementation

PCI DSS 6.4.3 practical guide

Understand inventory, authorization, justification, and integrity as one control.

Open

Payment page change detection

Compare the approved state with what customers receive in the browser.

Open

Audit evidence workflow

Map inventory decisions and changes to artifacts for internal and QSA review.

Open

Validate one payment flow first

Use a focused pilot to compare the approved inventory with the scripts that actually execute in checkout.

Discuss a script inventory pilot