SKILLMERC tools

Ledgerline privacy policy

Last updated: 6 November 2026

Ledgerline ("the app") is made by SKILLMERC (Pty) Ltd. It copies paid Shopify orders and refunds into the merchant's own FreeAgent account. This policy explains what the app reads, stores and shares.

What the app reads from Shopify

What the app stores

Who the data is shared with

Retention and deletion

Security

Security incidents

If we find that data handled by the app may have been exposed, we contain it at once, work out which shops and data were affected within 24 hours, and email each affected merchant within 72 hours with what happened, what data was involved, what we did and what they should do. We also tell Shopify. After every incident we write down the cause and what we changed.

Contact

Kyle Pretorius, SKILLMERC: kyle@skillmerc.com

Data protection and data loss prevention

Version 1.0, 6 November 2026. Owner: Kyle Pretorius, SKILLMERC (kyle@skillmerc.com).

What personal data the app handles

Ledgerline reads the customer name, email, phone and billing or shipping address on paid Shopify orders (read_orders scope). It uses them only to find or create the customer as a contact in the merchant's own FreeAgent account and to put the invoice in that contact's name. The preview screen shows the same fields to the merchant. Nothing else uses them.

Data minimisation

Loss prevention controls

Access logging

Table ledgerline.personal_data_access_log: actor (system:webhook, system:backfill, merchant:, operator:), shop, purpose, resource (order ID or "orders list"), field groups read, number of records, timestamp. It never stores the personal data itself. Rows older than 90 days are deleted automatically by the worker. Operator access (support or debugging that reads a customer's order details) must be recorded with node tools/log-access.mjs.

Staff access

Only the owner, Kyle Pretorius, has access to the production database, hosting and developer accounts. Each account must have a unique strong password (at least 12 characters, generated by a password manager) and two-step verification wherever the provider offers it. The self-audit checks this.

Incidents

See incident-response.md.

Security incident response policy

Version 1.0, adopted 6 November 2026. Owner: Kyle Pretorius, SKILLMERC (kyle@skillmerc.com). Reviewed at least once a year and after every incident.

Scope

Any event that may have exposed, changed or destroyed data that Ledgerline handles: Shopify order and customer contact data read during a sync, Shopify access tokens, FreeAgent tokens, merchant settings and the activity log. It covers the app servers (Railway), the database (Supabase), the code and the developer accounts (Shopify Partners, FreeAgent developer, Railway, Supabase, GitHub).

Roles

SKILLMERC is a one-person company. Kyle Pretorius is the incident lead and makes every decision below. Automated tools he runs may help with the investigation but do not decide on notification.

Steps

  1. Detect and record (at once). Sources: Railway and Supabase alerts, the app's error logs, the personal data access log, unusual FreeAgent or Shopify API errors, reports from merchants, Shopify or FreeAgent. Open an incident note with the time found, what was seen and who reported it.
  2. Contain (within 1 hour of confirming). As needed: rotate the Shopify client secret in the Dev Dashboard, rotate the database password and TOKEN_ENC_KEY, revoke FreeAgent connections (merchants reconnect), stop the Railway service, block a compromised account or key.
  3. Assess (within 24 hours). Work out which shops and which data were affected, using the access log (actor, shop, purpose, time) and the database. Decide whether personal data was exposed.
  4. Notify. If personal data of merchants' customers may have been exposed: tell each affected merchant by email within 72 hours of becoming aware, with what happened, what data, what we did and what they should do. Tell Shopify through the Partner Dashboard support channel in the same window. Where Ledgerline acts as a processor, the merchant is the controller and decides on telling their customers and regulators; we give them the facts they need. SKILLMERC's own regulator notifications (for example the UK ICO or South Africa's Information Regulator) are made where the law requires it.
  5. Recover. Fix the cause, redeploy, confirm webhooks and syncs work, re-enable the service.
  6. Review (within 14 days). Write a short post-incident note: cause, timeline, what changed. Update this policy and the self-audit checklist.

Contacts