Shopify app security / Developer guide
What Is a Shopify App Incident Report?
A Shopify app Incident Report is an evidence-led account of a security incident and the response to it. It should explain the timeline, affected systems, established impact, investigation, containment, remediation and remaining uncertainty. Follow your own Shopify request for required details. It is not the same as a VAPT report and should not turn assumptions into facts.
Define the incident and the report audience
Begin with the app identity, the reported issue, detection time and the report’s purpose. State whether the incident is confirmed, suspected or still being investigated. Describe who prepared the report and which evidence they reviewed. A governance reviewer and a developer may need different levels of detail, so separate the summary from sensitive technical appendices.
A report should identify its version and the period it covers. If an investigation is continuing, label the document preliminary rather than calling it final. Explain whether the app listing, production systems or particular merchant functions were affected. Do not include personal customer records merely to make the document appear comprehensive; use minimized and redacted evidence.
Build a timeline that can be checked
Use one explicit timezone and distinguish event time from the time your team learned about the event. Include the first report, investigation start, containment, credential rotation, fixes, deployment and verification. Link important statements to log exports, tickets, commits or other evidence references rather than relying entirely on retrospective recollection.
Missing logs should be identified as a limitation. A gap between deployment and detection does not establish that exploitation occurred throughout the gap, nor does the absence of a log entry establish that nothing happened. Keep conclusions proportional to what the records actually capture. Preserve original records so a reviewer can request clarification without the team recreating them from memory.
Explain root cause and impact separately
Root cause describes why the control failed. Impact describes what that failure allowed and what evidence shows actually occurred. For example, a missing server-side ownership check may permit cross-store access in an authorized test. That is different from proving historical extraction of merchant data. Present those conclusions separately and use careful language.
Document the affected components, roles, data categories and time window where established. State whether similar endpoints or jobs were examined. If the root cause is not known, explain the investigation plan and current constraints. Avoid unsupported statements such as “no customers affected” when there is insufficient telemetry to evaluate that question.
Document containment, remediation and verification
Containment reduces ongoing exposure; remediation fixes the underlying weakness. Record both, including dates and owners. Disabling an endpoint may contain the issue without fixing the authorization model. Rotating a leaked token may be necessary while the source of the leak still needs correction. Explain what each action accomplishes and what remains unresolved.
Link remediation to verification evidence. A deployment record proves that code changed, not that the vulnerability is gone. Retesting should identify the environment and version, original finding and current status. Explain any partial fix, residual risk or scope exclusion. A report that clearly records an unresolved issue is more trustworthy than an unsupported “all secure” conclusion.
Coordinate the Incident Report with the VAPT package
If Shopify requests both reports, use the Incident Report for the event narrative and the VAPT report for scoped security testing. Cross-reference shared findings without duplicating or contradicting conclusions. A VAPT conducted after remediation can evaluate current controls but cannot reconstruct missing historical evidence on its own.
Prepare a cover note listing documents, versions and outstanding questions. Use the submission channel in the notice and protect the full reports with appropriate access controls. Scantra can discuss investigation and documentation support after reviewing your notice. The report supports Shopify’s review; it does not guarantee approval or replace advice on legal notification responsibilities.
A report fact-check before submission
Read each important sentence and ask whether it is a fact, inference, hypothesis or action plan. A fact should have an evidence reference. An inference should explain its reasoning and limits. A hypothesis should remain labelled and should not appear as an established root cause in the summary. An action plan should identify an owner and milestone, not be described as work already completed. Check that incident times use a consistent timezone and that affected data categories are based on evidence rather than assumption. Review personal information and secrets before sharing, and confirm the recipient and access controls. This exercise improves the accuracy of an Incident Report without suggesting that a particular structure has official Shopify approval or guarantees review closure.
Your working checklist
- App identity and report version.
- Confirmed versus suspected incident status.
- Timezone-labelled chronology.
- Evidence references and retention gaps.
- Root cause with supporting facts.
- Impact and uncertainty stated separately.
- Containment, fixes and current findings.
- Verification results and follow-up owners.
Sources and scope of this guidance
Platform requirements below come from Shopify’s documentation. Response trackers and checklists are Scantra’s practical guidance, not an official Shopify workflow. Review current requirements and your own notice; this is not legal advice or an acceptance guarantee.
- Shopify: Protect against common vulnerabilities
App security boundaries, incident contact and developer security practices.
- Shopify App Store requirements
Current app requirements, including embedded-app authentication.
- Shopify: Privacy law compliance
Mandatory compliance webhook topics and implementation guidance.
Where mentioned, the past relisting example is based on anonymised owner-supplied correspondence published with permission. Private client identities and incident evidence are not reproduced.
