Screen new Stripe customers for sanctions and PEP hits at signup
The moment a new customer is created in Stripe, run a KYC sanctions and PEP check, write the verdict back to Stripe, and alert compliance in Slack on any credible hit.
Build an agent workflow that runs a KYC sanctions and PEP screen on every brand-new Stripe customer, then records the outcome back in Stripe and pings a compliance Slack channel on credible hits.
Trigger: a Stripe webhook subscribed to the customer.created event. Fire once per new customer.
When the workflow runs, do the following:
1. Read the new customer's name, email, and any address or business fields from the webhook payload. If the payload is missing fields you need (for example the name or address), call Stripe Retrieve Customer with the customer id to fill them in.
2. Call OpenSanctions Match Entities against a KYC-appropriate collection. Prefer the sanctions plus peps collection if the user has it available, otherwise use the default collection. Screen a Person entity for the customer, using name and any known aliases, country, and date-of-birth-like fields you can infer. If the customer looks like a company (business name, no personal name), also screen a Company entity with the business name and address. Use the default matching algorithm and a sensible threshold around 0.7 to 0.75.
3. Decide a verdict for each customer: clean (no results above threshold), review needed (weak-to-mid match, common name, or single low-confidence hit), or flagged (strong match on a sanctioned or PEP entity).
4. On flagged or review needed, send a Slack message via Send a Message to a configurable compliance channel. Keep it concise. Include the customer name and Stripe customer id, the matched entity name and OpenSanctions id, the match score, the reason for the flag (sanctions list name, PEP category, etc.), and a link to the OpenSanctions profile so a reviewer can act. Label review-needed clearly as review needed rather than blocked.
5. Regardless of verdict, call Stripe Update Customer to write the following metadata on the customer so downstream systems and audits can see the check ran: sanctions_screening_status (clean, review_needed, or flagged), sanctions_screening_score (the top match score, or 0 if no hits), and sanctions_screening_checked_at (an ISO 8601 timestamp).
Guidance to bake into the agent instructions: clean checks should update Stripe metadata silently and never post to Slack, so the compliance channel does not get spammed. Borderline matches (weak scores or very common names) should still notify Slack but be framed as review needed, not as a block. The workflow itself never blocks payments or cancels the customer; it only records the outcome and asks a human to decide.
Integrations to use: Stripe (customer.created webhook trigger, Update Customer, Retrieve Customer if needed), OpenSanctions (Match Entities), Slack (Send a Message).
What does this prompt do?
- Watches Stripe for new customers and kicks off a KYC screen the moment one is created, so compliance never has to remember to run it.
- Checks each new customer's name, email, and any business or address details against global sanctions and politically exposed person lists.
- Posts a clear alert in your compliance Slack channel on any credible hit, with the matched entity, match score, reason, and a link so a reviewer can act fast.
- Writes the screening status, score, and timestamp back to the Stripe customer so downstream teams and audits can see the check ran.
What do I need to use this?
- A Stripe account with permission to receive webhooks and update customer records.
- An OpenSanctions API key for sanctions, PEP, and watchlist screening.
- A Slack workspace and a channel where your compliance team wants alerts posted.
How can I customize it?
- Change which lists you screen against, for example sanctions and PEPs only, or the full default collection.
- Adjust the match threshold so borderline scores are flagged for review rather than treated as clean or blocked.
- Swap the Slack channel, or route different risk levels to different channels or reviewers.
FAQs
When does the screening actually run?
What happens if a new customer matches a sanctions or PEP list?
What if the match is weak or the name is very common?
Does this block or refund the customer automatically?
Can I use this for existing customers too, not just new ones?
Related templates
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.
Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.
Open one screen each morning to see a paying customer's billing, product activity and email history, then send the right next email without leaving it.
Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.
Every weekday morning, every appointment that fell through yesterday gets a personal text or email inviting them to rebook, plus a task for the right rep.
Catch risky customers before their first charge clears.
Connect Stripe, OpenSanctions, and Slack once, and every new customer gets a KYC screen automatically, with the verdict written back to Stripe.