Skip to content

Sanctions screening and compliance holds ​

Taria Pay checks the wallet addresses that money comes from and goes to against official sanctions lists. This page explains what is screened, when a payment or payout can be refused, what a compliance hold does to your balance, and what you see in the dashboard and the API.

The short version:

  • Payments you receive are never rejected after they arrive. If a payment comes from a sanctioned address, it is placed in a compliance hold and kept out of your available balance until a human review ends.
  • Money leaving Taria Pay (withdrawals, refunds, marketplace payouts) is refused when the destination is on a sanctions list.
  • Only a match on an official sanctions list can refuse a money movement. Other risk information is used for review and never refuses a payout on its own.

Which lists we screen against ​

ListPublisher
Specially Designated Nationals and Blocked Persons List (SDN)U.S. Treasury, Office of Foreign Assets Control (OFAC)
UK Sanctions ListUK Foreign, Commonwealth & Development Office (FCDO), the designations OFSI enforces
Consolidated list of persons, groups and entities subject to EU financial sanctionsEuropean Union

All three lists are refreshed once a day, each on its own. Withdrawals and refunds to a wallet address are also checked against the stablecoin issuer's own blocklist where the token exposes one, and against supplementary on-chain sanctions data. A match on any of these is treated as a sanctions match.

What is screened, and when ​

Money movementAddress screenedWhenEffect of a sanctions match
Wallet payment at checkoutThe buyer's connected walletBefore the buyer can payThat wallet cannot be used to pay this order
Any confirmed paymentThe paying walletWhen the payment confirmsPayment is accepted, then placed in a compliance hold
Direct transfer paymentThe wallets that funded the order's deposit addressWhen the deposit arrivesPayment is accepted, then placed in a compliance hold
Past paymentsEarlier payers, against newly listed addressesAfter each daily list updateMatching payment is placed in a compliance hold
WithdrawalThe destination walletBefore your balance is debitedWithdrawal refused
RefundThe original payer walletBefore the refund amount is reservedRefund refused
Marketplace payout or refundThe seller's or buyer's destination walletBefore funds are reservedPayout or refund refused

Payments are never rejected after they arrive ​

A stablecoin payment has already settled on-chain by the time Taria Pay sees it. Rejecting it would not keep the funds out; it would only withhold goods from a buyer who has already paid. For that reason the paths that receive and settle a payment never block on screening. Instead, a match leads to a compliance hold (see below).

The one point where a payment can be refused is the checkout itself, before a wallet payment is made. When the buyer connects a wallet that is on a sanctions list, checkout disables wallet payment for that address and asks the buyer to pay with a different wallet. The buyer is not told why. This check never turns a buyer away because of a problem on our side: if screening data is unavailable at that moment, the buyer can pay.

Compliance holds ​

A compliance hold is a quarantine on one payment while a Taria Pay compliance reviewer looks at it. It is not a refusal and not a refund. Holds are placed on payments from a sanctioned address and, in some cases, on payments closely linked to one.

While a hold is active:

  • The payment keeps its status. A confirmed payment stays confirmed, and the payment_intent.confirmed webhook is delivered as usual.
  • For an ordinary merchant account, the held amount (the payment amount minus the platform fee) is deducted from your available balance for that chain and currency. If you already withdrew those funds, your available balance can go below zero until the review ends.
  • For a marketplace order, the order funds cannot be released to the seller (see Marketplace platforms).

There is no separate webhook event or dashboard notification for a hold. What you notice is an available balance that is lower than the sum of your confirmed payments.

A review ends in one of three outcomes:

OutcomeWhat happens to the funds
ReleasedThe hold is lifted and the amount returns to your available balance, or the marketplace release can proceed
ReturnedThe payment is refunded to where it came from. For an ordinary payment this is a full refund to the original payer wallet, and you receive payment_intent.refunded
FrozenThe funds stay where they are, out of your available balance, pending a report to the relevant issuer or authority

A payment from an address that is itself on a sanctions list is never returned to that address, because sending funds to a sanctioned party is itself a violation. Such a hold can only be released after review or frozen.

Payouts: withdrawals and refunds ​

Before any money leaves Taria Pay, the destination address is screened. A refusal happens before your balance is debited or a refund amount is reserved, so nothing is held back and nothing needs to be undone.

When screening data is out of date ​

If the sanctions list update has not succeeded for 48 hours, withdrawals and refunds are paused instead of being let through without a current check. The API answers 503 with code screening_stale (or screening_unavailable if the list has never been loaded). This is a temporary condition on our side, not a finding about your address. Retry later; payments keep arriving and confirming normally while payouts are paused.

Error responses ​

Withdrawals (POST /v1/withdrawals and the dashboard), refunds (POST /v1/payment-intents/:paymentId/refunds, the dashboard Refund action and approving a buyer refund request) and marketplace payouts return these errors:

HTTP statuscodeMeaningWhat to do
403address_sanctionedThe destination address is on a sanctions list and cannot receive fundsDo not retry. For a withdrawal, do not use this address. For a refund, contact support
503screening_staleThe sanctions list has not refreshed within 48 hours; payouts are pausedRetry later
503screening_unavailableSanctions data is not available yet; payouts are pausedRetry later

The response body carries the code next to a readable message:

json
{
  "error": "This address appears on a sanctions list and cannot receive funds",
  "code": "address_sanctioned"
}

With the SDK, the error is a TariaPayError whose status is the HTTP status; the response body, including code, is in error.details:

ts
import { TariaPayError } from "@tariapay/sdk";

try {
  await tariapay.paymentIntents.refund(paymentId, { reason: "Order canceled" });
} catch (error) {
  if (error instanceof TariaPayError) {
    const code = (error.details as { code?: string } | undefined)?.code;
    if (code === "address_sanctioned") {
      // Do not retry; contact support@tariapay.com with the paymentId
    } else if (code === "screening_stale" || code === "screening_unavailable") {
      // Temporary; retry later
    }
  }
}

Refunds to a sanctioned payer ​

Refunds always go to the original payer wallet, and you cannot choose a different address. If that wallet is on a sanctions list, the refund is refused with address_sanctioned and nothing is reserved from your balance. Contact support; do not tell the buyer to retry the refund.

Marketplace platforms ​

If you run a marketplace on Taria Pay, a compliance hold blocks the release of that order's funds to the seller. POST /v1/marketplace/order-funds/:paymentIntentId/release answers 409 with code compliance_hold while the hold is active. Keep the order in your settlement queue and retry the release later; the release is idempotent and succeeds once the hold is released. Seller withdrawals and buyer refunds on the marketplace are screened like any other payout and can return address_sanctioned, screening_stale or screening_unavailable.

Sanctions matches and risk review ​

Besides the official sanctions lists, Taria Pay keeps other risk information, such as reports of scam addresses and addresses linked to high-risk activity. This information is handled differently:

Sanctions matchOther risk information
SourceOfficial government sanctions lists and issuer blocklistsPlatform-maintained risk data
Refuses a withdrawal, refund or payoutYesNo
Refuses a wallet at checkoutYesNo
Can lead to a compliance holdYesOnly for the higher risk levels, for human review
Can be returned to the payer after reviewNoYes

Most risk information only adds a note for our reviewers and has no effect on your payments or payouts.

What you should do ​

  • A withdrawal is refused with address_sanctioned. Do not retry to the same address and do not try to route the funds there another way. If the address is one of your own payout wallets, contact support.
  • A refund is refused with address_sanctioned. Contact support with the paymentId. Keep the order in a pending refund state in your own system.
  • A payout is refused with screening_stale or screening_unavailable. Wait and retry; no action is needed on your side.
  • Your available balance is lower than expected. Compare it with your confirmed payments and withdrawals in Payouts. If the difference matches one payment's amount minus the fee, ask support whether that payment is under review.

Contact support@tariapay.com from your merchant login email and include:

  • The paymentId, withdrawal ID or refund ID involved
  • Your own order ID, if any
  • The address and network shown in the error or the transaction
  • The time of the attempt and the error code you received

Support can tell you whether a payment is under review and what is needed to complete it. For legal reasons we may not be able to share which list an address matched.

Frequently asked questions ​

Does screening slow down checkout? The checkout check runs once per connected wallet. Slower data sources get about a second and a half; if they cannot answer in time, the buyer can still pay.

Will a hold cancel the order or change its status? No. The payment status and webhooks are unchanged. A hold only affects whether the funds can be withdrawn or released.

Can a buyer avoid the checkout check by paying with a direct transfer? They can send the transfer, but the wallets that funded the deposit address are screened when it arrives, and a match places the payment in a compliance hold.

Is the payout wallet I verified in the dashboard screened? Every withdrawal is screened when it is made, including withdrawals to a verified payout wallet or a whitelisted address. An address that is listed later is refused from that point on.

What happens to a buyer refund request when the refund is refused? The request stays open as requested, with the failure recorded, and no funds are reserved. Contact support before approving it again.

Next steps ​