Skip to content
← Back to Insights

Compliance

POPIA and Third-Party AI Models: What You Can Safely Send to an LLM

30 August 2026 · 7 min read

The moment a website feature calls an external language model, customer data leaves your infrastructure and lands on a third party’s. Under POPIA, that is a processing operation you are responsible for. This is a practical view of how to keep an AI feature on the right side of that, drawn from designing one for a South African store.

The free-tier trap

The major model providers offer generous free tiers, and they are genuinely useful for building and testing. The catch is in the terms: some free tiers reserve the right to train on the prompts you send. For a hobby project that is fine. For anything touching real customer data it is not, because you cannot meaningfully consent a customer to their message being absorbed into a foreign company’s training set. The rule that came out of this project: build on the free tier, but move production to a paid tier or a cloud provider’s hosted models, where training on your data is contractually off, before a single real customer interacts with it.

Send the model the least it needs

The model does not need your customer’s phone number, address, or full name to be helpful. The design passes it only an opaque user ID, a first name, and a distilled set of preferences. Everything sensitive, contact details, delivery address, payment information, stays in your own database and is joined back in by your code after the model responds. The model sees enough to be personal and nothing that would matter if the request were logged.

Build a provider abstraction from day one

If your code calls one vendor’s API directly in fifty places, you are married to that vendor and its data terms. A thin abstraction layer, one interface, swappable implementations, means moving from a free tier to a hosted model on a cloud provider, or to a paid tier, is a configuration change, not a rewrite. That flexibility is also your compliance escape hatch if a provider changes its terms.

Data residency still applies

POPIA cares where personal information is processed and stored. A model endpoint in another region is a cross-border transfer. Note which region your model calls actually hit, keep the personal data you send to a minimum as above, and record the decision. Hosted enterprise model offerings let you pin a region, which is one more reason production should not sit on an anonymous free tier.

A short checklist

  • Confirm, in writing, that your production model tier does not train on your inputs.
  • Send opaque identifiers and the minimum context, never raw contact or payment data.
  • Put a provider abstraction between your app and any model vendor.
  • Know the region your model calls run in, and treat it as a cross-border transfer.
  • Write down what you send and why, so consent language has an answer.

This is not legal advice, and a genuinely sensitive deployment deserves a proper review. But most small-business AI features can be built well within POPIA if the data going to the model is kept boring on purpose.