Skip to content

Sanctions and risk

How Perly Pay handles sanctioned money

We never hold money, so we can't freeze it or send it back. What we do: check every address that pays, grant nothing for flagged money, and keep the record. This is what the code does today.

01

Every sender is checked

Before an invoice grants anything, every address that sent the money is checked. On Bitcoin, the address of every input. On Ethereum, Base, Arbitrum and Optimism, the token transfer's sender and the transaction's own sender — so a payment through a router or an exchange contract is judged by who sent it.

Nothing is granted until every check has answered. A check that did not answer is never read as clear. After 30 minutes the invoice goes to your review queue as “Screening did not answer”.

A refund address is checked the same way before you are asked to send to it. A flagged one can't receive the refund.

02

What we check against

OFAC's sanctioned addresses — the digital-currency addresses on the US Treasury's SDN list, from a public daily copy on GitHub. Bitcoin and EVM addresses alike.

TRM Labs' free sanctions API — a second opinion. Its hit counts. When it does not answer, nothing waits for it.

The stablecoin issuer's freeze — Circle's for USDC, Tether's for USDT, USDT0's for USDT0, read from the token contract. On the sender, and on the address the money landed on.

ScamSniffer's public list of phishing and drainer addresses (EVM networks). It is published a week late.

Chainalysis's on-chain sanctions oracle is not used: it stopped updating in March 2026.

03

Fresh lists, or nothing

The lists are read again every day. A list missing, or older than 7 days, answers “error” for every address, and nothing is granted until it is fresh.

A new copy that lost more than half its addresses at once is not trusted. Yesterday's copy stays.

From 3 days old, our health check raises the alarm.

04

Flagged money buys nothing

A sender on a sanctions list, or an address the stablecoin's issuer froze, is a red flag. The invoice goes to review and can never be accepted — not by you, not by us. The database refuses it.

It is never refunded, automatically or by hand. The dashboard refuses, and the API answers sanctioned_sender. Sending it back may itself be prohibited.

A scam-list hit is different: it holds the invoice for your review, and accepting it is your call.

05

Money that buys nothing is checked too

Money at one of your addresses that pays no invoice, a top-up after the goods were granted, money after a cancel or a refund — each is screened like any payment, for the record.

A red flag on it puts it in your review queue as Flagged.

06

Where Perly Pay can't be used

From these places you can't sign up, open the dashboard or join a team, and our checkout pages show no address.

We go by the country of the connection, which a VPN can hide. That is why the money is screened too.

  • Cuba
  • Iran
  • North Korea
  • Russia
  • Belarus
  • Syria
  • Crimea
  • Sevastopol

An IP address names a whole region, so the occupied parts of the Donetsk, Luhansk, Zaporizhzhia and Kherson regions can't be told apart from free Ukraine. They are not blocked by address.

The rule itself is in our Acceptable use policy.

07

What we don't do

We don't hold, freeze or move money. It is in your wallet, under your keys.

We don't check who your buyers are. There are no ID checks.

We check the addresses that paid, not the history behind them. Money that passed through a sanctioned address before it reached the sender is not traced.

Public lists can lag behind a new designation by a day or more.

08

What you should do

Don't ship, and don't move money a red flag names. Leave it in the wallet.

Talk to a lawyer. You may have to report it, and the rules depend on where you and your buyer are.

Look at your review queue. Every held invoice says why.

Questions: the contact form.