Cart Shield — Data Processing Agreement
Last updated: 18 October 2026 · Effective: 18 October 2026 · Version: 1.0
This Data Processing Agreement ("DPA") is entered into between:
- You, the merchant who has installed Cart Shield on your Shopify store (the "Merchant", "you"); and
- Edwin Guo (ABN 20 938 499 163), a sole trader in New South Wales, Australia, trading as Sushinet ("Sushinet", "we", "us").
It covers Cart Shield and nothing else. Our other apps carry their own, and their Annexes must not be read across to this one:
- Cart Shield — this document, and its privacy policy. The DPA is the contract; the policy is the notice.
- Ruleproof — privacy policy · DPA.
- Rules2Tag — privacy policy · DPA.
- Undo History — privacy policy · DPA. It holds no customer data, so its Annexes are empty.
- This website and our dealings as a studio — website privacy policy, where we are the controller rather than your processor.
Structure and commitments mirror Ruleproof's DPA. The Annexes differ, and Annex III is the longest of our apps', because Cart Shield sends an order's IP address to outside lookup services.
How this becomes binding
You do not need to sign anything. This DPA is incorporated by reference into the terms you accept when you install Cart Shield, and takes effect automatically at installation.
If your compliance process requires a countersigned copy, or your own DPA template, email support@sushinet.fyi and we will sign and return one. If you require the European Commission's Standard Contractual Clauses as a separate executed instrument, we will enter into them (§11).
We publish the current version at https://sushinet.fyi/cart-shield/dpa, hosted separately from the app itself.
1. Definitions
"Controller", "Processor", "Data Subject", "Personal Data", "Processing" and "Supervisory Authority" have the meanings given in the GDPR.
- "GDPR" means Regulation (EU) 2016/679, and where relevant the UK GDPR as incorporated by the Data Protection Act 2018.
- "Privacy Act" means the Australian Privacy Act 1988 (Cth), including the Australian Privacy Principles and the Notifiable Data Breaches scheme.
- "Data Protection Law" means the GDPR, the Privacy Act, and any other data protection or privacy law applicable to a party's processing under this DPA.
- "Merchant Personal Data" means Personal Data relating to your shoppers that Cart Shield Processes on your behalf, as described in Annex I.
- "Privacy Policy" means Cart Shield's privacy policy at https://sushinet.fyi/cart-shield/privacy.
- "Sub-processor" means a third party engaged by us to Process Merchant Personal Data.
2. Roles of the parties
| Data | Controller | Processor |
|---|---|---|
| Your shoppers' data that Cart Shield touches — visit records, order records and their codes, the checkout check's inputs and marks, rules naming a person, live reads of order and customer details, the activity log | You | Us |
| Your own shop's data, and our operational records — OAuth session, shop settings, support correspondence, access logs, web server logs | Us | — |
This DPA governs only the first row. Where we act as Controller, the Privacy Policy governs.
You confirm that, as Controller, you have a lawful basis for the Processing you instruct us to carry out — including for any reading from your shoppers' devices by the web pixel and the checkout check's script (Privacy Policy §3) — and that you have given your shoppers whatever notice Data Protection Law requires.
3. Processing only on your instructions
We Process Merchant Personal Data only:
- on your documented instructions, which comprise this DPA, the Privacy Policy, and the settings you configure in Cart Shield — installing it, choosing detections, writing rules, and switching on any action (holding, tagging, cancelling and refunding, the checkout check, the decoy); and
- where a law we are subject to requires it — in which case we will tell you before Processing, unless that law prohibits it.
We do not Process Merchant Personal Data for any purpose of our own. We do not sell it, share it for anyone else's purposes, use it to train models, or use one merchant's data to score another merchant's orders. Scoring uses fixed rules — lists, ranges, counts and fixed weights — and no machine-learning model.
We will tell you if, in our opinion, an instruction infringes Data Protection Law, and may suspend the affected Processing until it is resolved.
4. Confidentiality
Access to Merchant Personal Data is limited to the operator of Sushinet, who is bound by an ongoing duty of confidentiality. We do not employ staff or engage contractors with such access. If that changes, anyone granted access will be under a written confidentiality obligation before access is given, and we will update Annex II.
5. Security
We implement the measures in Annex II, which are designed to meet Article 32 of the GDPR and APP 11. Annex II describes what is actually in place; where a control is partial or provided by a platform, it says so.
6. Sub-processors
You give general authorisation for us to engage Sub-processors, subject to this section.
Our current Sub-processors are listed in Annex III and in §5 of the Privacy Policy. Each Processes Merchant Personal Data only on our instructions. The IP lookup services receive only an IP address: no other personal data, and no account or order identifier.
Before adding or replacing a Sub-processor that would receive Merchant Personal Data, we will update Annex III and notify you by email at least 30 days in advance. If you reasonably object on data protection grounds within that period, we will work with you in good faith to find an alternative. If we cannot, you may terminate by uninstalling Cart Shield, and we will delete your data under §9.
We remain fully liable to you for a Sub-processor's performance of its data protection obligations.
7. Assisting you with data subject requests
Cart Shield implements Shopify's three mandatory compliance webhooks:
customers/data_request— we count the order records held for the orders named in the request and report the count to you, so you can answer within the 30 days Shopify requires. The count covers order records; on request we also check line items, rules and activity-log entries by hand.customers/redact— we delete the order records for the orders named, their line items and activity-log entries, clear the IP code on the linked visits, delete email and phone rules matching the person, and republish your checkout rules so the deleted hash stops acting. What this request cannot reach, stated rather than implied away: name and address rules (the request carries no name, and address matching is not implemented — delete them yourself, or ask us); the raw order id on a linked visit, until that visit is pruned; the IP lookup cache, which is linked to no person or shop; and backups, until they expire.shop/redact— we delete the shop's data as described in §9.
All three verify the webhook's signature before acting; an invalid signature is rejected and no data is touched.
Where a Data Subject contacts us directly about data we hold as your Processor, we will refer them to you and tell you promptly.
We will also assist you with obligations under GDPR Articles 32–36 (security, breach notification, data protection impact assessments, prior consultation) by providing the information we hold. Cart Shield's automated decisions (Privacy Policy §8) are a reason your own assessment may need that information.
8. Personal data breaches
If a breach affects Merchant Personal Data, we will notify you without undue delay, and in any event within 72 hours of becoming aware of it, with, to the extent known: the nature of the breach, the categories and approximate volume of data and Data Subjects affected, the likely consequences, the measures taken or proposed, and a contact point. Where the full picture is not available within 72 hours, we will tell you what we know and follow up.
Where the Notifiable Data Breaches scheme or GDPR Article 33 requires it, we will also notify the relevant Supervisory Authority. We will not notify your shoppers directly unless you instruct us to or the law requires it.
9. Deletion and return
On uninstall, the OAuth session is deleted immediately by the app/uninstalled webhook. Shopify sends shop/redact about 48 hours
later, and we then delete the shop's visits, orders, line items, rules, activity log, settings (including the encrypted Storefront
token), the checkout check's counts, the refused-checkout records, and support references.
Before uninstall, Merchant Personal Data is subject to the retention limits in §7 of the Privacy Policy. ⚠️ Not all of it has a time limit while Cart Shield is installed: order records are kept until a redaction erases them, and the activity log is deleted after 90 days. Visit records are deleted 30 days after they are created, by an hourly job. The Privacy Policy states each one.
In your store. Tags, risk-panel verdicts and the decoy product (if you used it) are data in your own Shopify store and stay there after uninstall; Cart Shield no longer has access to remove them.
You may request earlier deletion, or a copy of Merchant Personal Data in a commonly used format, by emailing support@sushinet.fyi at any time.
Backups. Deletion from the live database is immediate. Database backups are kept about 30 days, and daily disk snapshots 4 days, and both expire automatically. We do not restore a backup to resurrect deleted data; if one were ever restored for disaster recovery, we would re-apply outstanding deletion requests to the restored data.
10. Audits and information
On written request, and no more than once in any 12-month period (unless a Supervisory Authority requires otherwise or there has been a breach affecting your data), we will:
- make available the information reasonably necessary to demonstrate compliance with this DPA — in the first instance by answering a written security questionnaire; and
- permit and contribute to an audit by you or an independent auditor you appoint, on at least 30 days' notice, during business hours, subject to confidentiality, and without compromising other merchants' security or privacy.
You bear the cost of an audit you initiate, unless it reveals material non-compliance.
11. International transfers
Merchant Personal Data is stored on a server in Sydney, Australia. The Sub-processors in Annex III mean an order's IP address, and the data Shopify itself holds, may also be disclosed to recipients outside Australia — the countries are listed in Annex III.
Australia is not the subject of a European Commission adequacy decision. Where the GDPR or UK GDPR applies to a transfer to us, that transfer relies on the safeguards in Article 46 — in practice the Standard Contractual Clauses (Module Two, Controller to Processor), which we will enter into with any merchant who asks — or, where genuinely applicable, the derogations in Article 49. Where executed, the SCCs prevail over this DPA in any conflict; Clause 17 and Clause 18 refer to the law and courts of Ireland unless the parties agree otherwise; the docking clause applies; and Annexes I, II and III of this DPA serve as the SCCs' corresponding annexes and list of authorised Sub-processors under Clause 9(a) Option 2.
Under APP 8 we remain accountable for what an overseas recipient does with personal information we disclose to it.
12. Liability, term, and general
Term. This DPA takes effect when you install Cart Shield and continues for as long as we Process Merchant Personal Data on your behalf. §§4, 8, 9, 10 and 11 survive termination to the extent required.
Liability. Each party's liability under this DPA is subject to the limitations and exclusions in the terms governing your use of Cart Shield. Nothing in this DPA limits liability that cannot lawfully be limited, including a Data Subject's rights under Article 82 of the GDPR.
Order of precedence. If this DPA conflicts with the app terms, this DPA prevails on data protection matters. If executed SCCs conflict with this DPA, the SCCs prevail.
Governing law. The laws of New South Wales, Australia, with the non-exclusive jurisdiction of its courts — except where §11 provides otherwise for executed SCCs.
Changes. Material changes are notified by email at least 30 days in advance, and the version and date at the top change with every revision. If you do not accept a change, you may uninstall and your data is deleted under §9.
Contact. support@sushinet.fyi
Annex I — Description of the Processing
This Annex also serves as Annex I to the Standard Contractual Clauses where those are executed.
Data exporter: the Merchant, acting as Controller. Data importer: Edwin Guo trading as Sushinet, acting as Processor. Contact: support@sushinet.fyi.
Subject matter. Provision of Cart Shield — scoring a merchant's storefront visits and orders for fraud signals, explaining each score, and carrying out the actions the merchant switches on.
Duration. For as long as Cart Shield is installed, subject to the retention limits in the Privacy Policy §7; then deletion on
shop/redact (about 48 hours after uninstall) and, for the OAuth session, app/uninstalled (immediate).
Nature and purpose. Folding storefront events into per-visit counters; scoring orders against fixed rules; looking up an order's IP address with outside reputation services; writing verdicts to the order's risk panel; enforcing the merchant's checkout rules through a Shopify Function; and, only where the merchant switches them on, the checkout check, the decoy product, tagging, fulfilment holds, and cancel-and-refund; freezing an email address, phone number or delivery address for a set time; telling Shopify Flow an order was scored (no customer fields); and, on the merchant's click, creating two saved customer segments from Cart Shield's tag.
Categories of Data Subjects. Visitors to the Merchant's storefront, and buyers who reach checkout or place an order.
Categories of Personal Data.
| Category | Detail |
|---|---|
| Visit records | An unkeyed hash of the shop and Shopify's browser clientId; event counters; first and last seen times; true/false findings about the User-Agent and time zone; a keyed code of the connection's IP address (72 hours); the order id of a completed checkout |
| Order records | Order id, name and total; two unkeyed hashes of the buyer's email; a keyed code of the connection (72 hours, or 30 days on a Strong order) and of the shipping address (30 days); IP verdicts and country code; per-connection and per-address counts; line items' product ids and quantities; failed-payment and cards-tried counts; first-order flag; Shopify's risk level and cancellation reason; score, band and signals |
| The checkout check's inputs | Interaction counts, a hidden form field's value, the visitor's consent state, browser tells (with consent, by default) and the cart token — judged in memory and not stored; the resulting mark on the cart, written into Shopify; per-day counts per shop |
| Rules naming a person | Unkeyed hashes of an email, phone, name or address, with a partial hint (an address hint shows its postcode and country in full) |
| Live reads, not stored | Buyer email and phone; delivery name, phone, street, unit and postcode; billing name and phone; shipping country and region; customer id for tagging |
| Activity log | Order id, kind of event, defence, actor (Cart Shield, merchant or Shopify), a closed reason code, and the id of the rule or visit concerned, for each action Cart Shield takes or observes; never a name, email, phone, address, IP or rule value |
| Refused-checkout records | A one-way hash of the checkout token, which defence refused it (a block rule, a freeze, the checkout check or the decoy), the rule's id, the day and Shopify's update time; never the buyer's email, phone, name, address or cart. Kept 90 days |
| Insights' daily totals | Per shop per day, counts only (visits, orders, how often each signal fired, how many orders carried a card-testing finding); no shopper, order or code. Kept 365 days |
| IP addresses in transit | An order's IP address, sent to the lookup services in Annex III and then discarded |
Special categories. None, and no rule is designed to act on one.
Frequency. Continuous, for every storefront event and order, for as long as Cart Shield is installed.
What is NOT Processed into storage. No payment card details (transactions are read for two counts and discarded), no readable IP address, street address, phone number or time zone in the database, no device fingerprint, no mouse or keystroke recording, no raw event stream.
Annex II — Technical and organisational measures
This Annex also serves as Annex II to the Standard Contractual Clauses where those are executed.
| Area | Measure |
|---|---|
| Encryption in transit | HTTPS between Shopify, the app, shoppers' browsers and the merchant's browser. |
| Encryption at rest | The server's storage volume is encrypted with a provider-managed key; backups are held in object storage encrypted at rest. The checkout check's Storefront token is additionally encrypted (AES-256-GCM) with a key derived from a secret held only on the server. |
| Pseudonymisation | IP addresses and shipping addresses are stored only as keyed codes (HMAC) with short expiry; emails and rule values as hashes. Stated limit: the HMAC key is the app's Shopify client secret, known to Shopify, and an IPv4 code can be reversed by anyone holding it (Privacy Policy §9). |
| Access control | Administrative access is key-based only; password authentication is disabled; one operator. The database file is readable only by the app's own system account. |
| Process confinement | The app runs as an unprivileged, dedicated system account under systemd confinement, with write access only to its own data directory, on a server shared only with our other apps. |
| Minimisation | The pixel sends five fields per event (three more on particular events) and its payload is pinned by a test; events are folded into counters and discarded; the checkout check's inputs are judged in memory and not stored. |
| Retention limits | Hourly clearing of expired IP and address codes; 30-day deletion of visits, hourly; 90-day limit on the checkout check's counts; 90-day limit on refused-checkout records (ids only); 90-day limit on the activity log (ids and closed codes only); 365-day limit on Insights' daily totals (counts only). Stated limit: order records have no time limit while installed. |
| Integrity of backups | Nightly consistent snapshots, verified before upload, copied to a second bucket; about 30 days' retention. |
| Deletion | Automated deletion through Shopify's compliance webhooks, signature-verified before acting; a test fails if a shop-scoped table is missing from the shop deletion. |
| Secure development | Type checking and an automated test suite before deployment; data-inventory tests that fail when a stored table, a pixel field, a storefront-script field or an IP lookup provider is added without being disclosed. |
Known limitations, stated deliberately. We are a single-operator studio: no 24/7 security operations centre, no ISO 27001 or SOC 2 certification, and no dedicated security team. The web server's access log records the IP address of every request except the web pixel's, which are logged without the IP address or headers; the checkout check's requests arrive through Shopify's app proxy, and their logged headers may carry the shopper's IP address (Privacy Policy §1.10).
Annex III — Authorised Sub-processors
This Annex also serves as the list of authorised Sub-processors under Clause 9(a) of the Standard Contractual Clauses where those are executed.
| Sub-processor | Role | Location | Merchant Personal Data it may hold |
|---|---|---|---|
| Shopify Inc. | The platform Cart Shield runs on: orders, the web pixel, the app proxy, the checkout Function. | Canada, United States | All categories in Annex I — Shopify is their source. |
| Oracle Cloud Infrastructure | The server running the app and its database, and the object storage holding backups. | Sydney, Australia | Everything Cart Shield stores. |
| IP reputation services (three, used in turn) | IP reputation and country lookup. One per order: each after the first is used only when the ones before it are unavailable or out of quota. | Overseas; locations not fixed by us | An order's IP address, per lookup. |
| A DNS blocklist | A list of compromised machines, queried through our server's DNS resolver. | Overseas; the list operator's own servers, reached through our resolver | An order's IPv4 address, inside the DNS query. |
The IP lookup services are described by kind, not by name, as in §5 of the Privacy Policy: naming them would tell anyone trying to get round Cart Shield where to look.
Not Sub-processors of Merchant Personal Data, listed so nothing is implied: Zoho Desk (Australia) holds our support correspondence with you, where we are Controller — please keep shoppers' details out of it. Vercel Inc. (United States) hosts our public website only; no Cart Shield data reaches it.
We will update this Annex and give 30 days' notice before adding a Sub-processor that would receive Merchant Personal Data, per §6.